/* Generated by Cython 3.0.11 */

/* BEGIN: Cython Metadata
{
    "distutils": {
        "define_macros": [
            [
                "_WIN32_WINNT",
                1536
            ],
            [
                "GRPC_XDS_USER_AGENT_NAME_SUFFIX",
                "\"Python\""
            ],
            [
                "GRPC_XDS_USER_AGENT_VERSION_SUFFIX",
                "\"1.67.0\""
            ],
            [
                "HAVE_CONFIG_H",
                1
            ],
            [
                "GRPC_ENABLE_FORK_SUPPORT",
                1
            ],
            [
                "GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER",
                1
            ],
            [
                "__STDC_FORMAT_MACROS",
                null
            ],
            [
                "PyMODINIT_FUNC",
                "extern \"C\" __attribute__((visibility (\"default\"))) PyObject*"
            ],
            [
                "GRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK",
                1
            ]
        ],
        "depends": [
            "include/grpc/byte_buffer_reader.h",
            "include/grpc/compression.h",
            "include/grpc/credentials.h",
            "include/grpc/grpc.h",
            "include/grpc/grpc_security.h",
            "include/grpc/grpc_security_constants.h",
            "include/grpc/impl/codegen/compression_types.h",
            "include/grpc/impl/codegen/grpc_types.h",
            "include/grpc/impl/propagation_bits.h",
            "include/grpc/support/alloc.h",
            "src/core/lib/config/config_vars.h",
            "src/core/lib/iomgr/executor.h",
            "src/core/lib/iomgr/iomgr_internal.h",
            "src/core/lib/iomgr/timer_manager.h",
            "src/core/lib/surface/call.h",
            "src/core/telemetry/call_tracer.h"
        ],
        "extra_compile_args": [
            "-std=c++14",
            "-fvisibility=hidden",
            "-fno-wrapv",
            "-fno-exceptions"
        ],
        "extra_link_args": [
            "-lpthread",
            "-static-libgcc"
        ],
        "include_dirs": [
            "src/python/grpcio",
            "include",
            ".",
            "third_party/abseil-cpp",
            "third_party/address_sorting/include",
            "third_party/cares/cares/include",
            "third_party/cares",
            "third_party/cares/cares",
            "third_party/cares/config_linux",
            "third_party/re2",
            "third_party/boringssl-with-bazel/src/include",
            "third_party/upb",
            "src/core/ext/upb-gen",
            "src/core/ext/upbdefs-gen",
            "third_party/utf8_range",
            "third_party/xxhash",
            "third_party/zlib"
        ],
        "language": "c++",
        "libraries": [
            "rt",
            "m"
        ],
        "name": "grpc._cython.cygrpc",
        "sources": [
            "src/python/grpcio/grpc/_cython/cygrpc.pyx",
            "src/core/channelz/channel_trace.cc",
            "src/core/channelz/channelz.cc",
            "src/core/channelz/channelz_registry.cc",
            "src/core/client_channel/backup_poller.cc",
            "src/core/client_channel/client_channel.cc",
            "src/core/client_channel/client_channel_factory.cc",
            "src/core/client_channel/client_channel_filter.cc",
            "src/core/client_channel/client_channel_plugin.cc",
            "src/core/client_channel/client_channel_service_config.cc",
            "src/core/client_channel/direct_channel.cc",
            "src/core/client_channel/dynamic_filters.cc",
            "src/core/client_channel/global_subchannel_pool.cc",
            "src/core/client_channel/lb_metadata.cc",
            "src/core/client_channel/load_balanced_call_destination.cc",
            "src/core/client_channel/local_subchannel_pool.cc",
            "src/core/client_channel/retry_filter.cc",
            "src/core/client_channel/retry_filter_legacy_call_data.cc",
            "src/core/client_channel/retry_service_config.cc",
            "src/core/client_channel/retry_throttle.cc",
            "src/core/client_channel/subchannel.cc",
            "src/core/client_channel/subchannel_pool_interface.cc",
            "src/core/client_channel/subchannel_stream_client.cc",
            "src/core/ext/filters/backend_metrics/backend_metric_filter.cc",
            "src/core/ext/filters/census/grpc_context.cc",
            "src/core/ext/filters/channel_idle/idle_filter_state.cc",
            "src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc",
            "src/core/ext/filters/fault_injection/fault_injection_filter.cc",
            "src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc",
            "src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc",
            "src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc",
            "src/core/ext/filters/http/client/http_client_filter.cc",
            "src/core/ext/filters/http/client_authority_filter.cc",
            "src/core/ext/filters/http/http_filters_plugin.cc",
            "src/core/ext/filters/http/message_compress/compression_filter.cc",
            "src/core/ext/filters/http/server/http_server_filter.cc",
            "src/core/ext/filters/message_size/message_size_filter.cc",
            "src/core/ext/filters/rbac/rbac_filter.cc",
            "src/core/ext/filters/rbac/rbac_service_config_parser.cc",
            "src/core/ext/filters/stateful_session/stateful_session_filter.cc",
            "src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc",
            "src/core/ext/transport/chttp2/alpn/alpn.cc",
            "src/core/ext/transport/chttp2/client/chttp2_connector.cc",
            "src/core/ext/transport/chttp2/server/chttp2_server.cc",
            "src/core/ext/transport/chttp2/transport/bin_decoder.cc",
            "src/core/ext/transport/chttp2/transport/bin_encoder.cc",
            "src/core/ext/transport/chttp2/transport/chttp2_transport.cc",
            "src/core/ext/transport/chttp2/transport/decode_huff.cc",
            "src/core/ext/transport/chttp2/transport/flow_control.cc",
            "src/core/ext/transport/chttp2/transport/frame.cc",
            "src/core/ext/transport/chttp2/transport/frame_data.cc",
            "src/core/ext/transport/chttp2/transport/frame_goaway.cc",
            "src/core/ext/transport/chttp2/transport/frame_ping.cc",
            "src/core/ext/transport/chttp2/transport/frame_rst_stream.cc",
            "src/core/ext/transport/chttp2/transport/frame_settings.cc",
            "src/core/ext/transport/chttp2/transport/frame_window_update.cc",
            "src/core/ext/transport/chttp2/transport/hpack_encoder.cc",
            "src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc",
            "src/core/ext/transport/chttp2/transport/hpack_parse_result.cc",
            "src/core/ext/transport/chttp2/transport/hpack_parser.cc",
            "src/core/ext/transport/chttp2/transport/hpack_parser_table.cc",
            "src/core/ext/transport/chttp2/transport/http2_settings.cc",
            "src/core/ext/transport/chttp2/transport/huffsyms.cc",
            "src/core/ext/transport/chttp2/transport/parsing.cc",
            "src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc",
            "src/core/ext/transport/chttp2/transport/ping_callbacks.cc",
            "src/core/ext/transport/chttp2/transport/ping_rate_policy.cc",
            "src/core/ext/transport/chttp2/transport/stream_lists.cc",
            "src/core/ext/transport/chttp2/transport/varint.cc",
            "src/core/ext/transport/chttp2/transport/write_size_policy.cc",
            "src/core/ext/transport/chttp2/transport/writing.cc",
            "src/core/ext/transport/inproc/inproc_transport.cc",
            "src/core/ext/transport/inproc/legacy_inproc_transport.cc",
            "src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c",
            "src/core/ext/upb-gen/google/api/annotations.upb_minitable.c",
            "src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c",
            "src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c",
            "src/core/ext/upb-gen/google/api/http.upb_minitable.c",
            "src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c",
            "src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c",
            "src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c",
            "src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c",
            "src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c",
            "src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c",
            "src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c",
            "src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c",
            "src/core/ext/upb-gen/google/rpc/status.upb_minitable.c",
            "src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.c",
            "src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c",
            "src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c",
            "src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c",
            "src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c",
            "src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c",
            "src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c",
            "src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c",
            "src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c",
            "src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c",
            "src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c",
            "src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c",
            "src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c",
            "src/core/ext/upb-gen/validate/validate.upb_minitable.c",
            "src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c",
            "src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c",
            "src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c",
            "src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c",
            "src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c",
            "src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c",
            "src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/api/http.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c",
            "src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.c",
            "src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c",
            "src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c",
            "src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c",
            "src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c",
            "src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c",
            "src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c",
            "src/core/ext/upbdefs-gen/validate/validate.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c",
            "src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc",
            "src/core/handshaker/handshaker.cc",
            "src/core/handshaker/handshaker_registry.cc",
            "src/core/handshaker/http_connect/http_connect_handshaker.cc",
            "src/core/handshaker/http_connect/http_proxy_mapper.cc",
            "src/core/handshaker/proxy_mapper_registry.cc",
            "src/core/handshaker/security/secure_endpoint.cc",
            "src/core/handshaker/security/security_handshaker.cc",
            "src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc",
            "src/core/lib/address_utils/parse_address.cc",
            "src/core/lib/address_utils/sockaddr_utils.cc",
            "src/core/lib/backoff/backoff.cc",
            "src/core/lib/backoff/random_early_detection.cc",
            "src/core/lib/channel/channel_args.cc",
            "src/core/lib/channel/channel_args_preconditioning.cc",
            "src/core/lib/channel/channel_stack.cc",
            "src/core/lib/channel/channel_stack_builder.cc",
            "src/core/lib/channel/channel_stack_builder_impl.cc",
            "src/core/lib/channel/connected_channel.cc",
            "src/core/lib/channel/promise_based_filter.cc",
            "src/core/lib/channel/status_util.cc",
            "src/core/lib/compression/compression.cc",
            "src/core/lib/compression/compression_internal.cc",
            "src/core/lib/compression/message_compress.cc",
            "src/core/lib/config/config_vars.cc",
            "src/core/lib/config/config_vars_non_generated.cc",
            "src/core/lib/config/core_configuration.cc",
            "src/core/lib/config/load_config.cc",
            "src/core/lib/debug/event_log.cc",
            "src/core/lib/debug/trace.cc",
            "src/core/lib/debug/trace_flags.cc",
            "src/core/lib/event_engine/ares_resolver.cc",
            "src/core/lib/event_engine/cf_engine/cf_engine.cc",
            "src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc",
            "src/core/lib/event_engine/cf_engine/dns_service_resolver.cc",
            "src/core/lib/event_engine/channel_args_endpoint_config.cc",
            "src/core/lib/event_engine/default_event_engine.cc",
            "src/core/lib/event_engine/default_event_engine_factory.cc",
            "src/core/lib/event_engine/event_engine.cc",
            "src/core/lib/event_engine/forkable.cc",
            "src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc",
            "src/core/lib/event_engine/posix_engine/ev_poll_posix.cc",
            "src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc",
            "src/core/lib/event_engine/posix_engine/internal_errqueue.cc",
            "src/core/lib/event_engine/posix_engine/lockfree_event.cc",
            "src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc",
            "src/core/lib/event_engine/posix_engine/posix_endpoint.cc",
            "src/core/lib/event_engine/posix_engine/posix_engine.cc",
            "src/core/lib/event_engine/posix_engine/posix_engine_listener.cc",
            "src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc",
            "src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc",
            "src/core/lib/event_engine/posix_engine/timer.cc",
            "src/core/lib/event_engine/posix_engine/timer_heap.cc",
            "src/core/lib/event_engine/posix_engine/timer_manager.cc",
            "src/core/lib/event_engine/posix_engine/traced_buffer_list.cc",
            "src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc",
            "src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc",
            "src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc",
            "src/core/lib/event_engine/resolved_address.cc",
            "src/core/lib/event_engine/shim.cc",
            "src/core/lib/event_engine/slice.cc",
            "src/core/lib/event_engine/slice_buffer.cc",
            "src/core/lib/event_engine/tcp_socket_utils.cc",
            "src/core/lib/event_engine/thread_local.cc",
            "src/core/lib/event_engine/thread_pool/thread_count.cc",
            "src/core/lib/event_engine/thread_pool/thread_pool_factory.cc",
            "src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc",
            "src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc",
            "src/core/lib/event_engine/time_util.cc",
            "src/core/lib/event_engine/utils.cc",
            "src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc",
            "src/core/lib/event_engine/windows/iocp.cc",
            "src/core/lib/event_engine/windows/native_windows_dns_resolver.cc",
            "src/core/lib/event_engine/windows/win_socket.cc",
            "src/core/lib/event_engine/windows/windows_endpoint.cc",
            "src/core/lib/event_engine/windows/windows_engine.cc",
            "src/core/lib/event_engine/windows/windows_listener.cc",
            "src/core/lib/event_engine/work_queue/basic_work_queue.cc",
            "src/core/lib/experiments/config.cc",
            "src/core/lib/experiments/experiments.cc",
            "src/core/lib/gprpp/crash.cc",
            "src/core/lib/gprpp/dump_args.cc",
            "src/core/lib/gprpp/examine_stack.cc",
            "src/core/lib/gprpp/fork.cc",
            "src/core/lib/gprpp/glob.cc",
            "src/core/lib/gprpp/host_port.cc",
            "src/core/lib/gprpp/linux/env.cc",
            "src/core/lib/gprpp/load_file.cc",
            "src/core/lib/gprpp/mpscq.cc",
            "src/core/lib/gprpp/per_cpu.cc",
            "src/core/lib/gprpp/posix/directory_reader.cc",
            "src/core/lib/gprpp/posix/env.cc",
            "src/core/lib/gprpp/posix/stat.cc",
            "src/core/lib/gprpp/posix/thd.cc",
            "src/core/lib/gprpp/ref_counted_string.cc",
            "src/core/lib/gprpp/status_helper.cc",
            "src/core/lib/gprpp/strerror.cc",
            "src/core/lib/gprpp/tchar.cc",
            "src/core/lib/gprpp/time.cc",
            "src/core/lib/gprpp/time_averaged_stats.cc",
            "src/core/lib/gprpp/time_util.cc",
            "src/core/lib/gprpp/uuid_v4.cc",
            "src/core/lib/gprpp/validation_errors.cc",
            "src/core/lib/gprpp/windows/directory_reader.cc",
            "src/core/lib/gprpp/windows/env.cc",
            "src/core/lib/gprpp/windows/stat.cc",
            "src/core/lib/gprpp/windows/thd.cc",
            "src/core/lib/gprpp/work_serializer.cc",
            "src/core/lib/iomgr/buffer_list.cc",
            "src/core/lib/iomgr/call_combiner.cc",
            "src/core/lib/iomgr/cfstream_handle.cc",
            "src/core/lib/iomgr/closure.cc",
            "src/core/lib/iomgr/combiner.cc",
            "src/core/lib/iomgr/dualstack_socket_posix.cc",
            "src/core/lib/iomgr/endpoint.cc",
            "src/core/lib/iomgr/endpoint_cfstream.cc",
            "src/core/lib/iomgr/endpoint_pair_posix.cc",
            "src/core/lib/iomgr/endpoint_pair_windows.cc",
            "src/core/lib/iomgr/error.cc",
            "src/core/lib/iomgr/error_cfstream.cc",
            "src/core/lib/iomgr/ev_apple.cc",
            "src/core/lib/iomgr/ev_epoll1_linux.cc",
            "src/core/lib/iomgr/ev_poll_posix.cc",
            "src/core/lib/iomgr/ev_posix.cc",
            "src/core/lib/iomgr/event_engine_shims/closure.cc",
            "src/core/lib/iomgr/event_engine_shims/endpoint.cc",
            "src/core/lib/iomgr/event_engine_shims/tcp_client.cc",
            "src/core/lib/iomgr/exec_ctx.cc",
            "src/core/lib/iomgr/executor.cc",
            "src/core/lib/iomgr/fork_posix.cc",
            "src/core/lib/iomgr/fork_windows.cc",
            "src/core/lib/iomgr/gethostname_fallback.cc",
            "src/core/lib/iomgr/gethostname_host_name_max.cc",
            "src/core/lib/iomgr/gethostname_sysconf.cc",
            "src/core/lib/iomgr/grpc_if_nametoindex_posix.cc",
            "src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc",
            "src/core/lib/iomgr/internal_errqueue.cc",
            "src/core/lib/iomgr/iocp_windows.cc",
            "src/core/lib/iomgr/iomgr.cc",
            "src/core/lib/iomgr/iomgr_internal.cc",
            "src/core/lib/iomgr/iomgr_posix.cc",
            "src/core/lib/iomgr/iomgr_posix_cfstream.cc",
            "src/core/lib/iomgr/iomgr_windows.cc",
            "src/core/lib/iomgr/lockfree_event.cc",
            "src/core/lib/iomgr/polling_entity.cc",
            "src/core/lib/iomgr/pollset.cc",
            "src/core/lib/iomgr/pollset_set.cc",
            "src/core/lib/iomgr/pollset_set_windows.cc",
            "src/core/lib/iomgr/pollset_windows.cc",
            "src/core/lib/iomgr/resolve_address.cc",
            "src/core/lib/iomgr/resolve_address_posix.cc",
            "src/core/lib/iomgr/resolve_address_windows.cc",
            "src/core/lib/iomgr/sockaddr_utils_posix.cc",
            "src/core/lib/iomgr/socket_factory_posix.cc",
            "src/core/lib/iomgr/socket_mutator.cc",
            "src/core/lib/iomgr/socket_utils_common_posix.cc",
            "src/core/lib/iomgr/socket_utils_linux.cc",
            "src/core/lib/iomgr/socket_utils_posix.cc",
            "src/core/lib/iomgr/socket_utils_windows.cc",
            "src/core/lib/iomgr/socket_windows.cc",
            "src/core/lib/iomgr/systemd_utils.cc",
            "src/core/lib/iomgr/tcp_client.cc",
            "src/core/lib/iomgr/tcp_client_cfstream.cc",
            "src/core/lib/iomgr/tcp_client_posix.cc",
            "src/core/lib/iomgr/tcp_client_windows.cc",
            "src/core/lib/iomgr/tcp_posix.cc",
            "src/core/lib/iomgr/tcp_server.cc",
            "src/core/lib/iomgr/tcp_server_posix.cc",
            "src/core/lib/iomgr/tcp_server_utils_posix_common.cc",
            "src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc",
            "src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc",
            "src/core/lib/iomgr/tcp_server_windows.cc",
            "src/core/lib/iomgr/tcp_windows.cc",
            "src/core/lib/iomgr/timer.cc",
            "src/core/lib/iomgr/timer_generic.cc",
            "src/core/lib/iomgr/timer_heap.cc",
            "src/core/lib/iomgr/timer_manager.cc",
            "src/core/lib/iomgr/unix_sockets_posix.cc",
            "src/core/lib/iomgr/unix_sockets_posix_noop.cc",
            "src/core/lib/iomgr/vsock.cc",
            "src/core/lib/iomgr/wakeup_fd_eventfd.cc",
            "src/core/lib/iomgr/wakeup_fd_nospecial.cc",
            "src/core/lib/iomgr/wakeup_fd_pipe.cc",
            "src/core/lib/iomgr/wakeup_fd_posix.cc",
            "src/core/lib/matchers/matchers.cc",
            "src/core/lib/promise/activity.cc",
            "src/core/lib/promise/party.cc",
            "src/core/lib/promise/sleep.cc",
            "src/core/lib/resource_quota/api.cc",
            "src/core/lib/resource_quota/arena.cc",
            "src/core/lib/resource_quota/connection_quota.cc",
            "src/core/lib/resource_quota/memory_quota.cc",
            "src/core/lib/resource_quota/periodic_update.cc",
            "src/core/lib/resource_quota/resource_quota.cc",
            "src/core/lib/resource_quota/thread_quota.cc",
            "src/core/lib/security/authorization/audit_logging.cc",
            "src/core/lib/security/authorization/authorization_policy_provider_vtable.cc",
            "src/core/lib/security/authorization/evaluate_args.cc",
            "src/core/lib/security/authorization/grpc_authorization_engine.cc",
            "src/core/lib/security/authorization/grpc_server_authz_filter.cc",
            "src/core/lib/security/authorization/matchers.cc",
            "src/core/lib/security/authorization/rbac_policy.cc",
            "src/core/lib/security/authorization/stdout_logger.cc",
            "src/core/lib/security/certificate_provider/certificate_provider_registry.cc",
            "src/core/lib/security/context/security_context.cc",
            "src/core/lib/security/credentials/alts/alts_credentials.cc",
            "src/core/lib/security/credentials/alts/check_gcp_environment.cc",
            "src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc",
            "src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc",
            "src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc",
            "src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc",
            "src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc",
            "src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc",
            "src/core/lib/security/credentials/call_creds_util.cc",
            "src/core/lib/security/credentials/channel_creds_registry_init.cc",
            "src/core/lib/security/credentials/composite/composite_credentials.cc",
            "src/core/lib/security/credentials/credentials.cc",
            "src/core/lib/security/credentials/external/aws_external_account_credentials.cc",
            "src/core/lib/security/credentials/external/aws_request_signer.cc",
            "src/core/lib/security/credentials/external/external_account_credentials.cc",
            "src/core/lib/security/credentials/external/file_external_account_credentials.cc",
            "src/core/lib/security/credentials/external/url_external_account_credentials.cc",
            "src/core/lib/security/credentials/fake/fake_credentials.cc",
            "src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.cc",
            "src/core/lib/security/credentials/google_default/credentials_generic.cc",
            "src/core/lib/security/credentials/google_default/google_default_credentials.cc",
            "src/core/lib/security/credentials/iam/iam_credentials.cc",
            "src/core/lib/security/credentials/insecure/insecure_credentials.cc",
            "src/core/lib/security/credentials/jwt/json_token.cc",
            "src/core/lib/security/credentials/jwt/jwt_credentials.cc",
            "src/core/lib/security/credentials/jwt/jwt_verifier.cc",
            "src/core/lib/security/credentials/local/local_credentials.cc",
            "src/core/lib/security/credentials/oauth2/oauth2_credentials.cc",
            "src/core/lib/security/credentials/plugin/plugin_credentials.cc",
            "src/core/lib/security/credentials/ssl/ssl_credentials.cc",
            "src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc",
            "src/core/lib/security/credentials/tls/grpc_tls_certificate_match.cc",
            "src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc",
            "src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc",
            "src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc",
            "src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc",
            "src/core/lib/security/credentials/tls/tls_credentials.cc",
            "src/core/lib/security/credentials/tls/tls_utils.cc",
            "src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.cc",
            "src/core/lib/security/credentials/xds/xds_credentials.cc",
            "src/core/lib/security/security_connector/alts/alts_security_connector.cc",
            "src/core/lib/security/security_connector/fake/fake_security_connector.cc",
            "src/core/lib/security/security_connector/insecure/insecure_security_connector.cc",
            "src/core/lib/security/security_connector/load_system_roots_fallback.cc",
            "src/core/lib/security/security_connector/load_system_roots_supported.cc",
            "src/core/lib/security/security_connector/load_system_roots_windows.cc",
            "src/core/lib/security/security_connector/local/local_security_connector.cc",
            "src/core/lib/security/security_connector/security_connector.cc",
            "src/core/lib/security/security_connector/ssl/ssl_security_connector.cc",
            "src/core/lib/security/security_connector/ssl_utils.cc",
            "src/core/lib/security/security_connector/tls/tls_security_connector.cc",
            "src/core/lib/security/transport/client_auth_filter.cc",
            "src/core/lib/security/transport/server_auth_filter.cc",
            "src/core/lib/security/util/json_util.cc",
            "src/core/lib/slice/percent_encoding.cc",
            "src/core/lib/slice/slice.cc",
            "src/core/lib/slice/slice_buffer.cc",
            "src/core/lib/slice/slice_string_helpers.cc",
            "src/core/lib/surface/byte_buffer.cc",
            "src/core/lib/surface/byte_buffer_reader.cc",
            "src/core/lib/surface/call.cc",
            "src/core/lib/surface/call_details.cc",
            "src/core/lib/surface/call_log_batch.cc",
            "src/core/lib/surface/call_utils.cc",
            "src/core/lib/surface/channel.cc",
            "src/core/lib/surface/channel_create.cc",
            "src/core/lib/surface/channel_init.cc",
            "src/core/lib/surface/channel_stack_type.cc",
            "src/core/lib/surface/client_call.cc",
            "src/core/lib/surface/completion_queue.cc",
            "src/core/lib/surface/completion_queue_factory.cc",
            "src/core/lib/surface/event_string.cc",
            "src/core/lib/surface/filter_stack_call.cc",
            "src/core/lib/surface/init.cc",
            "src/core/lib/surface/init_internally.cc",
            "src/core/lib/surface/lame_client.cc",
            "src/core/lib/surface/legacy_channel.cc",
            "src/core/lib/surface/metadata_array.cc",
            "src/core/lib/surface/server_call.cc",
            "src/core/lib/surface/validate_metadata.cc",
            "src/core/lib/surface/version.cc",
            "src/core/lib/transport/bdp_estimator.cc",
            "src/core/lib/transport/call_arena_allocator.cc",
            "src/core/lib/transport/call_filters.cc",
            "src/core/lib/transport/call_final_info.cc",
            "src/core/lib/transport/call_spine.cc",
            "src/core/lib/transport/call_state.cc",
            "src/core/lib/transport/connectivity_state.cc",
            "src/core/lib/transport/error_utils.cc",
            "src/core/lib/transport/interception_chain.cc",
            "src/core/lib/transport/message.cc",
            "src/core/lib/transport/metadata.cc",
            "src/core/lib/transport/metadata_batch.cc",
            "src/core/lib/transport/metadata_info.cc",
            "src/core/lib/transport/parsed_metadata.cc",
            "src/core/lib/transport/status_conversion.cc",
            "src/core/lib/transport/timeout_encoding.cc",
            "src/core/lib/transport/transport.cc",
            "src/core/lib/transport/transport_op_string.cc",
            "src/core/lib/uri/uri_parser.cc",
            "src/core/load_balancing/address_filtering.cc",
            "src/core/load_balancing/backend_metric_parser.cc",
            "src/core/load_balancing/child_policy_handler.cc",
            "src/core/load_balancing/endpoint_list.cc",
            "src/core/load_balancing/grpclb/client_load_reporting_filter.cc",
            "src/core/load_balancing/grpclb/grpclb.cc",
            "src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc",
            "src/core/load_balancing/grpclb/grpclb_client_stats.cc",
            "src/core/load_balancing/grpclb/load_balancer_api.cc",
            "src/core/load_balancing/health_check_client.cc",
            "src/core/load_balancing/lb_policy.cc",
            "src/core/load_balancing/lb_policy_registry.cc",
            "src/core/load_balancing/oob_backend_metric.cc",
            "src/core/load_balancing/outlier_detection/outlier_detection.cc",
            "src/core/load_balancing/pick_first/pick_first.cc",
            "src/core/load_balancing/priority/priority.cc",
            "src/core/load_balancing/ring_hash/ring_hash.cc",
            "src/core/load_balancing/rls/rls.cc",
            "src/core/load_balancing/round_robin/round_robin.cc",
            "src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc",
            "src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc",
            "src/core/load_balancing/weighted_target/weighted_target.cc",
            "src/core/load_balancing/xds/cds.cc",
            "src/core/load_balancing/xds/xds_cluster_impl.cc",
            "src/core/load_balancing/xds/xds_cluster_manager.cc",
            "src/core/load_balancing/xds/xds_override_host.cc",
            "src/core/load_balancing/xds/xds_wrr_locality.cc",
            "src/core/plugin_registry/grpc_plugin_registry.cc",
            "src/core/plugin_registry/grpc_plugin_registry_extra.cc",
            "src/core/resolver/binder/binder_resolver.cc",
            "src/core/resolver/dns/c_ares/dns_resolver_ares.cc",
            "src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc",
            "src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc",
            "src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc",
            "src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc",
            "src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc",
            "src/core/resolver/dns/dns_resolver_plugin.cc",
            "src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc",
            "src/core/resolver/dns/event_engine/service_config_helper.cc",
            "src/core/resolver/dns/native/dns_resolver.cc",
            "src/core/resolver/endpoint_addresses.cc",
            "src/core/resolver/fake/fake_resolver.cc",
            "src/core/resolver/google_c2p/google_c2p_resolver.cc",
            "src/core/resolver/polling_resolver.cc",
            "src/core/resolver/resolver.cc",
            "src/core/resolver/resolver_registry.cc",
            "src/core/resolver/sockaddr/sockaddr_resolver.cc",
            "src/core/resolver/xds/xds_config.cc",
            "src/core/resolver/xds/xds_dependency_manager.cc",
            "src/core/resolver/xds/xds_resolver.cc",
            "src/core/server/server.cc",
            "src/core/server/server_call_tracer_filter.cc",
            "src/core/server/server_config_selector_filter.cc",
            "src/core/server/xds_channel_stack_modifier.cc",
            "src/core/server/xds_server_config_fetcher.cc",
            "src/core/service_config/service_config_channel_arg_filter.cc",
            "src/core/service_config/service_config_impl.cc",
            "src/core/service_config/service_config_parser.cc",
            "src/core/telemetry/call_tracer.cc",
            "src/core/telemetry/histogram_view.cc",
            "src/core/telemetry/metrics.cc",
            "src/core/telemetry/stats.cc",
            "src/core/telemetry/stats_data.cc",
            "src/core/tsi/alts/crypt/aes_gcm.cc",
            "src/core/tsi/alts/crypt/gsec.cc",
            "src/core/tsi/alts/frame_protector/alts_counter.cc",
            "src/core/tsi/alts/frame_protector/alts_crypter.cc",
            "src/core/tsi/alts/frame_protector/alts_frame_protector.cc",
            "src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc",
            "src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc",
            "src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc",
            "src/core/tsi/alts/frame_protector/frame_handler.cc",
            "src/core/tsi/alts/handshaker/alts_handshaker_client.cc",
            "src/core/tsi/alts/handshaker/alts_shared_resource.cc",
            "src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc",
            "src/core/tsi/alts/handshaker/alts_tsi_utils.cc",
            "src/core/tsi/alts/handshaker/transport_security_common_api.cc",
            "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc",
            "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc",
            "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc",
            "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc",
            "src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc",
            "src/core/tsi/fake_transport_security.cc",
            "src/core/tsi/local_transport_security.cc",
            "src/core/tsi/ssl/key_logging/ssl_key_logging.cc",
            "src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc",
            "src/core/tsi/ssl/session_cache/ssl_session_cache.cc",
            "src/core/tsi/ssl/session_cache/ssl_session_openssl.cc",
            "src/core/tsi/ssl_transport_security.cc",
            "src/core/tsi/ssl_transport_security_utils.cc",
            "src/core/tsi/transport_security.cc",
            "src/core/tsi/transport_security_grpc.cc",
            "src/core/util/alloc.cc",
            "src/core/util/atm.cc",
            "src/core/util/gcp_metadata_query.cc",
            "src/core/util/http_client/format_request.cc",
            "src/core/util/http_client/httpcli.cc",
            "src/core/util/http_client/httpcli_security_connector.cc",
            "src/core/util/http_client/parser.cc",
            "src/core/util/iphone/cpu.cc",
            "src/core/util/json/json_object_loader.cc",
            "src/core/util/json/json_reader.cc",
            "src/core/util/json/json_util.cc",
            "src/core/util/json/json_writer.cc",
            "src/core/util/latent_see.cc",
            "src/core/util/linux/cpu.cc",
            "src/core/util/log.cc",
            "src/core/util/msys/tmpfile.cc",
            "src/core/util/posix/cpu.cc",
            "src/core/util/posix/string.cc",
            "src/core/util/posix/sync.cc",
            "src/core/util/posix/time.cc",
            "src/core/util/posix/tmpfile.cc",
            "src/core/util/string.cc",
            "src/core/util/sync.cc",
            "src/core/util/sync_abseil.cc",
            "src/core/util/time.cc",
            "src/core/util/time_precise.cc",
            "src/core/util/windows/cpu.cc",
            "src/core/util/windows/string.cc",
            "src/core/util/windows/string_util.cc",
            "src/core/util/windows/sync.cc",
            "src/core/util/windows/time.cc",
            "src/core/util/windows/tmpfile.cc",
            "src/core/xds/grpc/certificate_provider_store.cc",
            "src/core/xds/grpc/file_watcher_certificate_provider_factory.cc",
            "src/core/xds/grpc/xds_audit_logger_registry.cc",
            "src/core/xds/grpc/xds_bootstrap_grpc.cc",
            "src/core/xds/grpc/xds_certificate_provider.cc",
            "src/core/xds/grpc/xds_client_grpc.cc",
            "src/core/xds/grpc/xds_cluster.cc",
            "src/core/xds/grpc/xds_cluster_parser.cc",
            "src/core/xds/grpc/xds_cluster_specifier_plugin.cc",
            "src/core/xds/grpc/xds_common_types.cc",
            "src/core/xds/grpc/xds_common_types_parser.cc",
            "src/core/xds/grpc/xds_endpoint.cc",
            "src/core/xds/grpc/xds_endpoint_parser.cc",
            "src/core/xds/grpc/xds_health_status.cc",
            "src/core/xds/grpc/xds_http_fault_filter.cc",
            "src/core/xds/grpc/xds_http_filter_registry.cc",
            "src/core/xds/grpc/xds_http_gcp_authn_filter.cc",
            "src/core/xds/grpc/xds_http_rbac_filter.cc",
            "src/core/xds/grpc/xds_http_stateful_session_filter.cc",
            "src/core/xds/grpc/xds_lb_policy_registry.cc",
            "src/core/xds/grpc/xds_listener.cc",
            "src/core/xds/grpc/xds_listener_parser.cc",
            "src/core/xds/grpc/xds_metadata.cc",
            "src/core/xds/grpc/xds_metadata_parser.cc",
            "src/core/xds/grpc/xds_route_config.cc",
            "src/core/xds/grpc/xds_route_config_parser.cc",
            "src/core/xds/grpc/xds_routing.cc",
            "src/core/xds/grpc/xds_server_grpc.cc",
            "src/core/xds/grpc/xds_transport_grpc.cc",
            "src/core/xds/xds_client/xds_api.cc",
            "src/core/xds/xds_client/xds_bootstrap.cc",
            "src/core/xds/xds_client/xds_client.cc",
            "src/core/xds/xds_client/xds_client_stats.cc",
            "third_party/abseil-cpp/absl/base/internal/cycleclock.cc",
            "third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc",
            "third_party/abseil-cpp/absl/base/internal/raw_logging.cc",
            "third_party/abseil-cpp/absl/base/internal/spinlock.cc",
            "third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc",
            "third_party/abseil-cpp/absl/base/internal/strerror.cc",
            "third_party/abseil-cpp/absl/base/internal/sysinfo.cc",
            "third_party/abseil-cpp/absl/base/internal/thread_identity.cc",
            "third_party/abseil-cpp/absl/base/internal/throw_delegate.cc",
            "third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc",
            "third_party/abseil-cpp/absl/base/log_severity.cc",
            "third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc",
            "third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc",
            "third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc",
            "third_party/abseil-cpp/absl/crc/crc32c.cc",
            "third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc",
            "third_party/abseil-cpp/absl/crc/internal/crc.cc",
            "third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc",
            "third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc",
            "third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc",
            "third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc",
            "third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc",
            "third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc",
            "third_party/abseil-cpp/absl/debugging/internal/demangle.cc",
            "third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc",
            "third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc",
            "third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc",
            "third_party/abseil-cpp/absl/debugging/stacktrace.cc",
            "third_party/abseil-cpp/absl/debugging/symbolize.cc",
            "third_party/abseil-cpp/absl/flags/commandlineflag.cc",
            "third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc",
            "third_party/abseil-cpp/absl/flags/internal/flag.cc",
            "third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc",
            "third_party/abseil-cpp/absl/flags/internal/program_name.cc",
            "third_party/abseil-cpp/absl/flags/marshalling.cc",
            "third_party/abseil-cpp/absl/flags/reflection.cc",
            "third_party/abseil-cpp/absl/flags/usage_config.cc",
            "third_party/abseil-cpp/absl/hash/internal/city.cc",
            "third_party/abseil-cpp/absl/hash/internal/hash.cc",
            "third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc",
            "third_party/abseil-cpp/absl/log/globals.cc",
            "third_party/abseil-cpp/absl/log/internal/check_op.cc",
            "third_party/abseil-cpp/absl/log/internal/conditions.cc",
            "third_party/abseil-cpp/absl/log/internal/fnmatch.cc",
            "third_party/abseil-cpp/absl/log/internal/globals.cc",
            "third_party/abseil-cpp/absl/log/internal/log_format.cc",
            "third_party/abseil-cpp/absl/log/internal/log_message.cc",
            "third_party/abseil-cpp/absl/log/internal/log_sink_set.cc",
            "third_party/abseil-cpp/absl/log/internal/nullguard.cc",
            "third_party/abseil-cpp/absl/log/internal/proto.cc",
            "third_party/abseil-cpp/absl/log/internal/vlog_config.cc",
            "third_party/abseil-cpp/absl/log/log_entry.cc",
            "third_party/abseil-cpp/absl/log/log_sink.cc",
            "third_party/abseil-cpp/absl/numeric/int128.cc",
            "third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc",
            "third_party/abseil-cpp/absl/random/discrete_distribution.cc",
            "third_party/abseil-cpp/absl/random/gaussian_distribution.cc",
            "third_party/abseil-cpp/absl/random/internal/pool_urbg.cc",
            "third_party/abseil-cpp/absl/random/internal/randen.cc",
            "third_party/abseil-cpp/absl/random/internal/randen_detect.cc",
            "third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc",
            "third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc",
            "third_party/abseil-cpp/absl/random/internal/randen_slow.cc",
            "third_party/abseil-cpp/absl/random/internal/seed_material.cc",
            "third_party/abseil-cpp/absl/random/seed_gen_exception.cc",
            "third_party/abseil-cpp/absl/random/seed_sequences.cc",
            "third_party/abseil-cpp/absl/status/internal/status_internal.cc",
            "third_party/abseil-cpp/absl/status/status.cc",
            "third_party/abseil-cpp/absl/status/status_payload_printer.cc",
            "third_party/abseil-cpp/absl/status/statusor.cc",
            "third_party/abseil-cpp/absl/strings/ascii.cc",
            "third_party/abseil-cpp/absl/strings/charconv.cc",
            "third_party/abseil-cpp/absl/strings/cord.cc",
            "third_party/abseil-cpp/absl/strings/cord_analysis.cc",
            "third_party/abseil-cpp/absl/strings/cord_buffer.cc",
            "third_party/abseil-cpp/absl/strings/escaping.cc",
            "third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc",
            "third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc",
            "third_party/abseil-cpp/absl/strings/internal/cord_internal.cc",
            "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc",
            "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc",
            "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc",
            "third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc",
            "third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc",
            "third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc",
            "third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc",
            "third_party/abseil-cpp/absl/strings/internal/cordz_info.cc",
            "third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc",
            "third_party/abseil-cpp/absl/strings/internal/escaping.cc",
            "third_party/abseil-cpp/absl/strings/internal/memutil.cc",
            "third_party/abseil-cpp/absl/strings/internal/ostringstream.cc",
            "third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc",
            "third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc",
            "third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc",
            "third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc",
            "third_party/abseil-cpp/absl/strings/internal/str_format/output.cc",
            "third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc",
            "third_party/abseil-cpp/absl/strings/internal/stringify_sink.cc",
            "third_party/abseil-cpp/absl/strings/internal/utf8.cc",
            "third_party/abseil-cpp/absl/strings/match.cc",
            "third_party/abseil-cpp/absl/strings/numbers.cc",
            "third_party/abseil-cpp/absl/strings/str_cat.cc",
            "third_party/abseil-cpp/absl/strings/str_replace.cc",
            "third_party/abseil-cpp/absl/strings/str_split.cc",
            "third_party/abseil-cpp/absl/strings/string_view.cc",
            "third_party/abseil-cpp/absl/strings/substitute.cc",
            "third_party/abseil-cpp/absl/synchronization/barrier.cc",
            "third_party/abseil-cpp/absl/synchronization/blocking_counter.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc",
            "third_party/abseil-cpp/absl/synchronization/mutex.cc",
            "third_party/abseil-cpp/absl/synchronization/notification.cc",
            "third_party/abseil-cpp/absl/time/civil_time.cc",
            "third_party/abseil-cpp/absl/time/clock.cc",
            "third_party/abseil-cpp/absl/time/duration.cc",
            "third_party/abseil-cpp/absl/time/format.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc",
            "third_party/abseil-cpp/absl/time/time.cc",
            "third_party/abseil-cpp/absl/types/bad_optional_access.cc",
            "third_party/abseil-cpp/absl/types/bad_variant_access.cc",
            "third_party/address_sorting/address_sorting.c",
            "third_party/address_sorting/address_sorting_posix.c",
            "third_party/address_sorting/address_sorting_windows.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c",
            "third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c",
            "third_party/boringssl-with-bazel/src/crypto/base64/base64.c",
            "third_party/boringssl-with-bazel/src/crypto/bio/bio.c",
            "third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c",
            "third_party/boringssl-with-bazel/src/crypto/bio/connect.c",
            "third_party/boringssl-with-bazel/src/crypto/bio/errno.c",
            "third_party/boringssl-with-bazel/src/crypto/bio/fd.c",
            "third_party/boringssl-with-bazel/src/crypto/bio/file.c",
            "third_party/boringssl-with-bazel/src/crypto/bio/hexdump.c",
            "third_party/boringssl-with-bazel/src/crypto/bio/pair.c",
            "third_party/boringssl-with-bazel/src/crypto/bio/printf.c",
            "third_party/boringssl-with-bazel/src/crypto/bio/socket.c",
            "third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c",
            "third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c",
            "third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c",
            "third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c",
            "third_party/boringssl-with-bazel/src/crypto/buf/buf.c",
            "third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c",
            "third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c",
            "third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c",
            "third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c",
            "third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c",
            "third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c",
            "third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c",
            "third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c",
            "third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c",
            "third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c",
            "third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c",
            "third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_des.c",
            "third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c",
            "third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c",
            "third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c",
            "third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c",
            "third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c",
            "third_party/boringssl-with-bazel/src/crypto/conf/conf.c",
            "third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c",
            "third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.c",
            "third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.c",
            "third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c",
            "third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.c",
            "third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.c",
            "third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c",
            "third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c",
            "third_party/boringssl-with-bazel/src/crypto/cpu_intel.c",
            "third_party/boringssl-with-bazel/src/crypto/crypto.c",
            "third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c",
            "third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.c",
            "third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c",
            "third_party/boringssl-with-bazel/src/crypto/des/des.c",
            "third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c",
            "third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c",
            "third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c",
            "third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c",
            "third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c",
            "third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c",
            "third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c",
            "third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c",
            "third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c",
            "third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c",
            "third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c",
            "third_party/boringssl-with-bazel/src/crypto/engine/engine.c",
            "third_party/boringssl-with-bazel/src/crypto/err/err.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/evp.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_dh.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/print.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c",
            "third_party/boringssl-with-bazel/src/crypto/evp/sign.c",
            "third_party/boringssl-with-bazel/src/crypto/ex_data.c",
            "third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c",
            "third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c",
            "third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c",
            "third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c",
            "third_party/boringssl-with-bazel/src/crypto/keccak/keccak.c",
            "third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c",
            "third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c",
            "third_party/boringssl-with-bazel/src/crypto/mem.c",
            "third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.c",
            "third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc",
            "third_party/boringssl-with-bazel/src/crypto/obj/obj.c",
            "third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c",
            "third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c",
            "third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c",
            "third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c",
            "third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c",
            "third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c",
            "third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c",
            "third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c",
            "third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c",
            "third_party/boringssl-with-bazel/src/crypto/pool/pool.c",
            "third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c",
            "third_party/boringssl-with-bazel/src/crypto/rand_extra/fork_detect.c",
            "third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c",
            "third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c",
            "third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c",
            "third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c",
            "third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c",
            "third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c",
            "third_party/boringssl-with-bazel/src/crypto/rand_extra/urandom.c",
            "third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c",
            "third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c",
            "third_party/boringssl-with-bazel/src/crypto/refcount.c",
            "third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c",
            "third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c",
            "third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_print.c",
            "third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c",
            "third_party/boringssl-with-bazel/src/crypto/spx/address.c",
            "third_party/boringssl-with-bazel/src/crypto/spx/fors.c",
            "third_party/boringssl-with-bazel/src/crypto/spx/merkle.c",
            "third_party/boringssl-with-bazel/src/crypto/spx/spx.c",
            "third_party/boringssl-with-bazel/src/crypto/spx/spx_util.c",
            "third_party/boringssl-with-bazel/src/crypto/spx/thash.c",
            "third_party/boringssl-with-bazel/src/crypto/spx/wots.c",
            "third_party/boringssl-with-bazel/src/crypto/stack/stack.c",
            "third_party/boringssl-with-bazel/src/crypto/thread.c",
            "third_party/boringssl-with-bazel/src/crypto/thread_none.c",
            "third_party/boringssl-with-bazel/src/crypto/thread_pthread.c",
            "third_party/boringssl-with-bazel/src/crypto/thread_win.c",
            "third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c",
            "third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c",
            "third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/by_file.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/name_print.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/policy.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/t_req.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_akey.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_akeya.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_alt.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_bcons.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_bitst.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_enum.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_extku.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_genn.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_ia5.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_info.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_int.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_ncons.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_ocsp.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_pcons.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_pmaps.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_prn.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_purp.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_skey.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509name.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_all.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_name.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_req.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_val.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c",
            "third_party/boringssl-with-bazel/src/gen/crypto/err_data.c",
            "third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc",
            "third_party/boringssl-with-bazel/src/ssl/d1_both.cc",
            "third_party/boringssl-with-bazel/src/ssl/d1_lib.cc",
            "third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc",
            "third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc",
            "third_party/boringssl-with-bazel/src/ssl/dtls_method.cc",
            "third_party/boringssl-with-bazel/src/ssl/dtls_record.cc",
            "third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc",
            "third_party/boringssl-with-bazel/src/ssl/extensions.cc",
            "third_party/boringssl-with-bazel/src/ssl/handoff.cc",
            "third_party/boringssl-with-bazel/src/ssl/handshake.cc",
            "third_party/boringssl-with-bazel/src/ssl/handshake_client.cc",
            "third_party/boringssl-with-bazel/src/ssl/handshake_server.cc",
            "third_party/boringssl-with-bazel/src/ssl/s3_both.cc",
            "third_party/boringssl-with-bazel/src/ssl/s3_lib.cc",
            "third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_file.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_session.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc",
            "third_party/boringssl-with-bazel/src/ssl/t1_enc.cc",
            "third_party/boringssl-with-bazel/src/ssl/tls13_both.cc",
            "third_party/boringssl-with-bazel/src/ssl/tls13_client.cc",
            "third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc",
            "third_party/boringssl-with-bazel/src/ssl/tls13_server.cc",
            "third_party/boringssl-with-bazel/src/ssl/tls_method.cc",
            "third_party/boringssl-with-bazel/src/ssl/tls_record.cc",
            "third_party/cares/cares/src/lib/ares__addrinfo2hostent.c",
            "third_party/cares/cares/src/lib/ares__addrinfo_localhost.c",
            "third_party/cares/cares/src/lib/ares__close_sockets.c",
            "third_party/cares/cares/src/lib/ares__get_hostent.c",
            "third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c",
            "third_party/cares/cares/src/lib/ares__read_line.c",
            "third_party/cares/cares/src/lib/ares__readaddrinfo.c",
            "third_party/cares/cares/src/lib/ares__sortaddrinfo.c",
            "third_party/cares/cares/src/lib/ares__timeval.c",
            "third_party/cares/cares/src/lib/ares_android.c",
            "third_party/cares/cares/src/lib/ares_cancel.c",
            "third_party/cares/cares/src/lib/ares_create_query.c",
            "third_party/cares/cares/src/lib/ares_data.c",
            "third_party/cares/cares/src/lib/ares_destroy.c",
            "third_party/cares/cares/src/lib/ares_expand_name.c",
            "third_party/cares/cares/src/lib/ares_expand_string.c",
            "third_party/cares/cares/src/lib/ares_fds.c",
            "third_party/cares/cares/src/lib/ares_free_hostent.c",
            "third_party/cares/cares/src/lib/ares_free_string.c",
            "third_party/cares/cares/src/lib/ares_freeaddrinfo.c",
            "third_party/cares/cares/src/lib/ares_getaddrinfo.c",
            "third_party/cares/cares/src/lib/ares_getenv.c",
            "third_party/cares/cares/src/lib/ares_gethostbyaddr.c",
            "third_party/cares/cares/src/lib/ares_gethostbyname.c",
            "third_party/cares/cares/src/lib/ares_getnameinfo.c",
            "third_party/cares/cares/src/lib/ares_getsock.c",
            "third_party/cares/cares/src/lib/ares_init.c",
            "third_party/cares/cares/src/lib/ares_library_init.c",
            "third_party/cares/cares/src/lib/ares_llist.c",
            "third_party/cares/cares/src/lib/ares_mkquery.c",
            "third_party/cares/cares/src/lib/ares_nowarn.c",
            "third_party/cares/cares/src/lib/ares_options.c",
            "third_party/cares/cares/src/lib/ares_parse_a_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_caa_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_mx_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_naptr_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_ns_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_ptr_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_soa_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_srv_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_txt_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_uri_reply.c",
            "third_party/cares/cares/src/lib/ares_platform.c",
            "third_party/cares/cares/src/lib/ares_process.c",
            "third_party/cares/cares/src/lib/ares_query.c",
            "third_party/cares/cares/src/lib/ares_rand.c",
            "third_party/cares/cares/src/lib/ares_search.c",
            "third_party/cares/cares/src/lib/ares_send.c",
            "third_party/cares/cares/src/lib/ares_strcasecmp.c",
            "third_party/cares/cares/src/lib/ares_strdup.c",
            "third_party/cares/cares/src/lib/ares_strerror.c",
            "third_party/cares/cares/src/lib/ares_strsplit.c",
            "third_party/cares/cares/src/lib/ares_timeout.c",
            "third_party/cares/cares/src/lib/ares_version.c",
            "third_party/cares/cares/src/lib/ares_writev.c",
            "third_party/cares/cares/src/lib/bitncmp.c",
            "third_party/cares/cares/src/lib/inet_net_pton.c",
            "third_party/cares/cares/src/lib/inet_ntop.c",
            "third_party/cares/cares/src/lib/windows_port.c",
            "third_party/re2/re2/bitstate.cc",
            "third_party/re2/re2/compile.cc",
            "third_party/re2/re2/dfa.cc",
            "third_party/re2/re2/filtered_re2.cc",
            "third_party/re2/re2/mimics_pcre.cc",
            "third_party/re2/re2/nfa.cc",
            "third_party/re2/re2/onepass.cc",
            "third_party/re2/re2/parse.cc",
            "third_party/re2/re2/perl_groups.cc",
            "third_party/re2/re2/prefilter.cc",
            "third_party/re2/re2/prefilter_tree.cc",
            "third_party/re2/re2/prog.cc",
            "third_party/re2/re2/re2.cc",
            "third_party/re2/re2/regexp.cc",
            "third_party/re2/re2/set.cc",
            "third_party/re2/re2/simplify.cc",
            "third_party/re2/re2/stringpiece.cc",
            "third_party/re2/re2/tostring.cc",
            "third_party/re2/re2/unicode_casefold.cc",
            "third_party/re2/re2/unicode_groups.cc",
            "third_party/re2/util/rune.cc",
            "third_party/re2/util/strutil.cc",
            "third_party/upb/upb/base/status.c",
            "third_party/upb/upb/hash/common.c",
            "third_party/upb/upb/json/decode.c",
            "third_party/upb/upb/json/encode.c",
            "third_party/upb/upb/lex/atoi.c",
            "third_party/upb/upb/lex/round_trip.c",
            "third_party/upb/upb/lex/strtod.c",
            "third_party/upb/upb/lex/unicode.c",
            "third_party/upb/upb/mem/alloc.c",
            "third_party/upb/upb/mem/arena.c",
            "third_party/upb/upb/message/accessors.c",
            "third_party/upb/upb/message/array.c",
            "third_party/upb/upb/message/compat.c",
            "third_party/upb/upb/message/copy.c",
            "third_party/upb/upb/message/internal/compare_unknown.c",
            "third_party/upb/upb/message/internal/extension.c",
            "third_party/upb/upb/message/internal/message.c",
            "third_party/upb/upb/message/map.c",
            "third_party/upb/upb/message/map_sorter.c",
            "third_party/upb/upb/message/message.c",
            "third_party/upb/upb/mini_descriptor/build_enum.c",
            "third_party/upb/upb/mini_descriptor/decode.c",
            "third_party/upb/upb/mini_descriptor/internal/base92.c",
            "third_party/upb/upb/mini_descriptor/internal/encode.c",
            "third_party/upb/upb/mini_descriptor/link.c",
            "third_party/upb/upb/mini_table/extension_registry.c",
            "third_party/upb/upb/mini_table/internal/message.c",
            "third_party/upb/upb/mini_table/message.c",
            "third_party/upb/upb/reflection/def_pool.c",
            "third_party/upb/upb/reflection/def_type.c",
            "third_party/upb/upb/reflection/desc_state.c",
            "third_party/upb/upb/reflection/enum_def.c",
            "third_party/upb/upb/reflection/enum_reserved_range.c",
            "third_party/upb/upb/reflection/enum_value_def.c",
            "third_party/upb/upb/reflection/extension_range.c",
            "third_party/upb/upb/reflection/field_def.c",
            "third_party/upb/upb/reflection/file_def.c",
            "third_party/upb/upb/reflection/internal/def_builder.c",
            "third_party/upb/upb/reflection/internal/strdup2.c",
            "third_party/upb/upb/reflection/message.c",
            "third_party/upb/upb/reflection/message_def.c",
            "third_party/upb/upb/reflection/message_reserved_range.c",
            "third_party/upb/upb/reflection/method_def.c",
            "third_party/upb/upb/reflection/oneof_def.c",
            "third_party/upb/upb/reflection/service_def.c",
            "third_party/upb/upb/text/encode.c",
            "third_party/upb/upb/wire/decode.c",
            "third_party/upb/upb/wire/encode.c",
            "third_party/upb/upb/wire/eps_copy_input_stream.c",
            "third_party/upb/upb/wire/internal/decode_fast.c",
            "third_party/upb/upb/wire/reader.c",
            "third_party/utf8_range/utf8_range.c",
            "third_party/zlib/adler32.c",
            "third_party/zlib/compress.c",
            "third_party/zlib/crc32.c",
            "third_party/zlib/deflate.c",
            "third_party/zlib/infback.c",
            "third_party/zlib/inffast.c",
            "third_party/zlib/inflate.c",
            "third_party/zlib/inftrees.c",
            "third_party/zlib/trees.c",
            "third_party/zlib/uncompr.c",
            "third_party/zlib/zutil.c",
            "third_party/boringssl-with-bazel/src/crypto/curve25519/asm/x25519-asm-arm.S",
            "third_party/boringssl-with-bazel/src/crypto/hrss/asm/poly_rq_mul.S",
            "third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm_asm.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesni-gcm-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesni-gcm-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesv8-armv7-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesv8-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesv8-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesv8-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesv8-gcm-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesv8-gcm-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesv8-gcm-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/armv4-mont-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/armv8-mont-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/armv8-mont-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/armv8-mont-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/bn-586-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/bn-586-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/bn-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/bn-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/bn-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/bsaes-armv7-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/co-586-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/co-586-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-armv4-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-neon-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-neon-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-neon-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-ssse3-x86-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-ssse3-x86-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-ssse3-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-ssse3-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-x86-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-x86-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv7-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/md5-586-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/md5-586-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/md5-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/md5-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256-armv8-asm-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256-armv8-asm-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256-armv8-asm-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256-x86_64-asm-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256-x86_64-asm-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-armv8-asm-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-armv8-asm-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-armv8-asm-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-x86_64-asm-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-x86_64-asm-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/rdrand-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/rdrand-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/rsaz-avx2-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/rsaz-avx2-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-586-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-586-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-armv4-large-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-586-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-586-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-armv4-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-586-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-586-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-armv4-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-armv7-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-x86-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-x86-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/x86-mont-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/x86-mont-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/x86_64-mont-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/x86_64-mont-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/x86_64-mont5-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/x86_64-mont5-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/aes128gcmsiv-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/aes128gcmsiv-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-armv4-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-x86-apple.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-x86-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv4-linux.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-x86-apple.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-x86-linux.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/third_party/fiat/asm/fiat_curve25519_adx_mul.S",
            "third_party/boringssl-with-bazel/src/third_party/fiat/asm/fiat_curve25519_adx_square.S",
            "third_party/boringssl-with-bazel/src/third_party/fiat/asm/fiat_p256_adx_mul.S",
            "third_party/boringssl-with-bazel/src/third_party/fiat/asm/fiat_p256_adx_sqr.S"
        ]
    },
    "module_name": "grpc._cython.cygrpc"
}
END: Cython Metadata */

#ifndef PY_SSIZE_T_CLEAN
#define PY_SSIZE_T_CLEAN
#endif /* PY_SSIZE_T_CLEAN */
#if defined(CYTHON_LIMITED_API) && 0
  #ifndef Py_LIMITED_API
    #if CYTHON_LIMITED_API+0 > 0x03030000
      #define Py_LIMITED_API CYTHON_LIMITED_API
    #else
      #define Py_LIMITED_API 0x03030000
    #endif
  #endif
#endif

#include "Python.h"

    #if PY_MAJOR_VERSION >= 3
      #define __Pyx_PyFloat_FromString(obj)  PyFloat_FromString(obj)
    #else
      #define __Pyx_PyFloat_FromString(obj)  PyFloat_FromString(obj, NULL)
    #endif
    

    #if PY_MAJOR_VERSION <= 2
    #define PyDict_GetItemWithError _PyDict_GetItemWithError
    #endif
    

    #if (PY_VERSION_HEX < 0x030700b1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030600)) && !defined(PyContextVar_Get)
    #define PyContextVar_Get(var, d, v)         ((d) ?             ((void)(var), Py_INCREF(d), (v)[0] = (d), 0) :             ((v)[0] = NULL, 0)         )
    #endif
    
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x02070000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
    #error Cython requires Python 2.7+ or Python 3.3+.
#else
#if defined(CYTHON_LIMITED_API) && CYTHON_LIMITED_API
#define __PYX_EXTRA_ABI_MODULE_NAME "limited"
#else
#define __PYX_EXTRA_ABI_MODULE_NAME ""
#endif
#define CYTHON_ABI "3_0_11" __PYX_EXTRA_ABI_MODULE_NAME
#define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI
#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."
#define CYTHON_HEX_VERSION 0x03000BF0
#define CYTHON_FUTURE_DIVISION 1
#include <stddef.h>
#ifndef offsetof
  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#endif
#ifndef DL_IMPORT
  #define DL_IMPORT(t) t
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#define __PYX_COMMA ,
#ifndef HAVE_LONG_LONG
  #define HAVE_LONG_LONG
#endif
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX
#if defined(GRAALVM_PYTHON)
  /* For very preliminary testing purposes. Most variables are set the same as PyPy.
     The existence of this section does not imply that anything works or is even tested */
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 1
  #define CYTHON_COMPILING_IN_NOGIL 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_TYPE_SPECS
  #define CYTHON_USE_TYPE_SPECS 0
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #if PY_VERSION_HEX < 0x03050000
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3)
  #endif
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
  #undef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 0
#elif defined(PYPY_VERSION)
  #define CYTHON_COMPILING_IN_PYPY 1
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_NOGIL 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #if PY_VERSION_HEX < 0x03050000
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3)
  #endif
  #if PY_VERSION_HEX < 0x03090000
    #undef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1 && PYPY_VERSION_NUM >= 0x07030C00)
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
  #undef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 0
#elif defined(CYTHON_LIMITED_API)
  #ifdef Py_LIMITED_API
    #undef __PYX_LIMITED_VERSION_HEX
    #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API
  #endif
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 1
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_NOGIL 0
  #undef CYTHON_CLINE_IN_TRACEBACK
  #define CYTHON_CLINE_IN_TRACEBACK 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_TYPE_SPECS
  #define CYTHON_USE_TYPE_SPECS 1
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_ASYNC_SLOTS
  #define CYTHON_USE_ASYNC_SLOTS 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #endif
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 1
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 0
  #endif
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
  #undef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 0
#elif defined(Py_GIL_DISABLED) || defined(Py_NOGIL)
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_NOGIL 1
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #ifndef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #ifndef CYTHON_USE_PYLONG_INTERNALS
    #define CYTHON_USE_PYLONG_INTERNALS 0
  #endif
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #ifndef CYTHON_METH_FASTCALL
    #define CYTHON_METH_FASTCALL 1
  #endif
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #ifndef CYTHON_USE_MODULE_STATE
    #define CYTHON_USE_MODULE_STATE 0
  #endif
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 1
  #endif
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
  #endif
  #ifndef CYTHON_USE_FREELISTS
    #define CYTHON_USE_FREELISTS 0
  #endif
#else
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 1
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_NOGIL 0
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #ifndef CYTHON_USE_PYTYPE_LOOKUP
    #define CYTHON_USE_PYTYPE_LOOKUP 1
  #endif
  #if PY_MAJOR_VERSION < 3
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #ifndef CYTHON_USE_PYLONG_INTERNALS
    #define CYTHON_USE_PYLONG_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_PYLIST_INTERNALS
    #define CYTHON_USE_PYLIST_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
    #undef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #elif !defined(CYTHON_USE_UNICODE_WRITER)
    #define CYTHON_USE_UNICODE_WRITER 1
  #endif
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #ifndef CYTHON_FAST_THREAD_STATE
    #define CYTHON_FAST_THREAD_STATE 1
  #endif
  #ifndef CYTHON_FAST_GIL
    #define CYTHON_FAST_GIL (PY_MAJOR_VERSION < 3 || PY_VERSION_HEX >= 0x03060000 && PY_VERSION_HEX < 0x030C00A6)
  #endif
  #ifndef CYTHON_METH_FASTCALL
    #define CYTHON_METH_FASTCALL (PY_VERSION_HEX >= 0x030700A1)
  #endif
  #ifndef CYTHON_FAST_PYCALL
    #define CYTHON_FAST_PYCALL 1
  #endif
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #if PY_VERSION_HEX < 0x03050000
    #undef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #ifndef CYTHON_USE_MODULE_STATE
    #define CYTHON_USE_MODULE_STATE 0
  #endif
  #if PY_VERSION_HEX < 0x030400a1
    #undef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 0
  #elif !defined(CYTHON_USE_TP_FINALIZE)
    #define CYTHON_USE_TP_FINALIZE 1
  #endif
  #if PY_VERSION_HEX < 0x030600B1
    #undef CYTHON_USE_DICT_VERSIONS
    #define CYTHON_USE_DICT_VERSIONS 0
  #elif !defined(CYTHON_USE_DICT_VERSIONS)
    #define CYTHON_USE_DICT_VERSIONS  (PY_VERSION_HEX < 0x030C00A5)
  #endif
  #if PY_VERSION_HEX < 0x030700A3
    #undef CYTHON_USE_EXC_INFO_STACK
    #define CYTHON_USE_EXC_INFO_STACK 0
  #elif !defined(CYTHON_USE_EXC_INFO_STACK)
    #define CYTHON_USE_EXC_INFO_STACK 1
  #endif
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
  #endif
  #ifndef CYTHON_USE_FREELISTS
    #define CYTHON_USE_FREELISTS 1
  #endif
#endif
#if !defined(CYTHON_FAST_PYCCALL)
#define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
#endif
#if !defined(CYTHON_VECTORCALL)
#define CYTHON_VECTORCALL  (CYTHON_FAST_PYCCALL && PY_VERSION_HEX >= 0x030800B1)
#endif
#define CYTHON_BACKPORT_VECTORCALL (CYTHON_METH_FASTCALL && PY_VERSION_HEX < 0x030800B1)
#if CYTHON_USE_PYLONG_INTERNALS
  #if PY_MAJOR_VERSION < 3
    #include "longintrepr.h"
  #endif
  #undef SHIFT
  #undef BASE
  #undef MASK
  #ifdef SIZEOF_VOID_P
    enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
  #endif
#endif
#ifndef __has_attribute
  #define __has_attribute(x) 0
#endif
#ifndef __has_cpp_attribute
  #define __has_cpp_attribute(x) 0
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#ifndef CYTHON_UNUSED
  #if defined(__cplusplus)
    /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17
     * but leads to warnings with -pedantic, since it is a C++17 feature */
    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
      #if __has_cpp_attribute(maybe_unused)
        #define CYTHON_UNUSED [[maybe_unused]]
      #endif
    #endif
  #endif
#endif
#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define CYTHON_UNUSED __attribute__ ((__unused__))
#   else
#     define CYTHON_UNUSED
#   endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_UNUSED_VAR
#  if defined(__cplusplus)
     template<class T> void CYTHON_UNUSED_VAR( const T& ) { }
#  else
#    define CYTHON_UNUSED_VAR(x) (void)(x)
#  endif
#endif
#ifndef CYTHON_MAYBE_UNUSED_VAR
  #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)
#endif
#ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON
#  define CYTHON_NCP_UNUSED
# else
#  define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_USE_CPP_STD_MOVE
  #if defined(__cplusplus) && (\
    __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))
    #define CYTHON_USE_CPP_STD_MOVE 1
  #else
    #define CYTHON_USE_CPP_STD_MOVE 0
  #endif
#endif
#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
#ifdef _MSC_VER
    #ifndef _MSC_STDINT_H_
        #if _MSC_VER < 1300
            typedef unsigned char     uint8_t;
            typedef unsigned short    uint16_t;
            typedef unsigned int      uint32_t;
        #else
            typedef unsigned __int8   uint8_t;
            typedef unsigned __int16  uint16_t;
            typedef unsigned __int32  uint32_t;
        #endif
    #endif
    #if _MSC_VER < 1300
        #ifdef _WIN64
            typedef unsigned long long  __pyx_uintptr_t;
        #else
            typedef unsigned int        __pyx_uintptr_t;
        #endif
    #else
        #ifdef _WIN64
            typedef unsigned __int64    __pyx_uintptr_t;
        #else
            typedef unsigned __int32    __pyx_uintptr_t;
        #endif
    #endif
#else
    #include <stdint.h>
    typedef uintptr_t  __pyx_uintptr_t;
#endif
#ifndef CYTHON_FALLTHROUGH
  #if defined(__cplusplus)
    /* for clang __has_cpp_attribute(fallthrough) is true even before C++17
     * but leads to warnings with -pedantic, since it is a C++17 feature */
    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
      #if __has_cpp_attribute(fallthrough)
        #define CYTHON_FALLTHROUGH [[fallthrough]]
      #endif
    #endif
    #ifndef CYTHON_FALLTHROUGH
      #if __has_cpp_attribute(clang::fallthrough)
        #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
      #elif __has_cpp_attribute(gnu::fallthrough)
        #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
      #endif
    #endif
  #endif
  #ifndef CYTHON_FALLTHROUGH
    #if __has_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
    #else
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
  #if defined(__clang__) && defined(__apple_build_version__)
    #if __apple_build_version__ < 7000000
      #undef  CYTHON_FALLTHROUGH
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
#endif
#ifdef __cplusplus
  template <typename T>
  struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);};
  #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value)
#else
  #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0)
#endif
#if CYTHON_COMPILING_IN_PYPY == 1
  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x030A0000)
#else
  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000)
#endif
#define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer))

#ifndef __cplusplus
  #error "Cython files generated with the C++ option must be compiled with a C++ compiler."
#endif
#ifndef CYTHON_INLINE
  #if defined(__clang__)
    #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
  #else
    #define CYTHON_INLINE inline
  #endif
#endif
template<typename T>
void __Pyx_call_destructor(T& x) {
    x.~T();
}
template<typename T>
class __Pyx_FakeReference {
  public:
    __Pyx_FakeReference() : ptr(NULL) { }
    __Pyx_FakeReference(const T& ref) : ptr(const_cast<T*>(&ref)) { }
    T *operator->() { return ptr; }
    T *operator&() { return ptr; }
    operator T&() { return *ptr; }
    template<typename U> bool operator ==(const U& other) const { return *ptr == other; }
    template<typename U> bool operator !=(const U& other) const { return *ptr != other; }
    template<typename U> bool operator==(const __Pyx_FakeReference<U>& other) const { return *ptr == *other.ptr; }
    template<typename U> bool operator!=(const __Pyx_FakeReference<U>& other) const { return *ptr != *other.ptr; }
  private:
    T *ptr;
};

#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#if PY_MAJOR_VERSION < 3
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
  #define __Pyx_DefaultClassType PyClass_Type
  #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#else
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
  #define __Pyx_DefaultClassType PyType_Type
#if CYTHON_COMPILING_IN_LIMITED_API
    static CYTHON_INLINE PyObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f,
                                                    PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                                    PyObject *fv, PyObject *cell, PyObject* fn,
                                                    PyObject *name, int fline, PyObject *lnos) {
        PyObject *exception_table = NULL;
        PyObject *types_module=NULL, *code_type=NULL, *result=NULL;
        #if __PYX_LIMITED_VERSION_HEX < 0x030B0000
        PyObject *version_info;
        PyObject *py_minor_version = NULL;
        #endif
        long minor_version = 0;
        PyObject *type, *value, *traceback;
        PyErr_Fetch(&type, &value, &traceback);
        #if __PYX_LIMITED_VERSION_HEX >= 0x030B0000
        minor_version = 11;
        #else
        if (!(version_info = PySys_GetObject("version_info"))) goto end;
        if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end;
        minor_version = PyLong_AsLong(py_minor_version);
        Py_DECREF(py_minor_version);
        if (minor_version == -1 && PyErr_Occurred()) goto end;
        #endif
        if (!(types_module = PyImport_ImportModule("types"))) goto end;
        if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end;
        if (minor_version <= 7) {
            (void)p;
            result = PyObject_CallFunction(code_type, "iiiiiOOOOOOiOO", a, k, l, s, f, code,
                          c, n, v, fn, name, fline, lnos, fv, cell);
        } else if (minor_version <= 10) {
            result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOO", a,p, k, l, s, f, code,
                          c, n, v, fn, name, fline, lnos, fv, cell);
        } else {
            if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end;
            result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOO", a,p, k, l, s, f, code,
                          c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell);
        }
    end:
        Py_XDECREF(code_type);
        Py_XDECREF(exception_table);
        Py_XDECREF(types_module);
        if (type) {
            PyErr_Restore(type, value, traceback);
        }
        return result;
    }
    #ifndef CO_OPTIMIZED
    #define CO_OPTIMIZED 0x0001
    #endif
    #ifndef CO_NEWLOCALS
    #define CO_NEWLOCALS 0x0002
    #endif
    #ifndef CO_VARARGS
    #define CO_VARARGS 0x0004
    #endif
    #ifndef CO_VARKEYWORDS
    #define CO_VARKEYWORDS 0x0008
    #endif
    #ifndef CO_ASYNC_GENERATOR
    #define CO_ASYNC_GENERATOR 0x0200
    #endif
    #ifndef CO_GENERATOR
    #define CO_GENERATOR 0x0020
    #endif
    #ifndef CO_COROUTINE
    #define CO_COROUTINE 0x0080
    #endif
#elif PY_VERSION_HEX >= 0x030B0000
  static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f,
                                                    PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                                    PyObject *fv, PyObject *cell, PyObject* fn,
                                                    PyObject *name, int fline, PyObject *lnos) {
    PyCodeObject *result;
    PyObject *empty_bytes = PyBytes_FromStringAndSize("", 0);
    if (!empty_bytes) return NULL;
    result =
      #if PY_VERSION_HEX >= 0x030C0000
        PyUnstable_Code_NewWithPosOnlyArgs
      #else
        PyCode_NewWithPosOnlyArgs
      #endif
        (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, empty_bytes);
    Py_DECREF(empty_bytes);
    return result;
  }
#elif PY_VERSION_HEX >= 0x030800B2 && !CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#else
  #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#endif
#endif
#if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE)
  #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type)
#else
  #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type))
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is)
  #define __Pyx_Py_Is(x, y)  Py_Is(x, y)
#else
  #define __Pyx_Py_Is(x, y) ((x) == (y))
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone)
  #define __Pyx_Py_IsNone(ob) Py_IsNone(ob)
#else
  #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None)
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue)
  #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob)
#else
  #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True)
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse)
  #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob)
#else
  #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False)
#endif
#define __Pyx_NoneAsNull(obj)  (__Pyx_Py_IsNone(obj) ? NULL : (obj))
#if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o)
#else
  #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o)
#endif
#ifndef CO_COROUTINE
  #define CO_COROUTINE 0x80
#endif
#ifndef CO_ASYNC_GENERATOR
  #define CO_ASYNC_GENERATOR 0x200
#endif
#ifndef Py_TPFLAGS_CHECKTYPES
  #define Py_TPFLAGS_CHECKTYPES 0
#endif
#ifndef Py_TPFLAGS_HAVE_INDEX
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#ifndef Py_TPFLAGS_HAVE_NEWBUFFER
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#ifndef Py_TPFLAGS_HAVE_FINALIZE
  #define Py_TPFLAGS_HAVE_FINALIZE 0
#endif
#ifndef Py_TPFLAGS_SEQUENCE
  #define Py_TPFLAGS_SEQUENCE 0
#endif
#ifndef Py_TPFLAGS_MAPPING
  #define Py_TPFLAGS_MAPPING 0
#endif
#ifndef METH_STACKLESS
  #define METH_STACKLESS 0
#endif
#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
  #ifndef METH_FASTCALL
     #define METH_FASTCALL 0x80
  #endif
  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
                                                          Py_ssize_t nargs, PyObject *kwnames);
#else
  #if PY_VERSION_HEX >= 0x030d00A4
  #  define __Pyx_PyCFunctionFast PyCFunctionFast
  #  define __Pyx_PyCFunctionFastWithKeywords PyCFunctionFastWithKeywords
  #else
  #  define __Pyx_PyCFunctionFast _PyCFunctionFast
  #  define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
  #endif
#endif
#if CYTHON_METH_FASTCALL
  #define __Pyx_METH_FASTCALL METH_FASTCALL
  #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast
  #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords
#else
  #define __Pyx_METH_FASTCALL METH_VARARGS
  #define __Pyx_PyCFunction_FastCall PyCFunction
  #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords
#endif
#if CYTHON_VECTORCALL
  #define __pyx_vectorcallfunc vectorcallfunc
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  PY_VECTORCALL_ARGUMENTS_OFFSET
  #define __Pyx_PyVectorcall_NARGS(n)  PyVectorcall_NARGS((size_t)(n))
#elif CYTHON_BACKPORT_VECTORCALL
  typedef PyObject *(*__pyx_vectorcallfunc)(PyObject *callable, PyObject *const *args,
                                            size_t nargsf, PyObject *kwnames);
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  ((size_t)1 << (8 * sizeof(size_t) - 1))
  #define __Pyx_PyVectorcall_NARGS(n)  ((Py_ssize_t)(((size_t)(n)) & ~__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET))
#else
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  0
  #define __Pyx_PyVectorcall_NARGS(n)  ((Py_ssize_t)(n))
#endif
#if PY_MAJOR_VERSION >= 0x030900B1
#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_CheckExact(func)
#else
#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_Check(func)
#endif
#define __Pyx_CyOrPyCFunction_Check(func)  PyCFunction_Check(func)
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  (((PyCFunctionObject*)(func))->m_ml->ml_meth)
#elif !CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  PyCFunction_GET_FUNCTION(func)
#endif
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CyOrPyCFunction_GET_FLAGS(func)  (((PyCFunctionObject*)(func))->m_ml->ml_flags)
static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) {
    return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self;
}
#endif
static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void *cfunc) {
#if CYTHON_COMPILING_IN_LIMITED_API
    return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
#else
    return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
#endif
}
#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCFunction(func, cfunc)
#if __PYX_LIMITED_VERSION_HEX < 0x030900B1
  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  ((void)m, PyType_FromSpecWithBases(s, b))
  typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *);
#else
  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  PyType_FromModuleAndSpec(m, s, b)
  #define __Pyx_PyCMethod  PyCMethod
#endif
#ifndef METH_METHOD
  #define METH_METHOD 0x200
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
  #define PyObject_Malloc(s)   PyMem_Malloc(s)
  #define PyObject_Free(p)     PyMem_Free(p)
  #define PyObject_Realloc(p)  PyMem_Realloc(p)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)
#else
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyThreadState_Current PyThreadState_Get()
#elif !CYTHON_FAST_THREAD_STATE
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#elif PY_VERSION_HEX >= 0x030d00A1
  #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked()
#elif PY_VERSION_HEX >= 0x03060000
  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
#elif PY_VERSION_HEX >= 0x03000000
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#else
  #define __Pyx_PyThreadState_Current _PyThreadState_Current
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE void *__Pyx_PyModule_GetState(PyObject *op)
{
    void *result;
    result = PyModule_GetState(op);
    if (!result)
        Py_FatalError("Couldn't find the module state");
    return result;
}
#endif
#define __Pyx_PyObject_GetSlot(obj, name, func_ctype)  __Pyx_PyType_GetSlot(Py_TYPE(obj), name, func_ctype)
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((func_ctype) PyType_GetSlot((type), Py_##name))
#else
  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((type)->name)
#endif
#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
#include "pythread.h"
#define Py_tss_NEEDS_INIT 0
typedef int Py_tss_t;
static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
  *key = PyThread_create_key();
  return 0;
}
static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
  Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
  *key = Py_tss_NEEDS_INIT;
  return key;
}
static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
  PyObject_Free(key);
}
static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
  return *key != Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
  PyThread_delete_key(*key);
  *key = Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
  return PyThread_set_key_value(*key, value);
}
static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
  return PyThread_get_key_value(*key);
}
#endif
#if PY_MAJOR_VERSION < 3
    #if CYTHON_COMPILING_IN_PYPY
        #if PYPY_VERSION_NUM < 0x07030600
            #if defined(__cplusplus) && __cplusplus >= 201402L
                [[deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")]]
            #elif defined(__GNUC__) || defined(__clang__)
                __attribute__ ((__deprecated__("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")))
            #elif defined(_MSC_VER)
                __declspec(deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6"))
            #endif
            static CYTHON_INLINE int PyGILState_Check(void) {
                return 0;
            }
        #else  // PYPY_VERSION_NUM < 0x07030600
        #endif  // PYPY_VERSION_NUM < 0x07030600
    #else
        static CYTHON_INLINE int PyGILState_Check(void) {
            PyThreadState * tstate = _PyThreadState_Current;
            return tstate && (tstate == PyGILState_GetThisThreadState());
        }
    #endif
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000 || defined(_PyDict_NewPresized)
#define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
#else
#define __Pyx_PyDict_NewPresized(n)  PyDict_New()
#endif
#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#else
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX > 0x030600B4 && PY_VERSION_HEX < 0x030d0000 && CYTHON_USE_UNICODE_INTERNALS
#define __Pyx_PyDict_GetItemStrWithError(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) {
    PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name);
    if (res == NULL) PyErr_Clear();
    return res;
}
#elif PY_MAJOR_VERSION >= 3 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000)
#define __Pyx_PyDict_GetItemStrWithError  PyDict_GetItemWithError
#define __Pyx_PyDict_GetItemStr           PyDict_GetItem
#else
static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) {
#if CYTHON_COMPILING_IN_PYPY
    return PyDict_GetItem(dict, name);
#else
    PyDictEntry *ep;
    PyDictObject *mp = (PyDictObject*) dict;
    long hash = ((PyStringObject *) name)->ob_shash;
    assert(hash != -1);
    ep = (mp->ma_lookup)(mp, name, hash);
    if (ep == NULL) {
        return NULL;
    }
    return ep->me_value;
#endif
}
#define __Pyx_PyDict_GetItemStr           PyDict_GetItem
#endif
#if CYTHON_USE_TYPE_SLOTS
  #define __Pyx_PyType_GetFlags(tp)   (((PyTypeObject *)tp)->tp_flags)
  #define __Pyx_PyType_HasFeature(type, feature)  ((__Pyx_PyType_GetFlags(type) & (feature)) != 0)
  #define __Pyx_PyObject_GetIterNextFunc(obj)  (Py_TYPE(obj)->tp_iternext)
#else
  #define __Pyx_PyType_GetFlags(tp)   (PyType_GetFlags((PyTypeObject *)tp))
  #define __Pyx_PyType_HasFeature(type, feature)  PyType_HasFeature(type, feature)
  #define __Pyx_PyObject_GetIterNextFunc(obj)  PyIter_Next
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_SetItemOnTypeDict(tp, k, v) PyObject_GenericSetAttr((PyObject*)tp, k, v)
#else
  #define __Pyx_SetItemOnTypeDict(tp, k, v) PyDict_SetItem(tp->tp_dict, k, v)
#endif
#if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX >= 0x03080000
#define __Pyx_PyHeapTypeObject_GC_Del(obj)  {\
    PyTypeObject *type = Py_TYPE((PyObject*)obj);\
    assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\
    PyObject_GC_Del(obj);\
    Py_DECREF(type);\
}
#else
#define __Pyx_PyHeapTypeObject_GC_Del(obj)  PyObject_GC_Del(obj)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define CYTHON_PEP393_ENABLED 1
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GetLength(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((void)u, 1114111U)
  #define __Pyx_PyUnicode_KIND(u)         ((void)u, (0))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)u)
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)k, PyUnicode_ReadChar((PyObject*)(d), i))
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GetLength(u))
#elif PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
  #define CYTHON_PEP393_ENABLED 1
  #if PY_VERSION_HEX >= 0x030C0000
    #define __Pyx_PyUnicode_READY(op)       (0)
  #else
    #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
                                                0 : _PyUnicode_Ready((PyObject *)(op)))
  #endif
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
  #define __Pyx_PyUnicode_KIND(u)         ((int)PyUnicode_KIND(u))
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, (Py_UCS4) ch)
  #if PY_VERSION_HEX >= 0x030C0000
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
  #else
    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
    #else
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
    #endif
  #endif
#else
  #define CYTHON_PEP393_ENABLED 0
  #define PyUnicode_1BYTE_KIND  1
  #define PyUnicode_2BYTE_KIND  2
  #define PyUnicode_4BYTE_KIND  4
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((sizeof(Py_UNICODE) == 2) ? 65535U : 1114111U)
  #define __Pyx_PyUnicode_KIND(u)         ((int)sizeof(Py_UNICODE))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  (((void)(k)), ((Py_UNICODE*)d)[i] = (Py_UNICODE) ch)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_SIZE(u))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
#else
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #if !defined(PyUnicode_DecodeUnicodeEscape)
    #define PyUnicode_DecodeUnicodeEscape(s, size, errors)  PyUnicode_Decode(s, size, "unicode_escape", errors)
  #endif
  #if !defined(PyUnicode_Contains) || (PY_MAJOR_VERSION == 2 && PYPY_VERSION_NUM < 0x07030500)
    #undef PyUnicode_Contains
    #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
  #endif
  #if !defined(PyByteArray_Check)
    #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
  #endif
  #if !defined(PyObject_Format)
    #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
  #endif
#endif
#define __Pyx_PyString_FormatSafe(a, b)   ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
#else
  #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
#endif
#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
  #define PyObject_ASCII(o)            PyObject_Repr(o)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBaseString_Type            PyUnicode_Type
  #define PyStringObject               PyUnicodeObject
  #define PyString_Type                PyUnicode_Type
  #define PyString_Check               PyUnicode_Check
  #define PyString_CheckExact          PyUnicode_CheckExact
#ifndef PyObject_Unicode
  #define PyObject_Unicode             PyObject_Str
#endif
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
#else
  #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
#endif
#if CYTHON_COMPILING_IN_CPYTHON
  #define __Pyx_PySequence_ListKeepNew(obj)\
    (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj))
#else
  #define __Pyx_PySequence_ListKeepNew(obj)  PySequence_List(obj)
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        __Pyx_IS_TYPE(obj, &PySet_Type)
#endif
#if PY_VERSION_HEX >= 0x030900A4
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
#else
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
#endif
#if CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i)
  #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
  #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0))
  #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0))
  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o)
  #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o)
  #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o)
  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o)
  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o)
#else
  #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i)
  #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
  #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v)
  #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v)
  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o)
  #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o)
  #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o)
  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o)
  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o)
#endif
#if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
  #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
#else
  static CYTHON_INLINE PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
      PyObject *module = PyImport_AddModule(name);
      Py_XINCREF(module);
      return module;
  }
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyIntObject                  PyLongObject
  #define PyInt_Type                   PyLong_Type
  #define PyInt_Check(op)              PyLong_Check(op)
  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
  #define __Pyx_Py3Int_Check(op)       PyLong_Check(op)
  #define __Pyx_Py3Int_CheckExact(op)  PyLong_CheckExact(op)
  #define PyInt_FromString             PyLong_FromString
  #define PyInt_FromUnicode            PyLong_FromUnicode
  #define PyInt_FromLong               PyLong_FromLong
  #define PyInt_FromSize_t             PyLong_FromSize_t
  #define PyInt_FromSsize_t            PyLong_FromSsize_t
  #define PyInt_AsLong                 PyLong_AsLong
  #define PyInt_AS_LONG                PyLong_AS_LONG
  #define PyInt_AsSsize_t              PyLong_AsSsize_t
  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
  #define PyNumber_Int                 PyNumber_Long
#else
  #define __Pyx_Py3Int_Check(op)       (PyLong_Check(op) || PyInt_Check(op))
  #define __Pyx_Py3Int_CheckExact(op)  (PyLong_CheckExact(op) || PyInt_CheckExact(op))
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBoolObject                 PyLongObject
#endif
#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
  #ifndef PyUnicode_InternFromString
    #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
  #endif
#endif
#if PY_VERSION_HEX < 0x030200A4
  typedef long Py_hash_t;
  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
  #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsHash_t
#else
  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
  #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsSsize_t
#endif
#if CYTHON_USE_ASYNC_SLOTS
  #if PY_VERSION_HEX >= 0x030500B1
    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
    #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
  #else
    #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
  #endif
#else
  #define __Pyx_PyType_AsAsync(obj) NULL
#endif
#ifndef __Pyx_PyAsyncMethodsStruct
    typedef struct {
        unaryfunc am_await;
        unaryfunc am_aiter;
        unaryfunc am_anext;
    } __Pyx_PyAsyncMethodsStruct;
#endif

#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
  #if !defined(_USE_MATH_DEFINES)
    #define _USE_MATH_DEFINES
  #endif
#endif
#include <math.h>
#ifdef NAN
#define __PYX_NAN() ((float) NAN)
#else
static CYTHON_INLINE float __PYX_NAN() {
  float value;
  memset(&value, 0xFF, sizeof(value));
  return value;
}
#endif
#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
#define __Pyx_truncl trunc
#else
#define __Pyx_truncl truncl
#endif

#define __PYX_MARK_ERR_POS(f_index, lineno) \
    { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__;  (void)__pyx_clineno; }
#define __PYX_ERR(f_index, lineno, Ln_error) \
    { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }

#ifdef CYTHON_EXTERN_C
    #undef __PYX_EXTERN_C
    #define __PYX_EXTERN_C CYTHON_EXTERN_C
#elif defined(__PYX_EXTERN_C)
    #ifdef _MSC_VER
    #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.")
    #else
    #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.
    #endif
#else
    #define __PYX_EXTERN_C extern "C++"
#endif

#define __PYX_HAVE__grpc___cython__cygrpc
#define __PYX_HAVE_API__grpc___cython__cygrpc
/* Early includes */
#include <string.h>
#include <stdio.h>
#include <stddef.h>
#include "pythread.h"
#include <string>
#include "ios"
#include "new"
#include "stdexcept"
#include "typeinfo"
#include <time.h>
#include <queue>
#include <mutex>
#include <condition_variable>
#include "src/core/telemetry/call_tracer.h"
#include "src/core/lib/surface/call.h"
#include "grpc/support/alloc.h"
#include "grpc/byte_buffer_reader.h"
#include "grpc/impl/codegen/grpc_types.h"
#include "grpc/grpc.h"
#include "grpc/grpc_security_constants.h"
#include "grpc/credentials.h"
#include "grpc/grpc_security.h"
#include "grpc/compression.h"
#include "grpc/impl/codegen/compression_types.h"
#include "src/core/lib/config/config_vars.h"
#include "grpc/impl/propagation_bits.h"
#include "src/core/lib/iomgr/timer_manager.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
#include "src/core/lib/iomgr/executor.h"
#include <sys/types.h>
#include <unistd.h>
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
#define CYTHON_WITHOUT_ASSERTIONS
#endif

typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;

#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#define __Pyx_uchar_cast(c) ((unsigned char)c)
#define __Pyx_long_cast(x) ((long)x)
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
    (sizeof(type) < sizeof(Py_ssize_t))  ||\
    (sizeof(type) > sizeof(Py_ssize_t) &&\
          likely(v < (type)PY_SSIZE_T_MAX ||\
                 v == (type)PY_SSIZE_T_MAX)  &&\
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
                                v == (type)PY_SSIZE_T_MIN)))  ||\
    (sizeof(type) == sizeof(Py_ssize_t) &&\
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
                               v == (type)PY_SSIZE_T_MAX)))  )
static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
    return (size_t) i < (size_t) limit;
}
#if defined (__cplusplus) && __cplusplus >= 201103L
    #include <cstdlib>
    #define __Pyx_sst_abs(value) std::abs(value)
#elif SIZEOF_INT >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) abs(value)
#elif SIZEOF_LONG >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) labs(value)
#elif defined (_MSC_VER)
    #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define __Pyx_sst_abs(value) llabs(value)
#elif defined (__GNUC__)
    #define __Pyx_sst_abs(value) __builtin_llabs(value)
#else
    #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
#endif
static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s);
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*);
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
#define __Pyx_PyBytes_FromString        PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
#if PY_MAJOR_VERSION < 3
    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#else
    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
#endif
#define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyObject_AsWritableString(s)    ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableSString(s)    ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
#define __Pyx_PyUnicode_FromOrdinal(o)       PyUnicode_FromOrdinal((int)o)
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
#define __Pyx_PySequence_Tuple(obj)\
    (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
#if CYTHON_ASSUME_SAFE_MACROS
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#else
#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#endif
#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
#else
#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
#endif
#if CYTHON_USE_PYLONG_INTERNALS
  #if PY_VERSION_HEX >= 0x030C00A7
  #ifndef _PyLong_SIGN_MASK
    #define _PyLong_SIGN_MASK 3
  #endif
  #ifndef _PyLong_NON_SIZE_BITS
    #define _PyLong_NON_SIZE_BITS 3
  #endif
  #define __Pyx_PyLong_Sign(x)  (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK)
  #define __Pyx_PyLong_IsNeg(x)  ((__Pyx_PyLong_Sign(x) & 2) != 0)
  #define __Pyx_PyLong_IsNonNeg(x)  (!__Pyx_PyLong_IsNeg(x))
  #define __Pyx_PyLong_IsZero(x)  (__Pyx_PyLong_Sign(x) & 1)
  #define __Pyx_PyLong_IsPos(x)  (__Pyx_PyLong_Sign(x) == 0)
  #define __Pyx_PyLong_CompactValueUnsigned(x)  (__Pyx_PyLong_Digits(x)[0])
  #define __Pyx_PyLong_DigitCount(x)  ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS))
  #define __Pyx_PyLong_SignedDigitCount(x)\
        ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))
  #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)
    #define __Pyx_PyLong_IsCompact(x)     PyUnstable_Long_IsCompact((PyLongObject*) x)
    #define __Pyx_PyLong_CompactValue(x)  PyUnstable_Long_CompactValue((PyLongObject*) x)
  #else
    #define __Pyx_PyLong_IsCompact(x)     (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))
    #define __Pyx_PyLong_CompactValue(x)  ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])
  #endif
  typedef Py_ssize_t  __Pyx_compact_pylong;
  typedef size_t  __Pyx_compact_upylong;
  #else
  #define __Pyx_PyLong_IsNeg(x)  (Py_SIZE(x) < 0)
  #define __Pyx_PyLong_IsNonNeg(x)  (Py_SIZE(x) >= 0)
  #define __Pyx_PyLong_IsZero(x)  (Py_SIZE(x) == 0)
  #define __Pyx_PyLong_IsPos(x)  (Py_SIZE(x) > 0)
  #define __Pyx_PyLong_CompactValueUnsigned(x)  ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0])
  #define __Pyx_PyLong_DigitCount(x)  __Pyx_sst_abs(Py_SIZE(x))
  #define __Pyx_PyLong_SignedDigitCount(x)  Py_SIZE(x)
  #define __Pyx_PyLong_IsCompact(x)  (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1)
  #define __Pyx_PyLong_CompactValue(x)\
        ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0]))
  typedef sdigit  __Pyx_compact_pylong;
  typedef digit  __Pyx_compact_upylong;
  #endif
  #if PY_VERSION_HEX >= 0x030C00A5
  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->long_value.ob_digit)
  #else
  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->ob_digit)
  #endif
#endif
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
#include <string.h>
static int __Pyx_sys_getdefaultencoding_not_ascii;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    PyObject* ascii_chars_u = NULL;
    PyObject* ascii_chars_b = NULL;
    const char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    if (strcmp(default_encoding_c, "ascii") == 0) {
        __Pyx_sys_getdefaultencoding_not_ascii = 0;
    } else {
        char ascii_chars[128];
        int c;
        for (c = 0; c < 128; c++) {
            ascii_chars[c] = (char) c;
        }
        __Pyx_sys_getdefaultencoding_not_ascii = 1;
        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
        if (!ascii_chars_u) goto bad;
        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
        if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
            PyErr_Format(
                PyExc_ValueError,
                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
                default_encoding_c);
            goto bad;
        }
        Py_DECREF(ascii_chars_u);
        Py_DECREF(ascii_chars_b);
    }
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    Py_XDECREF(ascii_chars_u);
    Py_XDECREF(ascii_chars_b);
    return -1;
}
#endif
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
#else
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
#include <string.h>
static char* __PYX_DEFAULT_STRING_ENCODING;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
    if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    return -1;
}
#endif
#endif


/* Test for GCC > 2.95 */
#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
  #define likely(x)   __builtin_expect(!!(x), 1)
  #define unlikely(x) __builtin_expect(!!(x), 0)
#else /* !__GNUC__ or GCC < 2.95 */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */
static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }

#if !CYTHON_USE_MODULE_STATE
static PyObject *__pyx_m = NULL;
#endif
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * __pyx_cfilenm = __FILE__;
static const char *__pyx_filename;

/* #### Code section: filename_table ### */

static const char *__pyx_f[] = {
  "src/python/grpcio/grpc/_cython/cygrpc.pyx",
  "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi",
  "<stringsource>",
  "contextvars.pxd",
  "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pxd.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi",
  "type.pxd",
  "bool.pxd",
  "complex.pxd",
  "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi",
};
/* #### Code section: utility_code_proto_before_types ### */
/* ForceInitThreads.proto */
#ifndef __PYX_FORCE_INIT_THREADS
  #define __PYX_FORCE_INIT_THREADS 0
#endif

/* NoFastGil.proto */
#define __Pyx_PyGILState_Ensure PyGILState_Ensure
#define __Pyx_PyGILState_Release PyGILState_Release
#define __Pyx_FastGIL_Remember()
#define __Pyx_FastGIL_Forget()
#define __Pyx_FastGilFuncInit()

/* #### Code section: numeric_typedefs ### */

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":19
 * cimport libc.time
 * 
 * ctypedef          ssize_t   intptr_t             # <<<<<<<<<<<<<<
 * ctypedef          size_t    uintptr_t
 * ctypedef   signed char      int8_t
 */
typedef Py_ssize_t __pyx_t_4grpc_7_cython_6cygrpc_intptr_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":20
 * 
 * ctypedef          ssize_t   intptr_t
 * ctypedef          size_t    uintptr_t             # <<<<<<<<<<<<<<
 * ctypedef   signed char      int8_t
 * ctypedef   signed short     int16_t
 */
typedef size_t __pyx_t_4grpc_7_cython_6cygrpc_uintptr_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":21
 * ctypedef          ssize_t   intptr_t
 * ctypedef          size_t    uintptr_t
 * ctypedef   signed char      int8_t             # <<<<<<<<<<<<<<
 * ctypedef   signed short     int16_t
 * ctypedef   signed int       int32_t
 */
typedef signed char __pyx_t_4grpc_7_cython_6cygrpc_int8_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":22
 * ctypedef          size_t    uintptr_t
 * ctypedef   signed char      int8_t
 * ctypedef   signed short     int16_t             # <<<<<<<<<<<<<<
 * ctypedef   signed int       int32_t
 * ctypedef   signed long long int64_t
 */
typedef short __pyx_t_4grpc_7_cython_6cygrpc_int16_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":23
 * ctypedef   signed char      int8_t
 * ctypedef   signed short     int16_t
 * ctypedef   signed int       int32_t             # <<<<<<<<<<<<<<
 * ctypedef   signed long long int64_t
 * ctypedef unsigned char      uint8_t
 */
typedef int __pyx_t_4grpc_7_cython_6cygrpc_int32_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":24
 * ctypedef   signed short     int16_t
 * ctypedef   signed int       int32_t
 * ctypedef   signed long long int64_t             # <<<<<<<<<<<<<<
 * ctypedef unsigned char      uint8_t
 * ctypedef unsigned short     uint16_t
 */
typedef PY_LONG_LONG __pyx_t_4grpc_7_cython_6cygrpc_int64_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":25
 * ctypedef   signed int       int32_t
 * ctypedef   signed long long int64_t
 * ctypedef unsigned char      uint8_t             # <<<<<<<<<<<<<<
 * ctypedef unsigned short     uint16_t
 * ctypedef unsigned int       uint32_t
 */
typedef unsigned char __pyx_t_4grpc_7_cython_6cygrpc_uint8_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":26
 * ctypedef   signed long long int64_t
 * ctypedef unsigned char      uint8_t
 * ctypedef unsigned short     uint16_t             # <<<<<<<<<<<<<<
 * ctypedef unsigned int       uint32_t
 * ctypedef unsigned long long uint64_t
 */
typedef unsigned short __pyx_t_4grpc_7_cython_6cygrpc_uint16_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":27
 * ctypedef unsigned char      uint8_t
 * ctypedef unsigned short     uint16_t
 * ctypedef unsigned int       uint32_t             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long uint64_t
 * 
 */
typedef unsigned int __pyx_t_4grpc_7_cython_6cygrpc_uint32_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":28
 * ctypedef unsigned short     uint16_t
 * ctypedef unsigned int       uint32_t
 * ctypedef unsigned long long uint64_t             # <<<<<<<<<<<<<<
 * 
 * # C++ Utilities
 */
typedef unsigned PY_LONG_LONG __pyx_t_4grpc_7_cython_6cygrpc_uint64_t;
/* #### Code section: complex_type_declarations ### */
/* #### Code section: type_declarations ### */

/*--- Type declarations ---*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg;
struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs;
struct __pyx_obj_4grpc_7_cython_6cygrpc_Call;
struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState;
struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState;
struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall;
struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue;
struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent;
struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent;
struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent;
struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions;
struct __pyx_obj_4grpc_7_cython_6cygrpc_Server;
struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod;
struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag;
struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag;
struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag;
struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag;
struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag;
struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop;
struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue;
struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus;
struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper;
struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper;
struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall;
struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel;
struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails;
struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState;
struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext;
struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext;
struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver;
struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter;
struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer;
struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper;
struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination;
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg;
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_;
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args;
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_;
struct __pyx_opt_args_7cpython_11contextvars_get_value;
struct __pyx_opt_args_7cpython_11contextvars_get_value_no_default;

/* "cpython/contextvars.pxd":112
 * 
 * 
 * cdef inline object get_value(var, default_value=None):             # <<<<<<<<<<<<<<
 *     """Return a new reference to the value of the context variable,
 *     or the default value of the context variable,
 */
struct __pyx_opt_args_7cpython_11contextvars_get_value {
  int __pyx_n;
  PyObject *default_value;
};

/* "cpython/contextvars.pxd":129
 * 
 * 
 * cdef inline object get_value_no_default(var, default_value=None):             # <<<<<<<<<<<<<<
 *     """Return a new reference to the value of the context variable,
 *     or the provided default value if no such value was found.
 */
struct __pyx_opt_args_7cpython_11contextvars_get_value_no_default {
  int __pyx_n;
  PyObject *default_value;
};
struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext;

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pxd.pxi":15
 * # limitations under the License.
 * 
 * cdef enum AioChannelStatus:             # <<<<<<<<<<<<<<
 *     AIO_CHANNEL_STATUS_UNKNOWN
 *     AIO_CHANNEL_STATUS_READY
 */
enum __pyx_t_4grpc_7_cython_6cygrpc_AioChannelStatus {
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_UNKNOWN,
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_READY,
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_CLOSING,
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_DESTROYED
};

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":64
 * 
 * 
 * cdef enum AioServerStatus:             # <<<<<<<<<<<<<<
 *     AIO_SERVER_STATUS_UNKNOWN
 *     AIO_SERVER_STATUS_READY
 */
enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus {
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_UNKNOWN,
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_READY,
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_RUNNING,
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPED,
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPING
};

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pxd.pxi":16
 * 
 * 
 * ctypedef queue[grpc_event] cpp_event_queue             # <<<<<<<<<<<<<<
 * 
 * 
 */
typedef std::queue<grpc_event>  __pyx_t_4grpc_7_cython_6cygrpc_cpp_event_queue;

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi":24
 * 
 * 
 * cdef struct CallbackContext:             # <<<<<<<<<<<<<<
 *     # C struct to store callback context in the form of pointers.
 *     #
 */
struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext {
  grpc_completion_queue_functor functor;
  PyObject *waiter;
  PyObject *loop;
  PyObject *failure_handler;
  PyObject *callback_wrapper;
};

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pxd.pxi":22
 * 
 * 
 * cdef class _ChannelArg:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_arg c_argument
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_vtab;
  grpc_arg c_argument;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pxd.pxi":29
 * 
 * 
 * cdef class _ChannelArgs:             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly tuple _arguments
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_vtab;
  PyObject *_arguments;
  PyObject *_channel_args;
  PyObject *_references;
  grpc_channel_args _c_arguments;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pxd.pxi":16
 * 
 * 
 * cdef class Call:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call *c_call
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_Call {
  PyObject_HEAD
  grpc_call *c_call;
  PyObject *references;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd.pxi":25
 * 
 * 
 * cdef class _CallState:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call *c_call
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *__pyx_vtab;
  grpc_call *c_call;
  PyObject *due;
  PyObject *call_tracer_capsule;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd.pxi":36
 * 
 * 
 * cdef class _ChannelState:             # <<<<<<<<<<<<<<
 * 
 *   cdef bytes target
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState {
  PyObject_HEAD
  PyObject *target;
  PyObject *condition;
  grpc_channel *c_channel;
  PyObject *open;
  PyObject *closed_reason;
  PyObject *integrated_call_states;
  grpc_completion_queue *c_call_completion_queue;
  PyObject *segregated_call_states;
  PyObject *connectivity_due;
  grpc_completion_queue *c_connectivity_completion_queue;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd.pxi":62
 * 
 * 
 * cdef class IntegratedCall:             # <<<<<<<<<<<<<<
 * 
 *   cdef _ChannelState _channel_state
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *_channel_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *_call_state;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd.pxi":68
 * 
 * 
 * cdef class SegregatedCall:             # <<<<<<<<<<<<<<
 * 
 *   cdef _ChannelState _channel_state
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *_channel_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *_call_state;
  grpc_completion_queue *_c_completion_queue;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd.pxi":75
 * 
 * 
 * cdef class Channel:             # <<<<<<<<<<<<<<
 * 
 *   cdef _ChannelState _state
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *_state;
  PyObject *_registered_call_handles;
  PyObject *_arguments;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd.pxi":84
 * 
 * 
 * cdef class CallHandle:             # <<<<<<<<<<<<<<
 * 
 *   cdef void *c_call_handle
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle {
  PyObject_HEAD
  void *c_call_handle;
  PyObject *method;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":16
 * 
 * 
 * cdef class CallCredentials:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call_credentials *c(self) except *
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_vtab;
  grpc_call_credentials *c_credentials;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":34
 * 
 * 
 * cdef class MetadataPluginCallCredentials(CallCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly object _metadata_plugin
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials __pyx_base;
  PyObject *_metadata_plugin;
  PyObject *_name;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":45
 * 
 * 
 * cdef class CompositeCallCredentials(CallCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly tuple _call_credentialses
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials __pyx_base;
  PyObject *_call_credentialses;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":52
 * 
 * 
 * cdef class ChannelCredentials:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_vtab;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":57
 * 
 * 
 * cdef class SSLSessionCacheLRU:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_ssl_session_cache *_cache
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU {
  PyObject_HEAD
  grpc_ssl_session_cache *_cache;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":62
 * 
 * 
 * cdef class SSLChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly object _pem_root_certificates
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
  PyObject *_pem_root_certificates;
  PyObject *_private_key;
  PyObject *_certificate_chain;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":71
 * 
 * 
 * cdef class CompositeChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly tuple _call_credentialses
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
  PyObject *_call_credentialses;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *_channel_credentials;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":79
 * 
 * 
 * cdef class XDSChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly ChannelCredentials _fallback_credentials
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *_fallback_credentials;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":86
 * 
 * 
 * cdef class ServerCertificateConfig:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_ssl_server_certificate_config *c_cert_config
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig {
  PyObject_HEAD
  grpc_ssl_server_certificate_config *c_cert_config;
  char const *c_pem_root_certs;
  grpc_ssl_pem_key_cert_pair *c_ssl_pem_key_cert_pairs;
  size_t c_ssl_pem_key_cert_pairs_count;
  PyObject *references;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":95
 * 
 * 
 * cdef class ServerCredentials:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_server_credentials *c_credentials
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials {
  PyObject_HEAD
  grpc_server_credentials *c_credentials;
  grpc_ssl_pem_key_cert_pair *c_ssl_pem_key_cert_pairs;
  size_t c_ssl_pem_key_cert_pairs_count;
  PyObject *references;
  PyObject *initial_cert_config;
  PyObject *cert_config_fetcher;
  int initial_cert_config_fetched;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":109
 * 
 * 
 * cdef class LocalChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_local_connect_type _local_connect_type
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
  grpc_local_connect_type _local_connect_type;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":114
 * 
 * 
 * cdef class ALTSChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 *   cdef grpc_alts_credentials_options *c_options
 * 
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
  grpc_alts_credentials_options *c_options;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd.pxi":22
 * cdef _interpret_event(grpc_event c_event)
 * 
 * cdef class _LatentEventArg:             # <<<<<<<<<<<<<<
 *   cdef grpc_completion_queue *c_completion_queue
 *   cdef object deadline
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg {
  PyObject_HEAD
  grpc_completion_queue *c_completion_queue;
  PyObject *deadline;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd.pxi":26
 *   cdef object deadline
 * 
 * cdef class CompletionQueue:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_completion_queue *c_completion_queue
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_vtab;
  grpc_completion_queue *c_completion_queue;
  int is_shutting_down;
  int is_shutdown;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":15
 * # limitations under the License.
 * 
 * cdef class BaseEvent:             # <<<<<<<<<<<<<<
 *   pass
 * 
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent {
  PyObject_HEAD
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":18
 *   pass
 * 
 * cdef class ConnectivityEvent(BaseEvent):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly grpc_completion_type completion_type
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent __pyx_base;
  grpc_completion_type completion_type;
  int success;
  PyObject *tag;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":25
 * 
 * 
 * cdef class RequestCallEvent(BaseEvent):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly grpc_completion_type completion_type
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent __pyx_base;
  grpc_completion_type completion_type;
  int success;
  PyObject *tag;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *call;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *call_details;
  PyObject *invocation_metadata;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":35
 * 
 * 
 * cdef class BatchOperationEvent(BaseEvent):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly grpc_completion_type completion_type
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent __pyx_base;
  grpc_completion_type completion_type;
  int success;
  PyObject *tag;
  PyObject *batch_operations;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":43
 * 
 * 
 * cdef class ServerShutdownEvent(BaseEvent):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly grpc_completion_type completion_type
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent __pyx_base;
  grpc_completion_type completion_type;
  int success;
  PyObject *tag;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":16
 * 
 * 
 * cdef class Operation:             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation *__pyx_vtab;
  grpc_op c_op;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":25
 * 
 * 
 * cdef class SendInitialMetadataOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly object _initial_metadata;
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  PyObject *_initial_metadata;
  int _flags;
  grpc_metadata *_c_initial_metadata;
  size_t _c_initial_metadata_count;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":36
 * 
 * 
 * cdef class SendMessageOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly bytes _message
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  PyObject *_message;
  int _flags;
  grpc_byte_buffer *_c_message_byte_buffer;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":46
 * 
 * 
 * cdef class SendCloseFromClientOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly int _flags
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  int _flags;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":54
 * 
 * 
 * cdef class SendStatusFromServerOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly object _trailing_metadata
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  PyObject *_trailing_metadata;
  PyObject *_code;
  PyObject *_details;
  int _flags;
  grpc_metadata *_c_trailing_metadata;
  size_t _c_trailing_metadata_count;
  grpc_slice _c_details;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":68
 * 
 * 
 * cdef class ReceiveInitialMetadataOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly int _flags
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  int _flags;
  PyObject *_initial_metadata;
  grpc_metadata_array _c_initial_metadata;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":78
 * 
 * 
 * cdef class ReceiveMessageOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly int _flags
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  int _flags;
  grpc_byte_buffer *_c_message_byte_buffer;
  PyObject *_message;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":88
 * 
 * 
 * cdef class ReceiveStatusOnClientOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly int _flags
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  int _flags;
  grpc_metadata_array _c_trailing_metadata;
  grpc_status_code _c_code;
  grpc_slice _c_details;
  char const *_c_error_string;
  PyObject *_trailing_metadata;
  PyObject *_code;
  PyObject *_details;
  PyObject *_error_string;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":104
 * 
 * 
 * cdef class ReceiveCloseOnServerOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly int _flags
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  int _flags;
  PyObject *_cancelled;
  int _c_cancelled;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi":21
 * 
 * 
 * cdef class CallDetails:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call_details c_details
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails {
  PyObject_HEAD
  grpc_call_details c_details;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi":26
 * 
 * 
 * cdef class SslPemKeyCertPair:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_ssl_pem_key_cert_pair c_pair
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair {
  PyObject_HEAD
  grpc_ssl_pem_key_cert_pair c_pair;
  PyObject *private_key;
  PyObject *certificate_chain;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi":32
 * 
 * 
 * cdef class CompressionOptions:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_compression_options c_options
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions {
  PyObject_HEAD
  grpc_compression_options c_options;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pxd.pxi":15
 * # limitations under the License.
 * 
 * cdef class Server:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_server *c_server
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_Server {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server *__pyx_vtab;
  grpc_server *c_server;
  int is_started;
  int is_shutting_down;
  int is_shutdown;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *backup_shutdown_queue;
  PyObject *references;
  PyObject *registered_completion_queues;
  PyObject *registered_methods;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pxd.pxi":41
 *   cdef notify_shutdown_complete(self)
 * 
 * cdef class RegisteredMethod:             # <<<<<<<<<<<<<<
 * 
 *   cdef void *c_registered_method
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod {
  PyObject_HEAD
  void *c_registered_method;
  PyObject *method;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":16
 * 
 * 
 * cdef class _Tag:             # <<<<<<<<<<<<<<
 * 
 *   cdef BaseEvent event(self, grpc_event c_event)
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag *__pyx_vtab;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":21
 * 
 * 
 * cdef class _ConnectivityTag(_Tag):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly object _user_tag
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  PyObject *_user_tag;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":28
 * 
 * 
 * cdef class _RequestCallTag(_Tag):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly object _user_tag
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  PyObject *_user_tag;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *call;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *call_details;
  grpc_metadata_array c_invocation_metadata;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":39
 * 
 * 
 * cdef class _BatchOperationTag(_Tag):             # <<<<<<<<<<<<<<
 * 
 *   cdef object _user_tag
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  PyObject *_user_tag;
  PyObject *_operations;
  PyObject *_retained_call;
  grpc_op *c_ops;
  size_t c_nops;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":51
 * 
 * 
 * cdef class _ServerShutdownTag(_Tag):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly object _user_tag
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  PyObject *_user_tag;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *_shutting_down_server;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pxd.pxi":29
 * 
 * 
 * cdef class BaseCompletionQueue:             # <<<<<<<<<<<<<<
 *     cdef grpc_completion_queue *_cq
 * 
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_vtab;
  grpc_completion_queue *_cq;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pxd.pxi":35
 * 
 * 
 * cdef class _BoundEventLoop:             # <<<<<<<<<<<<<<
 *     cdef readonly object loop
 *     cdef readonly object read_socket  # socket.socket
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop {
  PyObject_HEAD
  PyObject *loop;
  PyObject *read_socket;
  int _has_reader;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pxd.pxi":41
 * 
 * 
 * cdef class PollerCompletionQueue(BaseCompletionQueue):             # <<<<<<<<<<<<<<
 *     cdef bint _shutdown
 *     cdef cpp_event_queue _queue
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue __pyx_base;
  int _shutdown;
  __pyx_t_4grpc_7_cython_6cygrpc_cpp_event_queue _queue;
  std::mutex _queue_mutex;
  PyObject *_poller_thread;
  int _write_fd;
  PyObject *_read_socket;
  PyObject *_write_socket;
  PyObject *_loops;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pxd.pxi":17
 * 
 * 
 * cdef class AioRpcStatus(Exception):             # <<<<<<<<<<<<<<
 *     cdef readonly:
 *         grpc_status_code _code
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus {
  PyBaseExceptionObject __pyx_base;
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_vtab;
  grpc_status_code _code;
  PyObject *_details;
  PyObject *_trailing_metadata;
  PyObject *_debug_error_string;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pxd.pxi":16
 * # distutils: language=c++
 * 
 * cdef class _AioState:             # <<<<<<<<<<<<<<
 *     cdef object lock  # threading.RLock
 *     cdef int refcount
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState {
  PyObject_HEAD
  PyObject *lock;
  int refcount;
  PyObject *engine;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *cq;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi":16
 * 
 * 
 * cdef class CallbackFailureHandler:             # <<<<<<<<<<<<<<
 *     cdef str _core_function_name
 *     cdef object _error_details
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_vtab;
  PyObject *_core_function_name;
  PyObject *_error_details;
  PyObject *_exception_type;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi":43
 * 
 * 
 * cdef class CallbackWrapper:             # <<<<<<<<<<<<<<
 *     cdef CallbackContext context
 *     cdef object _reference_of_future
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_vtab;
  struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext context;
  PyObject *_reference_of_future;
  PyObject *_reference_of_failure_handler;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi":56
 * 
 * 
 * cdef class GrpcCallWrapper:             # <<<<<<<<<<<<<<
 *     cdef grpc_call* call
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper {
  PyObject_HEAD
  grpc_call *call;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pxd.pxi":16
 * 
 * 
 * cdef class _AioCall(GrpcCallWrapper):             # <<<<<<<<<<<<<<
 *     cdef:
 *         readonly AioChannel _channel
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper __pyx_base;
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *__pyx_vtab;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *_channel;
  PyObject *_references;
  PyObject *_deadline;
  PyObject *_done_callbacks;
  PyObject *_loop;
  int _is_locally_cancelled;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *_status;
  PyObject *_initial_metadata;
  PyObject *_waiters_status;
  PyObject *_waiters_initial_metadata;
  int _send_initial_metadata_flags;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pxd.pxi":21
 *     AIO_CHANNEL_STATUS_DESTROYED
 * 
 * cdef class AioChannel:             # <<<<<<<<<<<<<<
 *     cdef:
 *         grpc_channel * channel
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel {
  PyObject_HEAD
  grpc_channel *channel;
  PyObject *loop;
  PyObject *_target;
  enum __pyx_t_4grpc_7_cython_6cygrpc_AioChannelStatus _status;
  int _is_secure;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":15
 * # limitations under the License.
 * 
 * cdef class _HandlerCallDetails:             # <<<<<<<<<<<<<<
 *     cdef readonly str method
 *     cdef readonly tuple invocation_metadata
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails {
  PyObject_HEAD
  PyObject *method;
  PyObject *invocation_metadata;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":20
 * 
 * 
 * cdef class RPCState(GrpcCallWrapper):             # <<<<<<<<<<<<<<
 *     cdef grpc_call_details details
 *     cdef grpc_metadata_array request_metadata
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper __pyx_base;
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *__pyx_vtab;
  grpc_call_details details;
  grpc_metadata_array request_metadata;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *server;
  int client_closed;
  PyObject *abort_exception;
  int metadata_sent;
  int status_sent;
  grpc_status_code status_code;
  PyObject *py_status_code;
  PyObject *status_details;
  PyObject *trailing_metadata;
  PyObject *compression_algorithm;
  int disable_next_compression;
  PyObject *callbacks;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":46
 * 
 * 
 * cdef class _ServicerContext:             # <<<<<<<<<<<<<<
 *     cdef RPCState _rpc_state
 *     cdef object _loop  # asyncio.AbstractEventLoop
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *_rpc_state;
  PyObject *_loop;
  PyObject *_request_deserializer;
  PyObject *_response_serializer;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":53
 * 
 * 
 * cdef class _SyncServicerContext:             # <<<<<<<<<<<<<<
 *     cdef _ServicerContext _context
 *     cdef list _callbacks
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *_context;
  PyObject *_callbacks;
  PyObject *_loop;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":59
 * 
 * 
 * cdef class _MessageReceiver:             # <<<<<<<<<<<<<<
 *     cdef _ServicerContext _servicer_context
 *     cdef object _agen
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *_servicer_context;
  PyObject *_agen;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":72
 * 
 * 
 * cdef class _ConcurrentRpcLimiter:             # <<<<<<<<<<<<<<
 *     cdef int _maximum_concurrent_rpcs
 *     cdef int _active_rpcs
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter {
  PyObject_HEAD
  int _maximum_concurrent_rpcs;
  int _active_rpcs;
  int limiter_concurrency_exceeded;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":78
 * 
 * 
 * cdef class AioServer:             # <<<<<<<<<<<<<<
 *     cdef Server _server
 *     cdef list _generic_handlers
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioServer *__pyx_vtab;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *_server;
  PyObject *_generic_handlers;
  enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus _status;
  PyObject *_loop;
  PyObject *_serving_task;
  PyObject *_shutdown_lock;
  PyObject *_shutdown_completed;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *_shutdown_callback_wrapper;
  PyObject *_crash_exception;
  PyObject *_interceptors;
  PyObject *_thread_pool;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *_limiter;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":16
 * 
 * 
 * cdef class _GrpcArgWrapper:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_arg arg
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper {
  PyObject_HEAD
  grpc_arg arg;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":373
 *   return LocalChannelCredentials(local_connect_type)
 * 
 * cdef class InsecureChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":429
 * 
 * 
 * cdef class ComputeEngineChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 *   cdef grpc_channel_credentials* _c_creds
 *   cdef grpc_call_credentials* _call_creds
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
  grpc_channel_credentials *_c_creds;
  grpc_call_credentials *_call_creds;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":31
 *   pass
 * 
 * cdef class CensusContext:             # <<<<<<<<<<<<<<
 *   pass
 * 
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext {
  PyObject_HEAD
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":334
 * 
 * 
 * cdef IntegratedCall _integrated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState state, int flags, method, host, object deadline,
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":379
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 *   def next_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       _process_segregated_call_tag(
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":392
 * 
 * 
 * cdef SegregatedCall _segregated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState state, int flags, method, host, object deadline,
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":529
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def next_call_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       if tag is not None:
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":37
 * 
 * 
 * cdef int _get_metadata(void *state,             # <<<<<<<<<<<<<<
 *                        grpc_auth_metadata_context context,
 *                        grpc_credentials_plugin_metadata_cb cb,
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata {
  PyObject_HEAD
  grpc_metadata *__pyx_v_c_metadata;
  grpc_credentials_plugin_metadata_cb __pyx_v_cb;
  size_t __pyx_v_metadata_count;
  void *__pyx_v_user_data;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":68
 * 
 * 
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):             # <<<<<<<<<<<<<<
 *   return tuple(
 *       _metadatum(
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata {
  PyObject_HEAD
  grpc_metadata_array *__pyx_v_c_metadata_array;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":70
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):
 *   return tuple(
 *       _metadatum(             # <<<<<<<<<<<<<<
 *           c_metadata_array.metadata[index].key,
 *           c_metadata_array.metadata[index].value)
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata *__pyx_outer_scope;
  size_t __pyx_genexpr_arg_0;
  size_t __pyx_v_index;
  size_t __pyx_t_0;
  size_t __pyx_t_1;
  size_t __pyx_t_2;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":50
 * if _contextvars_supported():
 *     import contextvars
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         ctx = contextvars.copy_context()
 *         def _run(*args):
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context {
  PyObject_HEAD
  PyObject *__pyx_v_ctx;
  PyObject *__pyx_v_target;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":56
 *         return _run
 * else:
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         def _run(*args):
 *             target(*args)
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context {
  PyObject_HEAD
  PyObject *__pyx_v_target;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":107
 * 
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ {
  PyObject_HEAD
  PyObject *__pyx_v_target;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":123
 * 
 * 
 * def async_generator_to_generator(object agen, object loop):             # <<<<<<<<<<<<<<
 *     """Converts an async generator into generator."""
 *     try:
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator {
  PyObject_HEAD
  PyObject *__pyx_v_agen;
  PyObject *__pyx_v_future;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_response;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":141
 * 
 * 
 * async def generator_to_async_generator(object gen, object loop, object thread_pool):             # <<<<<<<<<<<<<<
 *     """Converts a generator into async generator.
 * 
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator {
  PyObject_HEAD
  PyObject *__pyx_v_future;
  PyObject *__pyx_v_gen;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_queue;
  PyObject *__pyx_v_response;
  PyObject *__pyx_v_thread_pool;
  PyObject *__pyx_v_yield_to_queue;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":77
 * 
 * 
 * async def execute_batch(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                tuple operations,
 *                                object loop):
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_batch_operation_tag;
  grpc_event __pyx_v_c_event;
  grpc_call_error __pyx_v_error;
  PyObject *__pyx_v_future;
  PyObject *__pyx_v_grpc_call_error_string;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_operations;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_wrapper;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":115
 * 
 * 
 * async def _receive_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                            object loop):
 *     """Retrives parsed messages from Core.
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message {
  PyObject_HEAD
  PyObject *__pyx_v_e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_ops;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_receive_op;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":139
 * 
 * 
 * async def _send_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                         bytes message,
 *                         Operation send_initial_metadata_op,
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_message;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_op;
  PyObject *__pyx_v_ops;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op;
  int __pyx_v_write_flag;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":151
 * 
 * 
 * async def _send_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                  tuple metadata,
 *                                  int flags,
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata {
  PyObject_HEAD
  int __pyx_v_flags;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_metadata;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_op;
  PyObject *__pyx_v_ops;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":162
 * 
 * 
 * async def _receive_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                     object loop):
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper;
  PyObject *__pyx_v_loop;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_op;
  PyObject *__pyx_v_ops;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":169
 *     return op.initial_metadata()
 * 
 * async def _send_error_status_from_server(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                          grpc_status_code code,
 *                                          str details,
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server {
  PyObject_HEAD
  grpc_status_code __pyx_v_code;
  PyObject *__pyx_v_details;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper;
  PyObject *__pyx_v_loop;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_op;
  PyObject *__pyx_v_ops;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op;
  PyObject *__pyx_v_trailing_metadata;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":235
 *         return self._status.code() == StatusCode.cancelled
 * 
 *     async def status(self):             # <<<<<<<<<<<<<<
 *         """Returns the status of the RPC call.
 * 
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status {
  PyObject_HEAD
  PyObject *__pyx_v_future;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":258
 *         return self.done() and self._status.code() == StatusCode.ok
 * 
 *     async def initial_metadata(self):             # <<<<<<<<<<<<<<
 *         """Returns the initial metadata of the RPC call.
 * 
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata {
  PyObject_HEAD
  PyObject *__pyx_v_future;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":296
 *         ))
 * 
 *     async def unary_unary(self,             # <<<<<<<<<<<<<<
 *                           bytes request,
 *                           tuple outbound_initial_metadata,
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary {
  PyObject_HEAD
  grpc_status_code __pyx_v_code;
  PyObject *__pyx_v_context;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_initial_metadata_op;
  PyObject *__pyx_v_ops;
  PyObject *__pyx_v_outbound_initial_metadata;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_receive_initial_metadata_op;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_receive_message_op;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_receive_status_on_client_op;
  PyObject *__pyx_v_request;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_send_close_op;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_send_message_op;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":347
 *             return None
 * 
 *     async def _handle_status_once_received(self):             # <<<<<<<<<<<<<<
 *         """Handles the status sent by peer once received."""
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_op;
  PyObject *__pyx_v_ops;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":364
 *         ))
 * 
 *     async def receive_serialized_message(self):             # <<<<<<<<<<<<<<
 *         """Receives one single raw message in bytes."""
 *         cdef bytes received_message
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message {
  PyObject_HEAD
  PyObject *__pyx_v_received_message;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":381
 *             return EOF
 * 
 *     async def send_serialized_message(self, bytes message):             # <<<<<<<<<<<<<<
 *         """Sends one single raw message in bytes."""
 *         await _send_message(self,
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message {
  PyObject_HEAD
  PyObject *__pyx_v_message;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":389
 *                             self._loop)
 * 
 *     async def send_receive_close(self):             # <<<<<<<<<<<<<<
 *         """Half close the RPC on the client-side."""
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_op;
  PyObject *__pyx_v_ops;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":395
 *         await execute_batch(self, ops, self._loop)
 * 
 *     async def initiate_unary_stream(self,             # <<<<<<<<<<<<<<
 *                            bytes request,
 *                            tuple outbound_initial_metadata,
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream {
  PyObject_HEAD
  PyObject *__pyx_v_batch_error;
  PyObject *__pyx_v_context;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_initial_metadata_op;
  PyObject *__pyx_v_outbound_initial_metadata;
  PyObject *__pyx_v_outbound_ops;
  PyObject *__pyx_v_request;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_close_op;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_message_op;
  PyObject *__pyx_v_status_task;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
  PyObject *__pyx_t_3;
  PyObject *__pyx_t_4;
  PyObject *__pyx_t_5;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":437
 *             await status_task
 * 
 *     async def stream_unary(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary {
  PyObject_HEAD
  grpc_status_code __pyx_v_code;
  PyObject *__pyx_v_context;
  PyObject *__pyx_v_inbound_ops;
  PyObject *__pyx_v_metadata_sent_observer;
  PyObject *__pyx_v_outbound_initial_metadata;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_receive_message_op;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_receive_status_on_client_op;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
  PyObject *__pyx_t_3;
  PyObject *__pyx_t_4;
  PyObject *__pyx_t_5;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":496
 *             return None
 * 
 *     async def initiate_stream_stream(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream {
  PyObject_HEAD
  PyObject *__pyx_v_batch_error;
  PyObject *__pyx_v_context;
  PyObject *__pyx_v_metadata_sent_observer;
  PyObject *__pyx_v_outbound_initial_metadata;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
  PyObject *__pyx_v_status_task;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
  PyObject *__pyx_t_3;
  PyObject *__pyx_t_4;
  PyObject *__pyx_t_5;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":71
 *             )
 * 
 *     async def watch_connectivity_state(self,             # <<<<<<<<<<<<<<
 *                                        grpc_connectivity_state last_observed_state,
 *                                        object deadline):
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state {
  PyObject_HEAD
  gpr_timespec __pyx_v_c_deadline;
  PyObject *__pyx_v_deadline;
  PyObject *__pyx_v_future;
  grpc_connectivity_state __pyx_v_last_observed_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_wrapper;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":127
 *         self._loop = loop
 * 
 *     async def read(self):             # <<<<<<<<<<<<<<
 *         cdef bytes raw_message
 *         self._rpc_state.raise_for_termination()
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read {
  PyObject_HEAD
  PyObject *__pyx_v_raw_message;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":140
 *                             raw_message)
 * 
 *     async def write(self, object message):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write {
  PyObject_HEAD
  PyObject *__pyx_v_message;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":150
 *         self._rpc_state.metadata_sent = True
 * 
 *     async def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata {
  PyObject_HEAD
  PyObject *__pyx_v_metadata;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":164
 *             self._rpc_state.metadata_sent = True
 * 
 *     async def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort {
  PyObject_HEAD
  grpc_status_code __pyx_v_actual_code;
  PyObject *__pyx_v_code;
  PyObject *__pyx_v_details;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self;
  PyObject *__pyx_v_trailing_metadata;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":203
 *             raise self._rpc_state.abort_exception
 * 
 *     async def abort_with_status(self, object status):             # <<<<<<<<<<<<<<
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self;
  PyObject *__pyx_v_status;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":354
 * 
 * 
 * async def _run_interceptor(object interceptors, object query_handler,             # <<<<<<<<<<<<<<
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor {
  PyObject_HEAD
  PyObject *__pyx_v_continuation;
  PyObject *__pyx_v_handler_call_details;
  PyObject *__pyx_v_interceptor;
  PyObject *__pyx_v_interceptors;
  PyObject *__pyx_v_query_handler;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":370
 * 
 * 
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,             # <<<<<<<<<<<<<<
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler {
  PyObject_HEAD
  PyObject *__pyx_v_generic_handlers;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_handler_call_details;
  PyObject *__pyx_v_interceptors;
  PyObject *__pyx_v_metadata;
  PyObject *__pyx_v_method;
  PyObject *__pyx_v_query_handlers;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":389
 * 
 * 
 * async def _finish_handler_with_unary_response(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                               object unary_handler,
 *                                               object request,
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response {
  PyObject_HEAD
  PyObject *__pyx_v_callback;
  PyObject *__pyx_v_finish_ops;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_request;
  PyObject *__pyx_v_response_message;
  PyObject *__pyx_v_response_raw;
  PyObject *__pyx_v_response_serializer;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_sync_servicer_context;
  PyObject *__pyx_v_unary_handler;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":460
 * 
 * 
 * async def _finish_handler_with_stream_responses(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                                 object stream_handler,
 *                                                 object request,
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses {
  PyObject_HEAD
  PyObject *__pyx_v_async_response_generator;
  PyObject *__pyx_v_finish_ops;
  PyObject *__pyx_v_gen;
  PyObject *__pyx_v_loop;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_op;
  PyObject *__pyx_v_request;
  PyObject *__pyx_v_response_message;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context;
  PyObject *__pyx_v_stream_handler;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_sync_servicer_context;
  PyObject *__pyx_t_0;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":530
 * 
 * 
 * async def _handle_unary_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                   RPCState rpc_state,
 *                                   object loop):
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc {
  PyObject_HEAD
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_method_handler;
  PyObject *__pyx_v_request_message;
  PyObject *__pyx_v_request_raw;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":564
 * 
 * 
 * async def _handle_unary_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc {
  PyObject_HEAD
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_method_handler;
  PyObject *__pyx_v_request_message;
  PyObject *__pyx_v_request_raw;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":603
 *         self._agen = None
 * 
 *     async def _async_message_receiver(self):             # <<<<<<<<<<<<<<
 *         """An async generator that receives messages."""
 *         cdef object message
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver {
  PyObject_HEAD
  PyObject *__pyx_v_message;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":619
 *         return self._agen
 * 
 *     async def __anext__(self):             # <<<<<<<<<<<<<<
 *         return await self.__aiter__().__anext__()
 * 
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":623
 * 
 * 
 * async def _handle_stream_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc {
  PyObject_HEAD
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_method_handler;
  PyObject *__pyx_v_request_iterator;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":655
 * 
 * 
 * async def _handle_stream_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                     RPCState rpc_state,
 *                                     object loop):
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc {
  PyObject_HEAD
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_method_handler;
  PyObject *__pyx_v_request_iterator;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":686
 * 
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         try:
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions {
  PyObject_HEAD
  PyObject *__pyx_v_e;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_rpc_coro;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  PyObject *__pyx_v_status_code;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
  PyObject *__pyx_t_3;
  PyObject *__pyx_t_4;
  PyObject *__pyx_t_5;
  PyObject *__pyx_t_6;
  PyObject *__pyx_t_7;
  PyObject *__pyx_t_8;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":742
 * 
 * 
 * cdef _add_callback_handler(object rpc_task, RPCState rpc_state):             # <<<<<<<<<<<<<<
 * 
 *     def handle_callbacks(object unused_task):
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":755
 * 
 * 
 * async def _handle_cancellation_from_core(object rpc_task,             # <<<<<<<<<<<<<<
 *                                          RPCState rpc_state,
 *                                          object loop):
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core {
  PyObject_HEAD
  PyObject *__pyx_v_loop;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_op;
  PyObject *__pyx_v_ops;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  PyObject *__pyx_v_rpc_task;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":772
 * 
 * 
 * async def _schedule_rpc_coro(object rpc_coro,             # <<<<<<<<<<<<<<
 *                              RPCState rpc_state,
 *                              object loop):
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro {
  PyObject_HEAD
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_rpc_coro;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  PyObject *__pyx_v_rpc_task;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":795
 * 
 * 
 * async def _handle_rpc(list generic_handlers, tuple interceptors,             # <<<<<<<<<<<<<<
 *                       RPCState rpc_state, object loop, bint concurrency_exceeded):
 *     cdef object method_handler
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc {
  PyObject_HEAD
  int __pyx_v_concurrency_exceeded;
  PyObject *__pyx_v_generic_handlers;
  PyObject *__pyx_v_interceptors;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_method_handler;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":942
 *                                            server_credentials._credentials)
 * 
 *     async def _request_call(self):             # <<<<<<<<<<<<<<
 *         cdef grpc_call_error error
 *         cdef RPCState rpc_state = RPCState(self)
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call {
  PyObject_HEAD
  grpc_call_error __pyx_v_error;
  PyObject *__pyx_v_future;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_wrapper;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":962
 *         return rpc_state
 * 
 *     async def _server_main_loop(self,             # <<<<<<<<<<<<<<
 *                                 object server_started):
 *         self._server.start(backup_queue=False)
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop {
  PyObject_HEAD
  int __pyx_v_concurrency_exceeded;
  PyObject *__pyx_v_rpc_coro;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  PyObject *__pyx_v_rpc_task;
  PyObject *__pyx_v_rpc_tasks;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self;
  PyObject *__pyx_v_server_started;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1022
 *             self._loop.create_task(self.shutdown(None))
 * 
 *     async def start(self):             # <<<<<<<<<<<<<<
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self;
  PyObject *__pyx_v_server_started;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1036
 *         await server_started
 * 
 *     async def _start_shutting_down(self):             # <<<<<<<<<<<<<<
 *         """Prepares the server to shutting down.
 * 
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1053
 *             pass
 * 
 *     async def shutdown(self, grace):             # <<<<<<<<<<<<<<
 *         """Gracefully shutdown the Core server.
 * 
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown {
  PyObject_HEAD
  PyObject *__pyx_v_grace;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
  PyObject *__pyx_t_3;
  PyObject *__pyx_t_4;
  PyObject *__pyx_t_5;
  PyObject *__pyx_t_6;
  PyObject *__pyx_t_7;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1093
 *                 self._status = AIO_SERVER_STATUS_STOPPED
 * 
 *     async def wait_for_termination(self, object timeout):             # <<<<<<<<<<<<<<
 *         if timeout is None:
 *             await self._shutdown_completed
 */
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self;
  PyObject *__pyx_v_timeout;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
};


/* "cfunc.to_py":66
 * 
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(object (*f)(_LatentEventArg) ):             # <<<<<<<<<<<<<<
 *     def wrap(_LatentEventArg latent_event_arg):
 *         """wrap(latent_event_arg: '_LatentEventArg')"""
 */
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg {
  PyObject_HEAD
  PyObject *(*__pyx_v_f)(struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *);
};

struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ {
  PyObject_HEAD
  PyObject *(*__pyx_v_f)(void);
};

struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args {
  PyObject_HEAD
  PyObject *(*__pyx_v_f)(PyObject *, PyObject *);
};

struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ {
  PyObject_HEAD
  void (*__pyx_v_f)(void);
};



/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":32
 * 
 * 
 * cdef class _ChannelArg:             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self, argument, references) except *:
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArg {
  void (*c)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *, PyObject *, PyObject *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArg;


/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":64
 * 
 * 
 * cdef class _ChannelArgs:             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, arguments):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs {
  grpc_channel_args *(*c_args)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArgs;


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":70
 * 
 * 
 * cdef class _CallState:             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState {
  void (*maybe_save_registered_method)(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, PyObject *);
  void (*maybe_set_client_call_tracer_on_call)(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, PyObject *, PyObject *);
  void (*delete_call)(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *__pyx_vtabptr_4grpc_7_cython_6cygrpc__CallState;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":31
 * 
 * 
 * cdef class CallCredentials:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call_credentials *c(self) except *:
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials {
  grpc_call_credentials *(*c)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CallCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":73
 * 
 * 
 * cdef class MetadataPluginCallCredentials(CallCredentials):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, metadata_plugin, name):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":109
 * 
 * 
 * cdef class CompositeCallCredentials(CallCredentials):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, call_credentialses):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompositeCallCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeCallCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":118
 * 
 * 
 * cdef class ChannelCredentials:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials {
  grpc_channel_credentials *(*c)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":139
 * 
 * 
 * cdef class SSLChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, pem_root_certificates, private_key, certificate_chain):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SSLChannelCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_SSLChannelCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":173
 * 
 * 
 * cdef class CompositeChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, call_credentialses, channel_credentials):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompositeChannelCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":192
 * 
 * 
 * cdef class XDSChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, fallback_credentials):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_XDSChannelCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_XDSChannelCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":360
 *   local_tcp = LOCAL_TCP
 * 
 * cdef class LocalChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, grpc_local_connect_type local_connect_type):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_LocalChannelCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_LocalChannelCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":399
 *   return credentials
 * 
 * cdef class ALTSChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, list service_accounts):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ALTSChannelCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":80
 *       return _internal_latent_event(latent_event_arg)
 * 
 * cdef class CompletionQueue:             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, shutdown_cq=False):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompletionQueue {
  PyObject *(*_interpret_event)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, grpc_event);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CompletionQueue;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":16
 * 
 * 
 * cdef class Operation:             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation {
  void (*c)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *);
  void (*un_c)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":25
 * 
 * 
 * cdef class SendInitialMetadataOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, initial_metadata, flags):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":49
 * 
 * 
 * cdef class SendMessageOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, bytes message, int flags):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendMessageOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendMessageOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":75
 * 
 * 
 * cdef class SendCloseFromClientOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, int flags):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":91
 * 
 * 
 * cdef class SendStatusFromServerOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, trailing_metadata, code, object details, int flags):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":122
 * 
 * 
 * cdef class ReceiveInitialMetadataOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, flags):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":145
 * 
 * 
 * cdef class ReceiveMessageOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, flags):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveMessageOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":187
 * 
 * 
 * cdef class ReceiveStatusOnClientOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, flags):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":233
 * 
 * 
 * cdef class ReceiveCloseOnServerOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, flags):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":38
 * 
 * 
 * cdef class Server:             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, object arguments, bint xds):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server {
  PyObject *(*_c_shutdown)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, PyObject *);
  PyObject *(*_c_request_unregistered_call)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *);
  PyObject *(*_c_request_registered_call)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, PyObject *);
  PyObject *(*notify_shutdown_complete)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Server;


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":16
 * 
 * 
 * cdef class _Tag:             # <<<<<<<<<<<<<<
 * 
 *   cdef BaseEvent event(self, grpc_event c_event):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *(*event)(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *, grpc_event);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag *__pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag;


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":22
 * 
 * 
 * cdef class _ConnectivityTag(_Tag):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, user_tag):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ConnectivityTag {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *(*event)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *, grpc_event);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_vtabptr_4grpc_7_cython_6cygrpc__ConnectivityTag;


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":31
 * 
 * 
 * cdef class _RequestCallTag(_Tag):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, user_tag):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__RequestCallTag {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  void (*prepare)(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *);
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *(*event)(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *, grpc_event);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_vtabptr_4grpc_7_cython_6cygrpc__RequestCallTag;


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":51
 * 
 * 
 * cdef class _BatchOperationTag:             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, user_tag, operations, call):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__BatchOperationTag {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  void (*prepare)(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *);
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *(*event)(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *, grpc_event);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_vtabptr_4grpc_7_cython_6cygrpc__BatchOperationTag;


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":80
 * 
 * 
 * cdef class _ServerShutdownTag(_Tag):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, user_tag, shutting_down_server):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ServerShutdownTag {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *(*event)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *, grpc_event);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_vtabptr_4grpc_7_cython_6cygrpc__ServerShutdownTag;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":38
 * 
 * 
 * cdef class BaseCompletionQueue:             # <<<<<<<<<<<<<<
 * 
 *     cdef grpc_completion_queue* c_ptr(self):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_BaseCompletionQueue {
  grpc_completion_queue *(*c_ptr)(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_vtabptr_4grpc_7_cython_6cygrpc_BaseCompletionQueue;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":72
 * 
 * 
 * cdef class PollerCompletionQueue(BaseCompletionQueue):             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_PollerCompletionQueue {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_BaseCompletionQueue __pyx_base;
  void (*_poll)(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *);
  PyObject *(*shutdown)(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_vtabptr_4grpc_7_cython_6cygrpc_PollerCompletionQueue;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":17
 * 
 * 
 * cdef class AioRpcStatus(Exception):             # <<<<<<<<<<<<<<
 * 
 *     # The final status of gRPC is represented by three trailing metadata:
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus {
  grpc_status_code (*code)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch);
  PyObject *(*details)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch);
  PyObject *(*trailing_metadata)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch);
  PyObject *(*debug_error_string)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch);
  grpc_status_code (*c_code)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_vtabptr_4grpc_7_cython_6cygrpc_AioRpcStatus;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":16
 * 
 * 
 * cdef class CallbackFailureHandler:             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self,
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackFailureHandler {
  PyObject *(*handle)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *, PyObject *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackFailureHandler;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":33
 * 
 * 
 * cdef class CallbackWrapper:             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, object future, object loop, CallbackFailureHandler failure_handler):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper {
  void (*functor_run)(grpc_completion_queue_functor *, int);
  grpc_completion_queue_functor *(*c_functor)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackWrapper;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":45
 * 
 * 
 * cdef class _AioCall(GrpcCallWrapper):             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, AioChannel channel, object deadline,
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall {
  void (*_create_grpc_call)(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *, PyObject *, PyObject *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *);
  void (*_set_status)(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *);
  void (*_set_initial_metadata)(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *, PyObject *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *__pyx_vtabptr_4grpc_7_cython_6cygrpc__AioCall;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":45
 * 
 * 
 * cdef class RPCState:             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, AioServer server):
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState {
  PyObject *(*method)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *);
  PyObject *(*invocation_metadata)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *);
  void (*raise_for_termination)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *);
  int (*get_write_flag)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *);
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *(*create_send_initial_metadata_op_if_not_sent)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *__pyx_vtabptr_4grpc_7_cython_6cygrpc_RPCState;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":894
 * 
 * 
 * cdef class AioServer:             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, loop, thread_pool, generic_handlers, interceptors,
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioServer {
  PyObject *(*thread_pool)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioServer *__pyx_vtabptr_4grpc_7_cython_6cygrpc_AioServer;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":373
 *   return LocalChannelCredentials(local_connect_type)
 * 
 * cdef class InsecureChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_InsecureChannelCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":429
 * 
 * 
 * cdef class ComputeEngineChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 *   cdef grpc_channel_credentials* _c_creds
 *   cdef grpc_call_credentials* _call_creds
 */

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;
/* #### Code section: utility_code_proto ### */

/* --- Runtime support code (head) --- */
/* Refnanny.proto */
#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, Py_ssize_t);
    void (*DECREF)(void*, PyObject*, Py_ssize_t);
    void (*GOTREF)(void*, PyObject*, Py_ssize_t);
    void (*GIVEREF)(void*, PyObject*, Py_ssize_t);
    void* (*SetupContext)(const char*, Py_ssize_t, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
#ifdef WITH_THREAD
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          if (acquire_gil) {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
              PyGILState_Release(__pyx_gilstate_save);\
          } else {\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
          }
  #define __Pyx_RefNannyFinishContextNogil() {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __Pyx_RefNannyFinishContext();\
              PyGILState_Release(__pyx_gilstate_save);\
          }
#else
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__))
  #define __Pyx_RefNannyFinishContextNogil() __Pyx_RefNannyFinishContext()
#endif
  #define __Pyx_RefNannyFinishContextNogil() {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __Pyx_RefNannyFinishContext();\
              PyGILState_Release(__pyx_gilstate_save);\
          }
  #define __Pyx_RefNannyFinishContext()\
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_XINCREF(r)  do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContextNogil()
  #define __Pyx_RefNannyFinishContext()
  #define __Pyx_INCREF(r) Py_INCREF(r)
  #define __Pyx_DECREF(r) Py_DECREF(r)
  #define __Pyx_GOTREF(r)
  #define __Pyx_GIVEREF(r)
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
  #define __Pyx_XGOTREF(r)
  #define __Pyx_XGIVEREF(r)
#endif
#define __Pyx_Py_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; Py_XDECREF(tmp);\
    } while (0)
#define __Pyx_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_XDECREF(tmp);\
    } while (0)
#define __Pyx_DECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_DECREF(tmp);\
    } while (0)
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)

/* PyErrExceptionMatches.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
#else
#define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
#endif

/* PyThreadStateGet.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
#define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
#if PY_VERSION_HEX >= 0x030C00A6
#define __Pyx_PyErr_Occurred()  (__pyx_tstate->current_exception != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
#else
#define __Pyx_PyErr_Occurred()  (__pyx_tstate->curexc_type != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->curexc_type)
#endif
#else
#define __Pyx_PyThreadState_declare
#define __Pyx_PyThreadState_assign
#define __Pyx_PyErr_Occurred()  (PyErr_Occurred() != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  PyErr_Occurred()
#endif

/* PyErrFetchRestore.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
#define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6
#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
#else
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#endif
#else
#define __Pyx_PyErr_Clear() PyErr_Clear()
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
#endif

/* PyObjectGetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
#endif

/* PyObjectGetAttrStrNoError.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);

/* GetBuiltinName.proto */
static PyObject *__Pyx_GetBuiltinName(PyObject *name);

/* TupleAndListFromArray.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);
static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n);
#endif

/* IncludeStringH.proto */
#include <string.h>

/* BytesEquals.proto */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);

/* UnicodeEquals.proto */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);

/* fastcall.proto */
#if CYTHON_AVOID_BORROWED_REFS
    #define __Pyx_Arg_VARARGS(args, i) PySequence_GetItem(args, i)
#elif CYTHON_ASSUME_SAFE_MACROS
    #define __Pyx_Arg_VARARGS(args, i) PyTuple_GET_ITEM(args, i)
#else
    #define __Pyx_Arg_VARARGS(args, i) PyTuple_GetItem(args, i)
#endif
#if CYTHON_AVOID_BORROWED_REFS
    #define __Pyx_Arg_NewRef_VARARGS(arg) __Pyx_NewRef(arg)
    #define __Pyx_Arg_XDECREF_VARARGS(arg) Py_XDECREF(arg)
#else
    #define __Pyx_Arg_NewRef_VARARGS(arg) arg
    #define __Pyx_Arg_XDECREF_VARARGS(arg)
#endif
#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds)
#define __Pyx_KwValues_VARARGS(args, nargs) NULL
#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s)
#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw)
#if CYTHON_METH_FASTCALL
    #define __Pyx_Arg_FASTCALL(args, i) args[i]
    #define __Pyx_NumKwargs_FASTCALL(kwds) PyTuple_GET_SIZE(kwds)
    #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs))
    static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
    CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues);
  #else
    #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw)
  #endif
    #define __Pyx_Arg_NewRef_FASTCALL(arg) arg  /* no-op, __Pyx_Arg_FASTCALL is direct and this needs
                                                   to have the same reference counting */
    #define __Pyx_Arg_XDECREF_FASTCALL(arg)
#else
    #define __Pyx_Arg_FASTCALL __Pyx_Arg_VARARGS
    #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS
    #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS
    #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS
    #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS
    #define __Pyx_Arg_NewRef_FASTCALL(arg) __Pyx_Arg_NewRef_VARARGS(arg)
    #define __Pyx_Arg_XDECREF_FASTCALL(arg) __Pyx_Arg_XDECREF_VARARGS(arg)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
#define __Pyx_ArgsSlice_VARARGS(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_VARARGS(args, start), stop - start)
#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_FASTCALL(args, start), stop - start)
#else
#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop)
#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop)
#endif

/* RaiseDoubleKeywords.proto */
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);

/* ParseKeywords.proto */
static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject *const *kwvalues,
    PyObject **argnames[],
    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,
    const char* function_name);

/* RaiseArgTupleInvalid.proto */
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);

/* ArgTypeTest.proto */
#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
    ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\
        __Pyx__ArgTypeTest(obj, type, name, exact))
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);

/* IncludeStructmemberH.proto */
#include <structmember.h>

/* FixUpExtensionType.proto */
#if CYTHON_USE_TYPE_SPECS
static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type);
#endif

/* FetchSharedCythonModule.proto */
static PyObject *__Pyx_FetchSharedCythonABIModule(void);

/* FetchCommonType.proto */
#if !CYTHON_USE_TYPE_SPECS
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);
#else
static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases);
#endif

/* PyMethodNew.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    PyObject *typesModule=NULL, *methodType=NULL, *result=NULL;
    CYTHON_UNUSED_VAR(typ);
    if (!self)
        return __Pyx_NewRef(func);
    typesModule = PyImport_ImportModule("types");
    if (!typesModule) return NULL;
    methodType = PyObject_GetAttrString(typesModule, "MethodType");
    Py_DECREF(typesModule);
    if (!methodType) return NULL;
    result = PyObject_CallFunctionObjArgs(methodType, func, self, NULL);
    Py_DECREF(methodType);
    return result;
}
#elif PY_MAJOR_VERSION >= 3
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    CYTHON_UNUSED_VAR(typ);
    if (!self)
        return __Pyx_NewRef(func);
    return PyMethod_New(func, self);
}
#else
    #define __Pyx_PyMethod_New PyMethod_New
#endif

/* PyVectorcallFastCallDict.proto */
#if CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw);
#endif

/* CythonFunctionShared.proto */
#define __Pyx_CyFunction_USED
#define __Pyx_CYFUNCTION_STATICMETHOD  0x01
#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
#define __Pyx_CYFUNCTION_CCLASS        0x04
#define __Pyx_CYFUNCTION_COROUTINE     0x08
#define __Pyx_CyFunction_GetClosure(f)\
    (((__pyx_CyFunctionObject *) (f))->func_closure)
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_CyFunction_GetClassObj(f)\
      (((__pyx_CyFunctionObject *) (f))->func_classobj)
#else
  #define __Pyx_CyFunction_GetClassObj(f)\
      ((PyObject*) ((PyCMethodObject *) (f))->mm_class)
#endif
#define __Pyx_CyFunction_SetClassObj(f, classobj)\
    __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj))
#define __Pyx_CyFunction_Defaults(type, f)\
    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
typedef struct {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject_HEAD
    PyObject *func;
#elif PY_VERSION_HEX < 0x030900B1
    PyCFunctionObject func;
#else
    PyCMethodObject func;
#endif
#if CYTHON_BACKPORT_VECTORCALL
    __pyx_vectorcallfunc func_vectorcall;
#endif
#if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_weakreflist;
#endif
    PyObject *func_dict;
    PyObject *func_name;
    PyObject *func_qualname;
    PyObject *func_doc;
    PyObject *func_globals;
    PyObject *func_code;
    PyObject *func_closure;
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_classobj;
#endif
    void *defaults;
    int defaults_pyobjects;
    size_t defaults_size;
    int flags;
    PyObject *defaults_tuple;
    PyObject *defaults_kwdict;
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations;
    PyObject *func_is_coroutine;
} __pyx_CyFunctionObject;
#undef __Pyx_CyOrPyCFunction_Check
#define __Pyx_CyFunction_Check(obj)  __Pyx_TypeCheck(obj, __pyx_CyFunctionType)
#define __Pyx_CyOrPyCFunction_Check(obj)  __Pyx_TypeCheck2(obj, __pyx_CyFunctionType, &PyCFunction_Type)
#define __Pyx_CyFunction_CheckExact(obj)  __Pyx_IS_TYPE(obj, __pyx_CyFunctionType)
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc);
#undef __Pyx_IsSameCFunction
#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCyOrCFunction(func, cfunc)
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);
static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj);
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m,
                                                         size_t size,
                                                         int pyobjects);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
                                                            PyObject *tuple);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
                                                             PyObject *dict);
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
                                                              PyObject *dict);
static int __pyx_CyFunction_init(PyObject *module);
#if CYTHON_METH_FASTCALL
static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
#if CYTHON_BACKPORT_VECTORCALL
#define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall)
#else
#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall)
#endif
#endif

/* CythonFunction.proto */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);

/* RaiseUnexpectedTypeError.proto */
static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj);

/* PyFunctionFastCall.proto */
#if CYTHON_FAST_PYCALL
#if !CYTHON_VECTORCALL
#define __Pyx_PyFunction_FastCall(func, args, nargs)\
    __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
#endif
#define __Pyx_BUILD_ASSERT_EXPR(cond)\
    (sizeof(char [1 - 2*!(cond)]) - 1)
#ifndef Py_MEMBER_SIZE
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
#endif
#if !CYTHON_VECTORCALL
#if PY_VERSION_HEX >= 0x03080000
  #include "frameobject.h"
#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
  #define __Pxy_PyFrame_Initialize_Offsets()
  #define __Pyx_PyFrame_GetLocalsplus(frame)  ((frame)->f_localsplus)
#else
  static size_t __pyx_pyframe_localsplus_offset = 0;
  #include "frameobject.h"
  #define __Pxy_PyFrame_Initialize_Offsets()\
    ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
     (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
  #define __Pyx_PyFrame_GetLocalsplus(frame)\
    (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
#endif
#endif
#endif

/* PyObjectCall.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
#else
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
#endif

/* PyObjectCallMethO.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
#endif

/* PyObjectFastCall.proto */
#define __Pyx_PyObject_FastCall(func, args, nargs)  __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs);

/* PyObjectCallOneArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);

/* RaiseException.proto */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);

/* decode_c_string_utf16.proto */
static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16(const char *s, Py_ssize_t size, const char *errors) {
    int byteorder = 0;
    return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
}
static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16LE(const char *s, Py_ssize_t size, const char *errors) {
    int byteorder = -1;
    return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
}
static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16BE(const char *s, Py_ssize_t size, const char *errors) {
    int byteorder = 1;
    return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
}

/* decode_c_bytes.proto */
static CYTHON_INLINE PyObject* __Pyx_decode_c_bytes(
         const char* cstring, Py_ssize_t length, Py_ssize_t start, Py_ssize_t stop,
         const char* encoding, const char* errors,
         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors));

/* decode_bytes.proto */
static CYTHON_INLINE PyObject* __Pyx_decode_bytes(
         PyObject* string, Py_ssize_t start, Py_ssize_t stop,
         const char* encoding, const char* errors,
         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) {
    char* as_c_string;
    Py_ssize_t size;
#if CYTHON_ASSUME_SAFE_MACROS
    as_c_string = PyBytes_AS_STRING(string);
    size = PyBytes_GET_SIZE(string);
#else
    if (PyBytes_AsStringAndSize(string, &as_c_string, &size) < 0) {
        return NULL;
    }
#endif
    return __Pyx_decode_c_bytes(
        as_c_string, size,
        start, stop, encoding, errors, decode_func);
}

/* GetTopmostException.proto */
#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
#endif

/* SaveResetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
#else
#define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
#define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
#endif

/* GetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* PyDictVersioning.proto */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
    (version_var) = __PYX_GET_DICT_VERSION(dict);\
    (cache_var) = (value);
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
        (VAR) = __pyx_dict_cached_value;\
    } else {\
        (VAR) = __pyx_dict_cached_value = (LOOKUP);\
        __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
    }\
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
#else
#define __PYX_GET_DICT_VERSION(dict)  (0)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
#endif

/* GetModuleGlobalName.proto */
#if CYTHON_USE_DICT_VERSIONS
#define __Pyx_GetModuleGlobalName(var, name)  do {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
        (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
        __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
} while(0)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  do {\
    PY_UINT64_T __pyx_dict_version;\
    PyObject *__pyx_dict_cached_value;\
    (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
} while(0)
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
#else
#define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
#endif

/* KeywordStringCheck.proto */
static int __Pyx_CheckKeywordStrings(PyObject *kw, const char* function_name, int kw_allowed);

/* PyObjectCallNoArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);

/* GetItemInt.proto */
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck);

/* ExtTypeTest.proto */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);

/* RaiseTooManyValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

/* RaiseNeedMoreValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

/* IterFinish.proto */
static CYTHON_INLINE int __Pyx_IterFinish(void);

/* UnpackItemEndCheck.proto */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);

/* ListAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
        Py_INCREF(x);
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
        L->ob_item[len] = x;
        #else
        PyList_SET_ITEM(list, len, x);
        #endif
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
#endif

/* PyObjectCall2Args.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);

/* PyObjectGetMethod.proto */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);

/* PyObjectCallMethod1.proto */
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);

/* append.proto */
static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x);

/* GetAttr.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);

/* HasAttr.proto */
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* PyObjectLookupSpecial.proto */
#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_LookupSpecialNoError(obj, attr_name)  __Pyx__PyObject_LookupSpecial(obj, attr_name, 0)
#define __Pyx_PyObject_LookupSpecial(obj, attr_name)  __Pyx__PyObject_LookupSpecial(obj, attr_name, 1)
static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error);
#else
#define __Pyx_PyObject_LookupSpecialNoError(o,n) __Pyx_PyObject_GetAttrStrNoError(o,n)
#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n)
#endif

/* PySequenceContains.proto */
static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
    int result = PySequence_Contains(seq, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* RaiseNoneIterError.proto */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);

/* py_dict_pop.proto */
static CYTHON_INLINE PyObject *__Pyx_PyDict_Pop(PyObject *d, PyObject *key, PyObject *default_value);

/* UnpackUnboundCMethod.proto */
typedef struct {
    PyObject *type;
    PyObject **method_name;
    PyCFunction func;
    PyObject *method;
    int flag;
} __Pyx_CachedCFunction;

/* CallUnboundCMethod2.proto */
static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030600B1
static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2);
#else
#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2)  __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2)
#endif

/* CallUnboundCMethod1.proto */
static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
#else
#define __Pyx_CallUnboundCMethod1(cfunc, self, arg)  __Pyx__CallUnboundCMethod1(cfunc, self, arg)
#endif

/* pyfrozenset_new.proto */
static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it);

/* py_set_remove.proto */
static CYTHON_INLINE int __Pyx_PySet_Remove(PyObject *set, PyObject *key);

/* RaiseClosureNameError.proto */
static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname);

/* set_iter.proto */
static CYTHON_INLINE PyObject* __Pyx_set_iterator(PyObject* iterable, int is_set,
                                                  Py_ssize_t* p_orig_length, int* p_source_is_set);
static CYTHON_INLINE int __Pyx_set_iter_next(
        PyObject* iter_obj, Py_ssize_t orig_length,
        Py_ssize_t* ppos, PyObject **value,
        int source_is_set);

/* py_dict_values.proto */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d);

/* CallUnboundCMethod0.proto */
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CallUnboundCMethod0(cfunc, self)\
    (likely((cfunc)->func) ?\
        (likely((cfunc)->flag == METH_NOARGS) ?  (*((cfunc)->func))(self, NULL) :\
         (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\
            (PY_VERSION_HEX >= 0x030700A0 ?\
                (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\
                (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\
          (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\
            (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\
            (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ?  ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\
               ((cfunc)->flag == METH_VARARGS ?  (*((cfunc)->func))(self, __pyx_empty_tuple) :\
               __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\
        __Pyx__CallUnboundCMethod0(cfunc, self))
#else
#define __Pyx_CallUnboundCMethod0(cfunc, self)  __Pyx__CallUnboundCMethod0(cfunc, self)
#endif

/* PyFloatBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyFloat_AddObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyFloat_AddObjC(op1, op2, floatval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* py_dict_keys.proto */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Keys(PyObject* d);

/* DictGetItem.proto */
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
#define __Pyx_PyObject_Dict_GetItem(obj, name)\
    (likely(PyDict_CheckExact(obj)) ?\
     __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
#else
#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
#define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
#endif

/* IterNext.proto */
#define __Pyx_PyIter_Next(obj) __Pyx_PyIter_Next2(obj, NULL)
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject *, PyObject *);

/* GetAttr3.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);

/* CallableCheck.proto */
#if CYTHON_USE_TYPE_SLOTS && PY_MAJOR_VERSION >= 3
#define __Pyx_PyCallable_Check(obj)   (Py_TYPE(obj)->tp_call != NULL)
#else
#define __Pyx_PyCallable_Check(obj)   PyCallable_Check(obj)
#endif

/* WriteUnraisableException.proto */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil);

/* PyIntCompare.proto */
static CYTHON_INLINE int __Pyx_PyInt_BoolEqObjC(PyObject *op1, PyObject *op2, long intval, long inplace);

/* pep479.proto */
static void __Pyx_Generator_Replace_StopIteration(int in_async_gen);

/* SliceObject.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
        PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
        int has_cstart, int has_cstop, int wraparound);

/* PyDictContains.proto */
static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) {
    int result = PyDict_Contains(dict, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* decode_c_string.proto */
static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
         const char* cstring, Py_ssize_t start, Py_ssize_t stop,
         const char* encoding, const char* errors,
         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors));

/* Import.proto */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);

/* ImportDottedModule.proto */
static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple);
#if PY_MAJOR_VERSION >= 3
static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple);
#endif

/* PyObjectSetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
#else
#define __Pyx_PyObject_DelAttrStr(o,n)   PyObject_DelAttr(o,n)
#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
#endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_TrueDivideObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_TrueDivideObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceTrueDivide(op1, op2) : PyNumber_TrueDivide(op1, op2))
#endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_MultiplyObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_MultiplyObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceMultiply(op1, op2) : PyNumber_Multiply(op1, op2))
#endif

/* SwapException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSwap(type, value, tb)  __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_SubtractObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2))
#endif

/* FastTypeChecks.proto */
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2)
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
#else
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
#define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2))
#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
#endif
#define __Pyx_PyErr_ExceptionMatches2(err1, err2)  __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2)
#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)

/* PyObject_Str.proto */
#define __Pyx_PyObject_Str(obj)\
    (likely(PyString_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj))

/* StopAsyncIteration.proto */
#define __Pyx_StopAsyncIteration_USED
static PyObject *__Pyx_PyExc_StopAsyncIteration;
static int __pyx_StopAsyncIteration_init(PyObject *module);

/* CoroutineBase.proto */
struct __pyx_CoroutineObject;
typedef PyObject *(*__pyx_coroutine_body_t)(struct __pyx_CoroutineObject *, PyThreadState *, PyObject *);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_ExcInfoStruct  _PyErr_StackItem
#else
typedef struct {
    PyObject *exc_type;
    PyObject *exc_value;
    PyObject *exc_traceback;
} __Pyx_ExcInfoStruct;
#endif
typedef struct __pyx_CoroutineObject {
    PyObject_HEAD
    __pyx_coroutine_body_t body;
    PyObject *closure;
    __Pyx_ExcInfoStruct gi_exc_state;
    PyObject *gi_weakreflist;
    PyObject *classobj;
    PyObject *yieldfrom;
    PyObject *gi_name;
    PyObject *gi_qualname;
    PyObject *gi_modulename;
    PyObject *gi_code;
    PyObject *gi_frame;
    int resume_label;
    char is_running;
} __pyx_CoroutineObject;
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
    PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
    PyObject *name, PyObject *qualname, PyObject *module_name);
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name);
static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *self);
static int __Pyx_Coroutine_clear(PyObject *self);
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value);
static PyObject *__Pyx_Coroutine_Close(PyObject *self);
static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_Coroutine_SwapException(self)
#define __Pyx_Coroutine_ResetAndClearException(self)  __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state)
#else
#define __Pyx_Coroutine_SwapException(self) {\
    __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\
    __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\
    }
#define __Pyx_Coroutine_ResetAndClearException(self) {\
    __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\
    (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\
    }
#endif
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue)
#else
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue)
#endif
static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue);
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state);

/* PyObject_GenericGetAttrNoDict.proto */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr
#endif

/* PatchModuleWithCoroutine.proto */
static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code);

/* PatchGeneratorABC.proto */
static int __Pyx_patch_abc(void);

/* Coroutine.proto */
#define __Pyx_Coroutine_USED
#define __Pyx_Coroutine_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_CoroutineType)
#define __Pyx_Coroutine_Check(obj) __Pyx_Coroutine_CheckExact(obj)
#define __Pyx_CoroutineAwait_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_CoroutineAwaitType)
#define __Pyx_Coroutine_New(body, code, closure, name, qualname, module_name)\
    __Pyx__Coroutine_New(__pyx_CoroutineType, body, code, closure, name, qualname, module_name)
static int __pyx_Coroutine_init(PyObject *module);
static PyObject *__Pyx__Coroutine_await(PyObject *coroutine);
typedef struct {
    PyObject_HEAD
    PyObject *coroutine;
} __pyx_CoroutineAwaitObject;
static PyObject *__Pyx_CoroutineAwait_Close(__pyx_CoroutineAwaitObject *self, PyObject *arg);
static PyObject *__Pyx_CoroutineAwait_Throw(__pyx_CoroutineAwaitObject *self, PyObject *args);

/* GetAwaitIter.proto */
static CYTHON_INLINE PyObject *__Pyx_Coroutine_GetAwaitableIter(PyObject *o);
static PyObject *__Pyx__Coroutine_GetAwaitableIter(PyObject *o);

/* CoroutineYieldFrom.proto */
static CYTHON_INLINE PyObject* __Pyx_Coroutine_Yield_From(__pyx_CoroutineObject *gen, PyObject *source);

/* PyObjectFormatSimple.proto */
#if CYTHON_COMPILING_IN_PYPY
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        PyObject_Format(s, f))
#elif PY_MAJOR_VERSION < 3
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        likely(PyString_CheckExact(s)) ? PyUnicode_FromEncodedObject(s, NULL, "strict") :\
        PyObject_Format(s, f))
#elif CYTHON_USE_TYPE_SLOTS
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        likely(PyLong_CheckExact(s)) ? PyLong_Type.tp_repr(s) :\
        likely(PyFloat_CheckExact(s)) ? PyFloat_Type.tp_repr(s) :\
        PyObject_Format(s, f))
#else
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        PyObject_Format(s, f))
#endif

/* JoinPyUnicode.proto */
static PyObject* __Pyx_PyUnicode_Join(PyObject* value_tuple, Py_ssize_t value_count, Py_ssize_t result_ulength,
                                      Py_UCS4 max_char);

/* ErrOccurredWithGIL.proto */
static CYTHON_INLINE int __Pyx_ErrOccurredWithGIL(void);

/* PyObjectCallMethod0.proto */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);

/* UnpackTupleError.proto */
static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index);

/* UnpackTuple2.proto */
#define __Pyx_unpack_tuple2(tuple, value1, value2, is_tuple, has_known_size, decref_tuple)\
    (likely(is_tuple || PyTuple_Check(tuple)) ?\
        (likely(has_known_size || PyTuple_GET_SIZE(tuple) == 2) ?\
            __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple) :\
            (__Pyx_UnpackTupleError(tuple, 2), -1)) :\
        __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple))
static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
    PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple);
static int __Pyx_unpack_tuple2_generic(
    PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple);

/* dict_iter.proto */
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_is_dict);
static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,
                                              PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);

/* dict_getitem_default.proto */
static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value);

/* ReturnWithStopIteration.proto */
#define __Pyx_ReturnWithStopIteration(value)\
    if (value == Py_None) PyErr_SetNone(PyExc_StopIteration); else __Pyx__ReturnWithStopIteration(value)
static void __Pyx__ReturnWithStopIteration(PyObject* value);

/* AssertionsEnabled.proto */
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
  #define __Pyx_init_assertions_enabled()  (0)
  #define __pyx_assertions_enabled()  (1)
#elif CYTHON_COMPILING_IN_LIMITED_API  ||  (CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030C0000)
  static int __pyx_assertions_enabled_flag;
  #define __pyx_assertions_enabled() (__pyx_assertions_enabled_flag)
  static int __Pyx_init_assertions_enabled(void) {
    PyObject *builtins, *debug, *debug_str;
    int flag;
    builtins = PyEval_GetBuiltins();
    if (!builtins) goto bad;
    debug_str = PyUnicode_FromStringAndSize("__debug__", 9);
    if (!debug_str) goto bad;
    debug = PyObject_GetItem(builtins, debug_str);
    Py_DECREF(debug_str);
    if (!debug) goto bad;
    flag = PyObject_IsTrue(debug);
    Py_DECREF(debug);
    if (flag == -1) goto bad;
    __pyx_assertions_enabled_flag = flag;
    return 0;
  bad:
    __pyx_assertions_enabled_flag = 1;
    return -1;
  }
#else
  #define __Pyx_init_assertions_enabled()  (0)
  #define __pyx_assertions_enabled()  (!Py_OptimizeFlag)
#endif

/* ImportFrom.proto */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);

/* ObjectGetItem.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key);
#else
#define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
#endif

/* StrEquals.proto */
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
#else
#define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
#endif

/* AsyncIter.proto */
static CYTHON_INLINE PyObject *__Pyx_Coroutine_GetAsyncIter(PyObject *o);
static CYTHON_INLINE PyObject *__Pyx_Coroutine_AsyncIterNext(PyObject *o);

/* ListExtend.proto */
static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    PyObject* none = _PyList_Extend((PyListObject*)L, v);
    if (unlikely(!none))
        return -1;
    Py_DECREF(none);
    return 0;
#else
    return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v);
#endif
}

/* CallNextTpTraverse.proto */
static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse);

/* CallNextTpClear.proto */
static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_clear);

/* ValidateBasesTuple.proto */
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases);
#endif

/* PyType_Ready.proto */
CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t);

/* PyObject_GenericGetAttr.proto */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
#endif

/* SetVTable.proto */
static int __Pyx_SetVtable(PyTypeObject* typeptr , void* vtable);

/* GetVTable.proto */
static void* __Pyx_GetVtable(PyTypeObject *type);

/* MergeVTables.proto */
#if !CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_MergeVtables(PyTypeObject *type);
#endif

/* SetupReduce.proto */
#if !CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_setup_reduce(PyObject* type_obj);
#endif

/* FormatTypeName.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
typedef PyObject *__Pyx_TypeName;
#define __Pyx_FMT_TYPENAME "%U"
static __Pyx_TypeName __Pyx_PyType_GetName(PyTypeObject* tp);
#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj)
#else
typedef const char *__Pyx_TypeName;
#define __Pyx_FMT_TYPENAME "%.200s"
#define __Pyx_PyType_GetName(tp) ((tp)->tp_name)
#define __Pyx_DECREF_TypeName(obj)
#endif

/* ValidateExternBase.proto */
static int __Pyx_validate_extern_base(PyTypeObject *base);

/* TypeImport.proto */
#ifndef __PYX_HAVE_RT_ImportType_proto_3_0_11
#define __PYX_HAVE_RT_ImportType_proto_3_0_11
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
#include <stdalign.h>
#endif
#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
#define __PYX_GET_STRUCT_ALIGNMENT_3_0_11(s) alignof(s)
#else
#define __PYX_GET_STRUCT_ALIGNMENT_3_0_11(s) sizeof(void*)
#endif
enum __Pyx_ImportType_CheckSize_3_0_11 {
   __Pyx_ImportType_CheckSize_Error_3_0_11 = 0,
   __Pyx_ImportType_CheckSize_Warn_3_0_11 = 1,
   __Pyx_ImportType_CheckSize_Ignore_3_0_11 = 2
};
static PyTypeObject *__Pyx_ImportType_3_0_11(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_11 check_size);
#endif

/* PatchInspect.proto */
static PyObject* __Pyx_patch_inspect(PyObject* module);

/* PatchAsyncIO.proto */
static PyObject* __Pyx_patch_asyncio(PyObject* module);

/* UnicodeConcatInPlace.proto */
# if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
    #if CYTHON_REFNANNY
        #define __Pyx_PyUnicode_ConcatInPlace(left, right) __Pyx_PyUnicode_ConcatInPlaceImpl(&left, right, __pyx_refnanny)
    #else
        #define __Pyx_PyUnicode_ConcatInPlace(left, right) __Pyx_PyUnicode_ConcatInPlaceImpl(&left, right)
    #endif
    static CYTHON_INLINE PyObject *__Pyx_PyUnicode_ConcatInPlaceImpl(PyObject **p_left, PyObject *right
        #if CYTHON_REFNANNY
        , void* __pyx_refnanny
        #endif
    );
#else
#define __Pyx_PyUnicode_ConcatInPlace __Pyx_PyUnicode_Concat
#endif
#define __Pyx_PyUnicode_ConcatInPlaceSafe(left, right) ((unlikely((left) == Py_None) || unlikely((right) == Py_None)) ?\
    PyNumber_InPlaceAdd(left, right) : __Pyx_PyUnicode_ConcatInPlace(left, right))

/* StrConcatInPlace.proto */
#if PY_MAJOR_VERSION >= 3
    #define __Pyx_PyStr_Concat __Pyx_PyUnicode_Concat
    #define __Pyx_PyStr_ConcatInPlace __Pyx_PyUnicode_ConcatInPlace
#else
    #define __Pyx_PyStr_Concat PyNumber_Add
    #define __Pyx_PyStr_ConcatInPlace PyNumber_InPlaceAdd
#endif
#define __Pyx_PyStr_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
    PyNumber_Add(a, b) : __Pyx_PyStr_Concat(a, b))
#define __Pyx_PyStr_ConcatInPlaceSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
    PyNumber_InPlaceAdd(a, b) : __Pyx_PyStr_ConcatInPlace(a, b))

/* SetNameInClass.proto */
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && PY_VERSION_HEX < 0x030d0000
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
#elif CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value))
#else
#define __Pyx_SetNameInClass(ns, name, value)  PyObject_SetItem(ns, name, value)
#endif

/* CalculateMetaclass.proto */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);

/* Py3ClassCreate.proto */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
                                           PyObject *mkw, PyObject *modname, PyObject *doc);
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
                                      PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);

/* Py3UpdateBases.proto */
static PyObject* __Pyx_PEP560_update_bases(PyObject *bases);

/* CLineInTraceback.proto */
#ifdef CYTHON_CLINE_IN_TRACEBACK
#define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
#else
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
#endif

/* CodeObjectCache.proto */
#if !CYTHON_COMPILING_IN_LIMITED_API
typedef struct {
    PyCodeObject* code_object;
    int code_line;
} __Pyx_CodeObjectCacheEntry;
struct __Pyx_CodeObjectCache {
    int count;
    int max_count;
    __Pyx_CodeObjectCacheEntry* entries;
};
static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
static PyCodeObject *__pyx_find_code_object(int code_line);
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
#endif

/* AddTraceback.proto */
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename);

/* None.proto */
#include <new>

/* GCCDiagnostics.proto */
#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
#define __Pyx_HAS_GCC_DIAGNOSTIC
#endif

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus value);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus __Pyx_PyInt_As_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE grpc_status_code __Pyx_PyInt_As_grpc_status_code(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_status_code(grpc_status_code value);

/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE grpc_connectivity_state __Pyx_PyInt_As_grpc_connectivity_state(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_local_connect_type(grpc_local_connect_type value);

/* CIntFromPy.proto */
static CYTHON_INLINE grpc_local_connect_type __Pyx_PyInt_As_grpc_local_connect_type(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE grpc_completion_type __Pyx_PyInt_As_grpc_completion_type(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_connectivity_state(grpc_connectivity_state value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_call_error(grpc_call_error value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_completion_type(grpc_completion_type value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_op_type(grpc_op_type value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_compression_algorithm(grpc_compression_algorithm value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_compression_level(grpc_compression_level value);

/* CIntFromPy.proto */
static CYTHON_INLINE grpc_compression_algorithm __Pyx_PyInt_As_grpc_compression_algorithm(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);

/* CIntFromPy.proto */
static CYTHON_INLINE grpc_call_error __Pyx_PyInt_As_grpc_call_error(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value);

/* CIntFromPy.proto */
static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *);

/* Generator.proto */
#define __Pyx_Generator_USED
#define __Pyx_Generator_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_GeneratorType)
#define __Pyx_Generator_New(body, code, closure, name, qualname, module_name)\
    __Pyx__Coroutine_New(__pyx_GeneratorType, body, code, closure, name, qualname, module_name)
static PyObject *__Pyx_Generator_Next(PyObject *self);
static int __pyx_Generator_init(PyObject *module);

/* AsyncGenerator.proto */
#define __Pyx_AsyncGen_USED
typedef struct {
    __pyx_CoroutineObject coro;
    PyObject *ag_finalizer;
    int ag_hooks_inited;
    int ag_closed;
    int ag_running_async;
} __pyx_PyAsyncGenObject;
static PyTypeObject *__pyx__PyAsyncGenWrappedValueType = 0;
static PyTypeObject *__pyx__PyAsyncGenASendType = 0;
static PyTypeObject *__pyx__PyAsyncGenAThrowType = 0;
static PyTypeObject *__pyx_AsyncGenType = 0;
#define __Pyx_AsyncGen_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_AsyncGenType)
#define __pyx_PyAsyncGenASend_CheckExact(o)\
                    __Pyx_IS_TYPE(o, __pyx__PyAsyncGenASendType)
#define __pyx_PyAsyncGenAThrow_CheckExact(o)\
                    __Pyx_IS_TYPE(o, __pyx__PyAsyncGenAThrowType)
static PyObject *__Pyx_async_gen_anext(PyObject *o);
static CYTHON_INLINE PyObject *__Pyx_async_gen_asend_iternext(PyObject *o);
static PyObject *__Pyx_async_gen_asend_send(PyObject *o, PyObject *arg);
static PyObject *__Pyx_async_gen_asend_close(PyObject *o, PyObject *args);
static PyObject *__Pyx_async_gen_athrow_close(PyObject *o, PyObject *args);
static PyObject *__Pyx__PyAsyncGenValueWrapperNew(PyObject *val);
static __pyx_CoroutineObject *__Pyx_AsyncGen_New(
            __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    __pyx_PyAsyncGenObject *gen = PyObject_GC_New(__pyx_PyAsyncGenObject, __pyx_AsyncGenType);
    if (unlikely(!gen))
        return NULL;
    gen->ag_finalizer = NULL;
    gen->ag_closed = 0;
    gen->ag_hooks_inited = 0;
    gen->ag_running_async = 0;
    return __Pyx__Coroutine_NewInit((__pyx_CoroutineObject*)gen, body, code, closure, name, qualname, module_name);
}
static int __pyx_AsyncGen_init(PyObject *module);
static void __Pyx_PyAsyncGen_Fini(void);

/* CheckBinaryVersion.proto */
static unsigned long __Pyx_get_runtime_version(void);
static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);

/* VoidPtrExport.proto */
static int __Pyx_ExportVoidPtr(PyObject *name, void *p, const char *sig);

/* FunctionExport.proto */
static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig);

/* InitStrings.proto */
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);

/* #### Code section: module_declarations ### */
static CYTHON_INLINE double __pyx_f_7cpython_7complex_7complex_4real_real(PyComplexObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE double __pyx_f_7cpython_7complex_7complex_4imag_imag(PyComplexObject *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_11_ChannelArg_c(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_v_self, PyObject *__pyx_v_argument, PyObject *__pyx_v_references); /* proto*/
static grpc_channel_args *__pyx_f_4grpc_7_cython_6cygrpc_12_ChannelArgs_c_args(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_10_CallState_delete_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_10_CallState_maybe_save_registered_method(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self, PyObject *__pyx_v_method_name); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_10_CallState_maybe_set_client_call_tracer_on_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self, PyObject *__pyx_v_method_name, PyObject *__pyx_v_target); /* proto*/
static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc_15CallCredentials_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_self); /* proto*/
static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self); /* proto*/
static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_18ChannelCredentials_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_15CompletionQueue__interpret_event(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_9Operation_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_9Operation_un_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_20SendMessageOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_20SendMessageOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_un_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_request_registered_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_request_call_tag, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue, PyObject *__pyx_v_method); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_request_unregistered_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_request_call_tag, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue, PyObject *__pyx_v_tag); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server_notify_shutdown_complete(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self); /* proto*/
static struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *__pyx_f_4grpc_7_cython_6cygrpc_4_Tag_event(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v_self, CYTHON_UNUSED grpc_event __pyx_v_c_event); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_f_4grpc_7_cython_6cygrpc_16_ConnectivityTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_f_4grpc_7_cython_6cygrpc_16_ConnectivityTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_prepare(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_prepare(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
static grpc_status_code __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_code(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_details(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_debug_error_string(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static grpc_status_code __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_c_code(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto*/
static grpc_completion_queue *__pyx_f_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_c_ptr(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_21PollerCompletionQueue__poll(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_handle(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self, PyObject *__pyx_v_future); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_functor_run(grpc_completion_queue_functor *__pyx_v_functor, int __pyx_v_success); /* proto*/
static grpc_completion_queue_functor *__pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_c_functor(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__create_grpc_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_deadline, PyObject *__pyx_v_method, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__set_status(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_status); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__set_initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_initial_metadata); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_method(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_invocation_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_8RPCState_raise_for_termination(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self); /* proto*/
static int __pyx_f_4grpc_7_cython_6cygrpc_8RPCState_get_write_flag(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self); /* proto*/
static struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_create_send_initial_metadata_op_if_not_sent(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_9AioServer_thread_pool(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self); /* proto*/

/* Module declarations from "cpython.version" */

/* Module declarations from "__builtin__" */

/* Module declarations from "cpython.type" */

/* Module declarations from "libc.string" */

/* Module declarations from "libc.stdio" */

/* Module declarations from "cpython.object" */

/* Module declarations from "cpython.ref" */

/* Module declarations from "cpython.exc" */

/* Module declarations from "cpython.module" */

/* Module declarations from "cpython.mem" */

/* Module declarations from "cpython.tuple" */

/* Module declarations from "cpython.list" */

/* Module declarations from "cpython.sequence" */

/* Module declarations from "cpython.mapping" */

/* Module declarations from "cpython.iterator" */

/* Module declarations from "cpython.number" */

/* Module declarations from "cpython.int" */

/* Module declarations from "__builtin__" */

/* Module declarations from "cpython.bool" */

/* Module declarations from "cpython.long" */

/* Module declarations from "cpython.float" */

/* Module declarations from "__builtin__" */

/* Module declarations from "cpython.complex" */

/* Module declarations from "cpython.string" */

/* Module declarations from "libc.stddef" */

/* Module declarations from "cpython.unicode" */

/* Module declarations from "cpython.pyport" */

/* Module declarations from "cpython.dict" */

/* Module declarations from "cpython.instance" */

/* Module declarations from "cpython.function" */

/* Module declarations from "cpython.method" */

/* Module declarations from "cpython.weakref" */

/* Module declarations from "cpython.getargs" */

/* Module declarations from "cpython.pythread" */

/* Module declarations from "cpython.pystate" */

/* Module declarations from "cpython.cobject" */

/* Module declarations from "cpython.oldbuffer" */

/* Module declarations from "cpython.set" */

/* Module declarations from "cpython.buffer" */

/* Module declarations from "cpython.bytes" */

/* Module declarations from "cpython.pycapsule" */

/* Module declarations from "cpython.contextvars" */

/* Module declarations from "cpython" */

/* Module declarations from "libcpp.string" */

/* Module declarations from "libc.time" */

/* Module declarations from "libc" */

/* Module declarations from "libcpp.cast" */

/* Module declarations from "posix" */

/* Module declarations from "posix.types" */

/* Module declarations from "posix.unistd" */

/* Module declarations from "grpc._cython.cygrpc" */
static int __pyx_v_4grpc_7_cython_6cygrpc_g_interrupt_check_period_ms;
static grpc_arg_pointer_vtable __pyx_v_4grpc_7_cython_6cygrpc_default_vtable;
static char const *__pyx_v_4grpc_7_cython_6cygrpc_CLIENT_CALL_TRACER;
static char const *__pyx_v_4grpc_7_cython_6cygrpc_SERVER_CALL_TRACER_FACTORY;
static std::queue<void *>  __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_to_run;
static std::condition_variable __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_cv;
static std::mutex __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_mu;
static int __pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_greenlets_to_run_queue;
static int __pyx_v_4grpc_7_cython_6cygrpc_g_channel_count;
static gpr_timespec __pyx_v_4grpc_7_cython_6cygrpc__GPR_INF_FUTURE;
static float __pyx_v_4grpc_7_cython_6cygrpc__POLL_AWAKE_INTERVAL_S;
static int __pyx_v_4grpc_7_cython_6cygrpc__has_fd_monitoring;
static struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_4grpc_7_cython_6cygrpc_CQ_SHUTDOWN_FAILURE_HANDLER = 0;
static PyObject *__pyx_v_4grpc_7_cython_6cygrpc__GRPC_ASYNCIO_ENGINE = 0;
static struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state = 0;
static struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_4grpc_7_cython_6cygrpc__WATCH_CONNECTIVITY_FAILURE_HANDLER = 0;
static int __pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG;
static PyObject *__pyx_v_4grpc_7_cython_6cygrpc__RPC_FINISHED_DETAILS = 0;
static PyObject *__pyx_v_4grpc_7_cython_6cygrpc__SERVER_STOPPED_DETAILS = 0;
static struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_4grpc_7_cython_6cygrpc_REQUEST_CALL_FAILURE_HANDLER = 0;
static struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_4grpc_7_cython_6cygrpc_SERVER_SHUTDOWN_FAILURE_HANDLER = 0;
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__check_call_error_no_metadata(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__check_and_raise_call_error_no_metadata(PyObject *); /*proto*/
static int __pyx_f_4grpc_7_cython_6cygrpc__get_metadata(void *, grpc_auth_metadata_context, grpc_credentials_plugin_metadata_cb, void *, grpc_metadata *, size_t *, grpc_status_code *, char const **); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__destroy(void *); /*proto*/
static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc__composition(PyObject *); /*proto*/
static grpc_event __pyx_f_4grpc_7_cython_6cygrpc__next(grpc_completion_queue *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__interpret_event(grpc_event); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__store_c_metadata(PyObject *, grpc_metadata **, size_t *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__release_c_metadata(grpc_metadata *, int); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__metadatum(grpc_slice, grpc_slice); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__metadata(grpc_metadata_array *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(grpc_slice); /*proto*/
static grpc_slice __pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes(PyObject *); /*proto*/
static grpc_ssl_roots_override_result __pyx_f_4grpc_7_cython_6cygrpc_ssl_roots_override_callback(char **); /*proto*/
static gpr_timespec __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(PyObject *); /*proto*/
static double __pyx_f_4grpc_7_cython_6cygrpc__time_from_timespec(gpr_timespec); /*proto*/
static void *__pyx_f_4grpc_7_cython_6cygrpc__copy_pointer(void *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__destroy_pointer(void *); /*proto*/
static int __pyx_f_4grpc_7_cython_6cygrpc__compare_pointer(void *, void *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__custom_op_on_c_call(int, grpc_call *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_gevent_increment_channel_count(int __pyx_skip_dispatch); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_gevent_decrement_channel_count(int __pyx_skip_dispatch); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc___prefork(void); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc___postfork_parent(void); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc___postfork_child(void); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__unified_socket_write(int); /*proto*/
static grpc_completion_queue *__pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(void); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio(int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio(int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__encode(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__decode(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__call_error_metadata(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__call_error_no_metadata(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__call_error(PyObject *, PyObject *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error_no_metadata(PyObject *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error(PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__destroy_c_completion_queue(grpc_completion_queue *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__operate(grpc_call *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__operate_from_integrated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__operate_from_segregated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, grpc_status_code, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__next_call_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, grpc_completion_queue *, PyObject *, PyObject *, PyObject *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, grpc_completion_queue *, PyObject *, int, PyObject *, PyObject *, PyObject *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *, PyObject *, PyObject *, PyObject *, PyObject *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__process_integrated_call_tag(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *); /*proto*/
static struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_f_4grpc_7_cython_6cygrpc__integrated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, int, PyObject *, PyObject *, PyObject *, PyObject *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *, PyObject *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__process_segregated_call_tag(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, grpc_completion_queue *, struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *); /*proto*/
static struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_f_4grpc_7_cython_6cygrpc__segregated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, int, PyObject *, PyObject *, PyObject *, PyObject *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *, PyObject *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__watch_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, grpc_connectivity_state, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__close(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *, grpc_status_code, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__calls_drained(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *); /*proto*/
static char const *__pyx_f_4grpc_7_cython_6cygrpc__get_c_pem_root_certs(PyObject *); /*proto*/
static grpc_ssl_pem_key_cert_pair *__pyx_f_4grpc_7_cython_6cygrpc__create_c_ssl_pem_key_cert_pairs(PyObject *); /*proto*/
static grpc_ssl_certificate_config_reload_status __pyx_f_4grpc_7_cython_6cygrpc__server_cert_config_fetcher_wrapper(void *, grpc_ssl_server_certificate_config **); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__internal_latent_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__latent_event(grpc_completion_queue *, PyObject *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__set_call_tracer(grpc_call *, void *); /*proto*/
static void *__pyx_f_4grpc_7_cython_6cygrpc__get_call_tracer(grpc_call *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__register_server_call_tracer_factory(void *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__submit_to_greenlet_queue(PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_await_next_greenlet(void); /*proto*/
static grpc_status_code __pyx_f_4grpc_7_cython_6cygrpc_get_status_code(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_deserialize(PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_serialize(PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_prepend_send_initial_metadata_op(PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__default_asyncio_engine(void); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__initialize_poller(void); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__actual_aio_initialization(void); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__actual_aio_shutdown(void); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__initialize_per_loop(void); /*proto*/
static int __pyx_f_4grpc_7_cython_6cygrpc__get_send_initial_metadata_flags(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__augment_metadata(PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(PyObject *, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__initialize(void); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_ChannelCredentials__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_InsecureChannelCredentials__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle__Tag__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_CensusContext__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_AioServer__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *, PyObject *); /*proto*/
static PyObject *__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyStr_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
static PyObject *__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(PyObject *(*)(void)); /*proto*/
static PyObject *__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(PyObject *(*)(PyObject *, PyObject *)); /*proto*/
static PyObject *__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*)(void)); /*proto*/
/* #### Code section: typeinfo ### */
/* #### Code section: before_global_var ### */
#define __Pyx_MODULE_NAME "grpc._cython.cygrpc"
extern int __pyx_module_is_main_grpc___cython__cygrpc;
int __pyx_module_is_main_grpc___cython__cygrpc = 0;

/* Implementation of "grpc._cython.cygrpc" */
/* #### Code section: global_var ### */
static PyObject *__pyx_builtin_ImportError;
static PyObject *__pyx_builtin_object;
static PyObject *__pyx_builtin_TypeError;
static PyObject *__pyx_builtin_UnicodeDecodeError;
static PyObject *__pyx_builtin_enumerate;
static PyObject *__pyx_builtin_ValueError;
static PyObject *__pyx_builtin_NotImplementedError;
static PyObject *__pyx_builtin_range;
static PyObject *__pyx_builtin_KeyError;
static PyObject *__pyx_builtin_AttributeError;
static PyObject *__pyx_builtin_RuntimeError;
static PyObject *__pyx_builtin_DeprecationWarning;
static PyObject *__pyx_builtin_AssertionError;
static PyObject *__pyx_builtin_id;
static PyObject *__pyx_builtin_KeyboardInterrupt;
static PyObject *__pyx_builtin_SystemExit;
/* #### Code section: string_decls ### */
static const char __pyx_k_0[] = "0";
static const char __pyx_k_1[] = "1";
static const char __pyx_k_e[] = "e";
static const char __pyx_k_t[] = "t";
static const char __pyx_k__7[] = "";
static const char __pyx_k_cb[] = "cb";
static const char __pyx_k_fn[] = "fn";
static const char __pyx_k_gc[] = "gc";
static const char __pyx_k_id[] = "id";
static const char __pyx_k_lk[] = "lk";
static const char __pyx_k_ok[] = "ok";
static const char __pyx_k_op[] = "op";
static const char __pyx_k_os[] = "os";
static const char __pyx_k_EOF[] = "EOF";
static const char __pyx_k_Tag[] = "_Tag";
static const char __pyx_k_YES[] = "YES";
static const char __pyx_k_Yes[] = "Yes";
static const char __pyx_k__38[] = "*";
static const char __pyx_k__49[] = ": ";
static const char __pyx_k__57[] = "_";
static const char __pyx_k__58[] = ".";
static const char __pyx_k__69[] = "<";
static const char __pyx_k__70[] = " ";
static const char __pyx_k__71[] = ">";
static const char __pyx_k_add[] = "add";
static const char __pyx_k_bin[] = "-bin";
static const char __pyx_k_ctx[] = "ctx";
static const char __pyx_k_doc[] = "__doc__";
static const char __pyx_k_gen[] = "gen";
static const char __pyx_k_get[] = "get";
static const char __pyx_k_hub[] = "hub";
static const char __pyx_k_int[] = "__int__";
static const char __pyx_k_key[] = "key";
static const char __pyx_k_len[] = "__len__";
static const char __pyx_k_low[] = "low";
static const char __pyx_k_new[] = "__new__";
static const char __pyx_k_ops[] = "ops";
static const char __pyx_k_pop[] = "pop";
static const char __pyx_k_put[] = "put";
static const char __pyx_k_run[] = "run";
static const char __pyx_k_str[] = "str";
static const char __pyx_k_sys[] = "sys";
static const char __pyx_k_tag[] = "tag";
static const char __pyx_k_uds[] = "uds";
static const char __pyx_k_xds[] = "xds";
static const char __pyx_k_yes[] = "yes";
static const char __pyx_k_Call[] = "Call";
static const char __pyx_k_Enum[] = "Enum";
static const char __pyx_k_Lock[] = "Lock";
static const char __pyx_k_None[] = "None";
static const char __pyx_k_TRUE[] = "TRUE";
static const char __pyx_k_True[] = "True";
static const char __pyx_k__107[] = "?";
static const char __pyx_k_agen[] = "agen";
static const char __pyx_k_args[] = "args";
static const char __pyx_k_bool[] = "__bool__";
static const char __pyx_k_call[] = "call";
static const char __pyx_k_code[] = "code";
static const char __pyx_k_copy[] = "copy";
static const char __pyx_k_coro[] = "coro";
static const char __pyx_k_data[] = "data";
static const char __pyx_k_dict[] = "__dict__";
static const char __pyx_k_done[] = "done";
static const char __pyx_k_enum[] = "enum";
static const char __pyx_k_exit[] = "__exit__";
static const char __pyx_k_grpc[] = "grpc";
static const char __pyx_k_gzip[] = "gzip";
static const char __pyx_k_high[] = "high";
static const char __pyx_k_host[] = "host";
static const char __pyx_k_idle[] = "idle";
static const char __pyx_k_init[] = "__init__";
static const char __pyx_k_item[] = "item";
static const char __pyx_k_iter[] = "__iter__";
static const char __pyx_k_join[] = "join";
static const char __pyx_k_keys[] = "keys";
static const char __pyx_k_loop[] = "loop";
static const char __pyx_k_main[] = "__main__";
static const char __pyx_k_name[] = "name";
static const char __pyx_k_none[] = "none";
static const char __pyx_k_peer[] = "peer";
static const char __pyx_k_poll[] = "poll";
static const char __pyx_k_pool[] = "pool";
static const char __pyx_k_read[] = "read";
static const char __pyx_k_recv[] = "recv";
static const char __pyx_k_repr[] = "_repr";
static const char __pyx_k_self[] = "self";
static const char __pyx_k_send[] = "send";
static const char __pyx_k_spec[] = "__spec__";
static const char __pyx_k_task[] = "task";
static const char __pyx_k_test[] = "__test__";
static const char __pyx_k_time[] = "time";
static const char __pyx_k_true[] = "true";
static const char __pyx_k_type[] = "type";
static const char __pyx_k_utf8[] = "utf8";
static const char __pyx_k_wait[] = "wait";
static const char __pyx_k_wrap[] = "wrap";
static const char __pyx_k_EOF_2[] = "_EOF";
static const char __pyx_k_Group[] = "Group";
static const char __pyx_k_Queue[] = "Queue";
static const char __pyx_k_RLock[] = "RLock";
static const char __pyx_k_abort[] = "abort";
static const char __pyx_k_aexit[] = "__aexit__";
static const char __pyx_k_aiter[] = "__aiter__";
static const char __pyx_k_anext[] = "__anext__";
static const char __pyx_k_apply[] = "apply";
static const char __pyx_k_ascii[] = "ascii";
static const char __pyx_k_await[] = "__await__";
static const char __pyx_k_c_key[] = "c_key";
static const char __pyx_k_class[] = "__class__";
static const char __pyx_k_clear[] = "clear";
static const char __pyx_k_close[] = "close";
static const char __pyx_k_creds[] = "creds";
static const char __pyx_k_debug[] = "debug";
static const char __pyx_k_enter[] = "__enter__";
static const char __pyx_k_errno[] = "errno";
static const char __pyx_k_error[] = "error";
static const char __pyx_k_event[] = "event";
static const char __pyx_k_flags[] = "flags";
static const char __pyx_k_grace[] = "grace";
static const char __pyx_k_is_ok[] = "is_ok";
static const char __pyx_k_lower[] = "lower";
static const char __pyx_k_queue[] = "queue";
static const char __pyx_k_range[] = "range";
static const char __pyx_k_ready[] = "ready";
static const char __pyx_k_run_2[] = "_run";
static const char __pyx_k_sleep[] = "sleep";
static const char __pyx_k_spawn[] = "spawn";
static const char __pyx_k_start[] = "start";
static const char __pyx_k_state[] = "state";
static const char __pyx_k_str_2[] = "__str__";
static const char __pyx_k_super[] = "super";
static const char __pyx_k_throw[] = "throw";
static const char __pyx_k_upper[] = "upper";
static const char __pyx_k_utf_8[] = "utf-8";
static const char __pyx_k_value[] = "value";
static const char __pyx_k_write[] = "write";
static const char __pyx_k_LOGGER[] = "_LOGGER";
static const char __pyx_k_POLLER[] = "POLLER";
static const char __pyx_k_Server[] = "Server";
static const char __pyx_k_Thread[] = "Thread";
static const char __pyx_k_aenter[] = "__aenter__";
static const char __pyx_k_append[] = "append";
static const char __pyx_k_atexit[] = "atexit";
static const char __pyx_k_before[] = "before";
static const char __pyx_k_c_peer[] = "c_peer";
static const char __pyx_k_cancel[] = "cancel";
static const char __pyx_k_closed[] = "closed";
static const char __pyx_k_codecs[] = "codecs";
static const char __pyx_k_common[] = "_common";
static const char __pyx_k_cygrpc[] = ".cygrpc";
static const char __pyx_k_daemon[] = "daemon";
static const char __pyx_k_decode[] = "decode";
static const char __pyx_k_dict_2[] = "_dict";
static const char __pyx_k_enable[] = "enable";
static const char __pyx_k_encode[] = "encode";
static const char __pyx_k_exit_2[] = "_exit";
static const char __pyx_k_fileno[] = "fileno";
static const char __pyx_k_format[] = "format";
static const char __pyx_k_future[] = "future";
static const char __pyx_k_gevent[] = "gevent";
static const char __pyx_k_import[] = "__import__";
static const char __pyx_k_medium[] = "medium";
static const char __pyx_k_method[] = "method";
static const char __pyx_k_module[] = "__module__";
static const char __pyx_k_name_2[] = "__name__";
static const char __pyx_k_object[] = "object";
static const char __pyx_k_pickle[] = "pickle";
static const char __pyx_k_plugin[] = "plugin";
static const char __pyx_k_poller[] = "poller";
static const char __pyx_k_reduce[] = "__reduce__";
static const char __pyx_k_repr_2[] = "__repr__";
static const char __pyx_k_result[] = "result";
static const char __pyx_k_return[] = "return";
static const char __pyx_k_server[] = "server";
static const char __pyx_k_shield[] = "shield";
static const char __pyx_k_socket[] = "socket";
static const char __pyx_k_status[] = "status";
static const char __pyx_k_target[] = "target";
static const char __pyx_k_thread[] = "_thread";
static const char __pyx_k_typing[] = "typing";
static const char __pyx_k_update[] = "update";
static const char __pyx_k_values[] = "values";
static const char __pyx_k_AioCall[] = "_AioCall";
static const char __pyx_k_Channel[] = "Channel";
static const char __pyx_k_Unknown[] = "Unknown";
static const char __pyx_k_aborted[] = "aborted";
static const char __pyx_k_address[] = "address";
static const char __pyx_k_asyncio[] = "asyncio";
static const char __pyx_k_c_event[] = "c_event";
static const char __pyx_k_capsule[] = "capsule";
static const char __pyx_k_cb_func[] = "cb_func";
static const char __pyx_k_channel[] = "channel";
static const char __pyx_k_closing[] = "closing";
static const char __pyx_k_context[] = "context";
static const char __pyx_k_deflate[] = "deflate";
static const char __pyx_k_destroy[] = "destroy";
static const char __pyx_k_details[] = "details";
static const char __pyx_k_disable[] = "disable";
static const char __pyx_k_discard[] = "discard";
static const char __pyx_k_environ[] = "environ";
static const char __pyx_k_genexpr[] = "genexpr";
static const char __pyx_k_get_hub[] = "get_hub";
static const char __pyx_k_handler[] = "handler";
static const char __pyx_k_inspect[] = "inspect";
static const char __pyx_k_logging[] = "logging";
static const char __pyx_k_maxsize[] = "maxsize";
static const char __pyx_k_members[] = "__members__";
static const char __pyx_k_message[] = "message";
static const char __pyx_k_operate[] = "operate";
static const char __pyx_k_options[] = "options";
static const char __pyx_k_partial[] = "partial";
static const char __pyx_k_pkgutil[] = "pkgutil";
static const char __pyx_k_prepare[] = "__prepare__";
static const char __pyx_k_request[] = "request";
static const char __pyx_k_service[] = "service";
static const char __pyx_k_span_id[] = "span_id";
static const char __pyx_k_success[] = "success";
static const char __pyx_k_timeout[] = "timeout";
static const char __pyx_k_to_call[] = "to_call";
static const char __pyx_k_unknown[] = "unknown";
static const char __pyx_k_warning[] = "warning";
static const char __pyx_k_wrapper[] = "wrapper";
static const char __pyx_k_AioState[] = "_AioState";
static const char __pyx_k_EX_USAGE[] = "EX_USAGE";
static const char __pyx_k_KeyError[] = "KeyError";
static const char __pyx_k_Optional[] = "Optional";
static const char __pyx_k_RPCState[] = "RPCState";
static const char __pyx_k_c_target[] = "c_target";
static const char __pyx_k_callback[] = "callback";
static const char __pyx_k_capacity[] = "capacity";
static const char __pyx_k_channels[] = "channels";
static const char __pyx_k_daemonic[] = "daemonic";
static const char __pyx_k_deadline[] = "deadline";
static const char __pyx_k_end_time[] = "end_time";
static const char __pyx_k_endswith[] = "endswith";
static const char __pyx_k_exc_info[] = "exc_info";
static const char __pyx_k_get_data[] = "get_data";
static const char __pyx_k_getstate[] = "__getstate__";
static const char __pyx_k_identity[] = "identity";
static const char __pyx_k_internal[] = "internal";
static const char __pyx_k_is_valid[] = "is_valid";
static const char __pyx_k_metadata[] = "metadata";
static const char __pyx_k_object_2[] = "<{} object>";
static const char __pyx_k_property[] = "property";
static const char __pyx_k_pyx_capi[] = "__pyx_capi__";
static const char __pyx_k_pyx_type[] = "__pyx_type";
static const char __pyx_k_qualname[] = "__qualname__";
static const char __pyx_k_register[] = "register";
static const char __pyx_k_response[] = "response";
static const char __pyx_k_rpc_coro[] = "rpc_coro";
static const char __pyx_k_rpc_task[] = "rpc_task";
static const char __pyx_k_set_code[] = "set_code";
static const char __pyx_k_set_name[] = "__set_name__";
static const char __pyx_k_setstate[] = "__setstate__";
static const char __pyx_k_shutdown[] = "shutdown";
static const char __pyx_k_trace_id[] = "trace_id";
static const char __pyx_k_user_tag[] = "user_tag";
static const char __pyx_k_wait_for[] = "wait_for";
static const char __pyx_k_warnings[] = "warnings";
static const char __pyx_k_AioServer[] = "AioServer";
static const char __pyx_k_BaseError[] = "BaseError";
static const char __pyx_k_BaseEvent[] = "BaseEvent";
static const char __pyx_k_CallError[] = "CallError";
static const char __pyx_k_CallState[] = "_CallState";
static const char __pyx_k_Call_peer[] = "Call.peer";
static const char __pyx_k_Condition[] = "Condition";
static const char __pyx_k_EOF___len[] = "_EOF.__len__";
static const char __pyx_k_EOF___str[] = "_EOF.__str__";
static const char __pyx_k_EOF__repr[] = "_EOF._repr";
static const char __pyx_k_ForkState[] = "_ForkState";
static const char __pyx_k_Metadatum[] = "_Metadatum";
static const char __pyx_k_Operation[] = "Operation";
static const char __pyx_k_Timed_out[] = "Timed out";
static const char __pyx_k_TypeError[] = "TypeError";
static const char __pyx_k_WriteFlag[] = "WriteFlag";
static const char __pyx_k_algorithm[] = "algorithm";
static const char __pyx_k_arguments[] = "arguments";
static const char __pyx_k_bind_loop[] = "bind_loop";
static const char __pyx_k_bytes_ctx[] = "bytes_ctx";
static const char __pyx_k_c_details[] = "c_details";
static const char __pyx_k_c_options[] = "c_options";
static const char __pyx_k_cancelled[] = "cancelled";
static const char __pyx_k_condition[] = "_condition";
static const char __pyx_k_data_loss[] = "data_loss";
static const char __pyx_k_decrement[] = "decrement";
static const char __pyx_k_enumerate[] = "enumerate";
static const char __pyx_k_error_str[] = "error_str";
static const char __pyx_k_exception[] = "exception";
static const char __pyx_k_functools[] = "functools";
static const char __pyx_k_getLogger[] = "getLogger";
static const char __pyx_k_hex_codec[] = "hex_codec";
static const char __pyx_k_increment[] = "increment";
static const char __pyx_k_isenabled[] = "isenabled";
static const char __pyx_k_local_tcp[] = "local_tcp";
static const char __pyx_k_metaclass[] = "__metaclass__";
static const char __pyx_k_not_found[] = "not_found";
static const char __pyx_k_print_exc[] = "print_exc";
static const char __pyx_k_pyx_state[] = "__pyx_state";
static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
static const char __pyx_k_rpc_state[] = "rpc_state";
static const char __pyx_k_rpc_tasks[] = "rpc_tasks";
static const char __pyx_k_server_id[] = "server_id";
static const char __pyx_k_setDaemon[] = "setDaemon";
static const char __pyx_k_socket_id[] = "socket_id";
static const char __pyx_k_threading[] = "threading";
static const char __pyx_k_traceback[] = "traceback";
static const char __pyx_k_used_mask[] = "used_mask";
static const char __pyx_k_wait_time[] = "wait_time";
static const char __pyx_k_AbortError[] = "AbortError";
static const char __pyx_k_AioChannel[] = "AioChannel";
static const char __pyx_k_CallHandle[] = "CallHandle";
static const char __pyx_k_ChannelArg[] = "_ChannelArg";
static const char __pyx_k_EMPTY_MASK[] = "_EMPTY_MASK";
static const char __pyx_k_EOF___bool[] = "_EOF.__bool__";
static const char __pyx_k_EOF___repr[] = "_EOF.__repr__";
static const char __pyx_k_Failed_s_s[] = "Failed \"%s\": %s";
static const char __pyx_k_StatusCode[] = "StatusCode";
static const char __pyx_k_SystemExit[] = "SystemExit";
static const char __pyx_k_UsageError[] = "UsageError";
static const char __pyx_k_ValueError[] = "ValueError";
static const char __pyx_k_add_reader[] = "add_reader";
static const char __pyx_k_c_deadline[] = "c_deadline";
static const char __pyx_k_call_creds[] = "call_creds";
static const char __pyx_k_call_error[] = "call_error";
static const char __pyx_k_call_queue[] = "call_queue";
static const char __pyx_k_call_state[] = "call_state";
static const char __pyx_k_census_ctx[] = "census_ctx";
static const char __pyx_k_channel_id[] = "channel_id";
static const char __pyx_k_connecting[] = "connecting";
static const char __pyx_k_error_code[] = "error_code";
static const char __pyx_k_finish_ops[] = "finish_ops";
static const char __pyx_k_fork_epoch[] = "fork_epoch";
static const char __pyx_k_fork_state[] = "_fork_state";
static const char __pyx_k_get_plugin[] = "get_plugin";
static const char __pyx_k_gevent_hub[] = "gevent_hub";
static const char __pyx_k_handle_rpc[] = "_handle_rpc";
static const char __pyx_k_identities[] = "identities";
static const char __pyx_k_is_running[] = "is_running";
static const char __pyx_k_is_sampled[] = "is_sampled";
static const char __pyx_k_namedtuple[] = "namedtuple";
static const char __pyx_k_next_event[] = "next_event";
static const char __pyx_k_notify_all[] = "notify_all";
static const char __pyx_k_on_failure[] = "on_failure";
static const char __pyx_k_on_success[] = "on_success";
static const char __pyx_k_operations[] = "operations";
static const char __pyx_k_properties[] = "properties";
static const char __pyx_k_pyx_result[] = "__pyx_result";
static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
static const char __pyx_k_query_call[] = "query_call";
static const char __pyx_k_receive_op[] = "receive_op";
static const char __pyx_k_set_result[] = "set_result";
static const char __pyx_k_socketpair[] = "socketpair";
static const char __pyx_k_stored_ctx[] = "_stored_ctx";
static const char __pyx_k_threadpool[] = "threadpool";
static const char __pyx_k_write_flag[] = "write_flag";
static const char __pyx_k_CallDetails[] = "CallDetails";
static const char __pyx_k_Call_cancel[] = "Call.cancel";
static const char __pyx_k_ChannelArgs[] = "_ChannelArgs";
static const char __pyx_k_EMPTY_FLAGS[] = "_EMPTY_FLAGS";
static const char __pyx_k_ImportError[] = "ImportError";
static const char __pyx_k_PickleError[] = "PickleError";
static const char __pyx_k_TRUE_VALUES[] = "_TRUE_VALUES";
static const char __pyx_k_actual_code[] = "actual_code";
static const char __pyx_k_batch_error[] = "batch_error";
static const char __pyx_k_buffer_hint[] = "buffer_hint";
static const char __pyx_k_call_handle[] = "call_handle";
static const char __pyx_k_capsule_ptr[] = "capsule_ptr";
static const char __pyx_k_cert_config[] = "cert_config";
static const char __pyx_k_cfunc_to_py[] = "cfunc.to_py";
static const char __pyx_k_collections[] = "collections";
static const char __pyx_k_compression[] = "compression";
static const char __pyx_k_contextvars[] = "contextvars";
static const char __pyx_k_create_task[] = "create_task";
static const char __pyx_k_credentials[] = "credentials";
static const char __pyx_k_gevent_pool[] = "gevent.pool";
static const char __pyx_k_inbound_ops[] = "inbound_ops";
static const char __pyx_k_interceptor[] = "interceptor";
static const char __pyx_k_isawaitable[] = "isawaitable";
static const char __pyx_k_max_results[] = "max_results";
static const char __pyx_k_mro_entries[] = "__mro_entries__";
static const char __pyx_k_no_compress[] = "no_compress";
static const char __pyx_k_not_invoked[] = "not_invoked";
static const char __pyx_k_private_key[] = "private_key";
static const char __pyx_k_raw_message[] = "raw_message";
static const char __pyx_k_read_socket[] = "read_socket";
static const char __pyx_k_request_raw[] = "request_raw";
static const char __pyx_k_retain_self[] = "retain_self";
static const char __pyx_k_set_details[] = "set_details";
static const char __pyx_k_setblocking[] = "setblocking";
static const char __pyx_k_shutdown_cq[] = "shutdown_cq";
static const char __pyx_k_start_batch[] = "_start_batch";
static const char __pyx_k_started_tag[] = "started_tag";
static const char __pyx_k_status_code[] = "status_code";
static const char __pyx_k_status_task[] = "status_task";
static const char __pyx_k_thread_pool[] = "thread_pool";
static const char __pyx_k_unary_unary[] = "unary_unary";
static const char __pyx_k_unavailable[] = "unavailable";
static const char __pyx_k_unused_task[] = "unused_task";
static const char __pyx_k_AioCall_done[] = "_AioCall.done";
static const char __pyx_k_AioRpcStatus[] = "AioRpcStatus";
static const char __pyx_k_ChannelState[] = "_ChannelState";
static const char __pyx_k_Optional_int[] = "Optional[int]";
static const char __pyx_k_RuntimeError[] = "RuntimeError";
static const char __pyx_k_Server_start[] = "Server.start";
static const char __pyx_k_TimeoutError[] = "TimeoutError";
static const char __pyx_k_add_callback[] = "add_callback";
static const char __pyx_k_auth_context[] = "auth_context";
static const char __pyx_k_backup_queue[] = "backup_queue";
static const char __pyx_k_c_call_error[] = "c_call_error";
static const char __pyx_k_call_details[] = "call_details";
static const char __pyx_k_context_loop[] = "context_loop";
static const char __pyx_k_continuation[] = "continuation";
static const char __pyx_k_copy_context[] = "copy_context";
static const char __pyx_k_error_string[] = "error_string";
static const char __pyx_k_grpc_aio_EOF[] = "<grpc.aio.EOF>";
static const char __pyx_k_identity_key[] = "identity_key";
static const char __pyx_k_initializing[] = "_initializing";
static const char __pyx_k_interceptors[] = "interceptors";
static const char __pyx_k_is_coroutine[] = "_is_coroutine";
static const char __pyx_k_method_bytes[] = "method_bytes";
static const char __pyx_k_out_of_range[] = "out_of_range";
static const char __pyx_k_outbound_ops[] = "outbound_ops";
static const char __pyx_k_poll_wrapper[] = "_poll_wrapper";
static const char __pyx_k_pyx_checksum[] = "__pyx_checksum";
static const char __pyx_k_request_call[] = "_request_call";
static const char __pyx_k_response_raw[] = "response_raw";
static const char __pyx_k_send_message[] = "_send_message";
static const char __pyx_k_server_queue[] = "server_queue";
static const char __pyx_k_simplefilter[] = "simplefilter";
static const char __pyx_k_started_tags[] = "started_tags";
static const char __pyx_k_stream_unary[] = "stream_unary";
static const char __pyx_k_stringsource[] = "<stringsource>";
static const char __pyx_k_timeout_secs[] = "timeout_secs";
static const char __pyx_k_unary_stream[] = "unary_stream";
static const char __pyx_k_use_setstate[] = "use_setstate";
static const char __pyx_k_AioCall__repr[] = "_AioCall._repr";
static const char __pyx_k_AioCall_is_ok[] = "_AioCall.is_ok";
static const char __pyx_k_AsyncIOEngine[] = "AsyncIOEngine";
static const char __pyx_k_CensusContext[] = "CensusContext";
static const char __pyx_k_ChannelArgKey[] = "ChannelArgKey";
static const char __pyx_k_Channel_close[] = "Channel.close";
static const char __pyx_k_InternalError[] = "InternalError";
static const char __pyx_k_OperationType[] = "OperationType";
static const char __pyx_k_asyncio_tasks[] = "asyncio.tasks";
static const char __pyx_k_c_cert_config[] = "c_cert_config";
static const char __pyx_k_callback_func[] = "callback_func";
static const char __pyx_k_channel_state[] = "channel_state";
static const char __pyx_k_class_getitem[] = "__class_getitem__";
static const char __pyx_k_close_on_fork[] = "_close_on_fork";
static const char __pyx_k_create_future[] = "create_future";
static const char __pyx_k_credentials_2[] = "_credentials";
static const char __pyx_k_details_bytes[] = "details_bytes";
static const char __pyx_k_enable_census[] = "enable_census";
static const char __pyx_k_error_details[] = "error_details";
static const char __pyx_k_execute_batch[] = "execute_batch";
static const char __pyx_k_g_gevent_pool[] = "g_gevent_pool";
static const char __pyx_k_handle_events[] = "_handle_events";
static const char __pyx_k_init_grpc_aio[] = "init_grpc_aio";
static const char __pyx_k_init_subclass[] = "__init_subclass__";
static const char __pyx_k_internal_poll[] = "_internal_poll";
static const char __pyx_k_invalid_flags[] = "invalid_flags";
static const char __pyx_k_not_on_client[] = "not_on_client";
static const char __pyx_k_not_on_server[] = "not_on_server";
static const char __pyx_k_observability[] = "_observability";
static const char __pyx_k_query_handler[] = "query_handler";
static const char __pyx_k_queue_timeout[] = "queue_timeout";
static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
static const char __pyx_k_remove_reader[] = "remove_reader";
static const char __pyx_k_runtime_error[] = "runtime_error";
static const char __pyx_k_send_close_op[] = "send_close_op";
static const char __pyx_k_set_exception[] = "set_exception";
static const char __pyx_k_stream_stream[] = "stream_stream";
static const char __pyx_k_subchannel_id[] = "subchannel_id";
static const char __pyx_k_unary_handler[] = "unary_handler";
static const char __pyx_k_unimplemented[] = "unimplemented";
static const char __pyx_k_unused_future[] = "unused_future";
static const char __pyx_k_AioCall_cancel[] = "_AioCall.cancel";
static const char __pyx_k_AioCall_status[] = "_AioCall.status";
static const char __pyx_k_AssertionError[] = "AssertionError";
static const char __pyx_k_AttributeError[] = "AttributeError";
static const char __pyx_k_BoundEventLoop[] = "_BoundEventLoop";
static const char __pyx_k_CancelledError[] = "CancelledError";
static const char __pyx_k_Channel_target[] = "Channel.target";
static const char __pyx_k_CompletionType[] = "CompletionType";
static const char __pyx_k_GrpcArgWrapper[] = "_GrpcArgWrapper";
static const char __pyx_k_IntegratedCall[] = "IntegratedCall";
static const char __pyx_k_LatentEventArg[] = "_LatentEventArg";
static const char __pyx_k_RequestCallTag[] = "_RequestCallTag";
static const char __pyx_k_SegregatedCall[] = "SegregatedCall";
static const char __pyx_k_Server_destroy[] = "Server.destroy";
static const char __pyx_k_Unexpected_s_s[] = "Unexpected %s: %s";
static const char __pyx_k_add_http2_port[] = "add_http2_port";
static const char __pyx_k_after_in_child[] = "after_in_child";
static const char __pyx_k_already_exists[] = "already_exists";
static const char __pyx_k_c_returned_str[] = "c_returned_str";
static const char __pyx_k_catch_warnings[] = "catch_warnings";
static const char __pyx_k_default_vtable[] = "default_vtable";
static const char __pyx_k_exception_type[] = "exception_type";
static const char __pyx_k_get_event_loop[] = "get_event_loop";
static const char __pyx_k_get_fork_epoch[] = "get_fork_epoch";
static const char __pyx_k_managed_target[] = "managed_target";
static const char __pyx_k_method_handler[] = "method_handler";
static const char __pyx_k_new_event_loop[] = "new_event_loop";
static const char __pyx_k_pem_root_certs[] = "pem_root_certs";
static const char __pyx_k_query_handlers[] = "query_handlers";
static const char __pyx_k_queue_deadline[] = "queue_deadline";
static const char __pyx_k_queue_shutdown[] = "queue_shutdown";
static const char __pyx_k_request_call_2[] = "request_call";
static const char __pyx_k_send_message_2[] = "send_message";
static const char __pyx_k_server_started[] = "server_started";
static const char __pyx_k_stream_handler[] = "stream_handler";
static const char __pyx_k_time_remaining[] = "time_remaining";
static const char __pyx_k_to_channel_arg[] = "to_channel_arg";
static const char __pyx_k_try_to_connect[] = "try_to_connect";
static const char __pyx_k_wait_for_ready[] = "wait_for_ready";
static const char __pyx_k_yield_to_queue[] = "yield_to_queue";
static const char __pyx_k_AioChannel_call[] = "AioChannel.call";
static const char __pyx_k_AioServer_start[] = "AioServer.start";
static const char __pyx_k_CallCredentials[] = "CallCredentials";
static const char __pyx_k_CallbackWrapper[] = "CallbackWrapper";
static const char __pyx_k_CompletionQueue[] = "CompletionQueue";
static const char __pyx_k_ConnectivityTag[] = "_ConnectivityTag";
static const char __pyx_k_GrpcCallWrapper[] = "GrpcCallWrapper";
static const char __pyx_k_Locally_aborted[] = "Locally aborted.";
static const char __pyx_k_MessageReceiver[] = "_MessageReceiver";
static const char __pyx_k_Server_shutdown[] = "Server.shutdown";
static const char __pyx_k_ServicerContext[] = "_ServicerContext";
static const char __pyx_k_add_secure_port[] = "add_secure_port";
static const char __pyx_k_after_in_parent[] = "after_in_parent";
static const char __pyx_k_already_invoked[] = "already_invoked";
static const char __pyx_k_c_error_details[] = "c_error_details";
static const char __pyx_k_close_on_fork_2[] = "close_on_fork";
static const char __pyx_k_completion_type[] = "completion_type";
static const char __pyx_k_failure_handler[] = "failure_handler";
static const char __pyx_k_generic_handler[] = "generic_handler";
static const char __pyx_k_integrated_call[] = "integrated_call";
static const char __pyx_k_metadata_plugin[] = "metadata_plugin";
static const char __pyx_k_next_call_event[] = "next_call_event";
static const char __pyx_k_peer_identities[] = "peer_identities";
static const char __pyx_k_py_auth_context[] = "py_auth_context";
static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError";
static const char __pyx_k_receive_message[] = "_receive_message";
static const char __pyx_k_register_method[] = "register_method";
static const char __pyx_k_request_message[] = "request_message";
static const char __pyx_k_run_in_executor[] = "run_in_executor";
static const char __pyx_k_run_interceptor[] = "_run_interceptor";
static const char __pyx_k_segregated_call[] = "segregated_call";
static const char __pyx_k_send_message_op[] = "send_message_op";
static const char __pyx_k_set_compression[] = "set_compression";
static const char __pyx_k_set_credentials[] = "set_credentials";
static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
static const char __pyx_k_spawn_greenlets[] = "spawn_greenlets";
static const char __pyx_k_start_server_id[] = "start_server_id";
static const char __pyx_k_start_socket_id[] = "start_socket_id";
static const char __pyx_k_tracing_enabled[] = "tracing_enabled";
static const char __pyx_k_unauthenticated[] = "unauthenticated";
static const char __pyx_k_AioChannel_close[] = "AioChannel.close";
static const char __pyx_k_CompressionLevel[] = "CompressionLevel";
static const char __pyx_k_Expected_str_not[] = "Expected str, not {}";
static const char __pyx_k_ForkState___init[] = "_ForkState.__init__";
static const char __pyx_k_Method_not_found[] = "Method not found!";
static const char __pyx_k_RegisteredMethod[] = "RegisteredMethod";
static const char __pyx_k_RequestCallError[] = "_RequestCallError";
static const char __pyx_k_RequestCallEvent[] = "RequestCallEvent";
static const char __pyx_k_address_c_string[] = "address_c_string";
static const char __pyx_k_already_accepted[] = "already_accepted";
static const char __pyx_k_already_finished[] = "already_finished";
static const char __pyx_k_batch_operations[] = "batch_operations";
static const char __pyx_k_c_pem_root_certs[] = "c_pem_root_certs";
static const char __pyx_k_call_credentials[] = "call_credentials";
static const char __pyx_k_callback_wrapper[] = "callback_wrapper";
static const char __pyx_k_cancel_all_calls[] = "cancel_all_calls";
static const char __pyx_k_dump_xds_configs[] = "dump_xds_configs";
static const char __pyx_k_enable_algorithm[] = "enable_algorithm";
static const char __pyx_k_fork_in_progress[] = "fork_in_progress";
static const char __pyx_k_format_exception[] = "format_exception";
static const char __pyx_k_generic_handlers[] = "generic_handlers";
static const char __pyx_k_get_running_loop[] = "get_running_loop";
static const char __pyx_k_get_working_loop[] = "get_working_loop";
static const char __pyx_k_handle_callbacks[] = "handle_callbacks";
static const char __pyx_k_init_grpc_gevent[] = "init_grpc_gevent";
static const char __pyx_k_initial_metadata[] = "initial_metadata";
static const char __pyx_k_invalid_argument[] = "invalid_argument";
static const char __pyx_k_invalid_metadata[] = "invalid_metadata";
static const char __pyx_k_is_async_handler[] = "_is_async_handler";
static const char __pyx_k_latent_event_arg[] = "latent_event_arg";
static const char __pyx_k_received_message[] = "received_message";
static const char __pyx_k_register_at_fork[] = "register_at_fork";
static const char __pyx_k_request_call_tag[] = "request_call_tag";
static const char __pyx_k_request_iterator[] = "request_iterator";
static const char __pyx_k_response_message[] = "response_message";
static const char __pyx_k_run_with_context[] = "_run_with_context";
static const char __pyx_k_server_main_loop[] = "_server_main_loop";
static const char __pyx_k_service_accounts[] = "service_accounts";
static const char __pyx_k_servicer_context[] = "servicer_context";
static const char __pyx_k_start_channel_id[] = "start_channel_id";
static const char __pyx_k_ActiveThreadCount[] = "_ActiveThreadCount";
static const char __pyx_k_AioCall_cancelled[] = "_AioCall.cancelled";
static const char __pyx_k_AioChannel_closed[] = "AioChannel.closed";
static const char __pyx_k_AioRpcStatus_code[] = "AioRpcStatus.code";
static const char __pyx_k_BatchOperationTag[] = "_BatchOperationTag";
static const char __pyx_k_CUSTOM_IO_MANAGER[] = "CUSTOM_IO_MANAGER";
static const char __pyx_k_Call__start_batch[] = "Call._start_batch";
static const char __pyx_k_Channel_is_closed[] = "Channel is closed.";
static const char __pyx_k_ConnectivityEvent[] = "ConnectivityEvent";
static const char __pyx_k_ConnectivityState[] = "ConnectivityState";
static const char __pyx_k_ExecuteBatchError[] = "ExecuteBatchError";
static const char __pyx_k_ForkManagedThread[] = "ForkManagedThread";
static const char __pyx_k_KeyboardInterrupt[] = "KeyboardInterrupt";
static const char __pyx_k_ServerCredentials[] = "ServerCredentials";
static const char __pyx_k_ServerShutdownTag[] = "_ServerShutdownTag";
static const char __pyx_k_SslPemKeyCertPair[] = "SslPemKeyCertPair";
static const char __pyx_k_abort_with_status[] = "abort_with_status";
static const char __pyx_k_add_done_callback[] = "add_done_callback";
static const char __pyx_k_add_insecure_port[] = "add_insecure_port";
static const char __pyx_k_certificate_chain[] = "certificate_chain";
static const char __pyx_k_custom_io_manager[] = "custom_io_manager";
static const char __pyx_k_deadline_exceeded[] = "deadline_exceeded";
static const char __pyx_k_default_authority[] = "default_authority";
static const char __pyx_k_disable_algorithm[] = "disable_algorithm";
static const char __pyx_k_force_client_auth[] = "force_client_auth";
static const char __pyx_k_grpc_call_wrapper[] = "grpc_call_wrapper";
static const char __pyx_k_handle_exceptions[] = "_handle_exceptions";
static const char __pyx_k_intercept_service[] = "intercept_service";
static const char __pyx_k_peer_identity_key[] = "peer_identity_key";
static const char __pyx_k_permission_denied[] = "permission_denied";
static const char __pyx_k_pyx_unpickle__Tag[] = "__pyx_unpickle__Tag";
static const char __pyx_k_receive_message_2[] = "receive_message";
static const char __pyx_k_registered_method[] = "registered_method";
static const char __pyx_k_request_streaming[] = "request_streaming";
static const char __pyx_k_schedule_rpc_coro[] = "_schedule_rpc_coro";
static const char __pyx_k_shutdown_grpc_aio[] = "shutdown_grpc_aio";
static const char __pyx_k_ssl_session_cache[] = "ssl_session_cache";
static const char __pyx_k_trailing_metadata[] = "trailing_metadata";
static const char __pyx_k_transient_failure[] = "transient_failure";
static const char __pyx_k_uninstall_context[] = "uninstall_context";
static const char __pyx_k_AioChannel_closing[] = "AioChannel.closing";
static const char __pyx_k_AioServer_shutdown[] = "AioServer.shutdown";
static const char __pyx_k_ChannelCredentials[] = "ChannelCredentials";
static const char __pyx_k_CompressionOptions[] = "CompressionOptions";
static const char __pyx_k_DeprecationWarning[] = "DeprecationWarning";
static const char __pyx_k_HandleExceptions_s[] = "HandleExceptions[%s]";
static const char __pyx_k_HandlerCallDetails[] = "_HandlerCallDetails";
static const char __pyx_k_SSLSessionCacheLRU[] = "SSLSessionCacheLRU";
static const char __pyx_k_ServerStoppedError[] = "_ServerStoppedError";
static const char __pyx_k_UnicodeDecodeError[] = "UnicodeDecodeError";
static const char __pyx_k_asyncio_coroutines[] = "asyncio.coroutines";
static const char __pyx_k_await_zero_threads[] = "await_zero_threads";
static const char __pyx_k_c_call_credentials[] = "c_call_credentials";
static const char __pyx_k_call_credentialses[] = "call_credentialses";
static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
static const char __pyx_k_core_function_name[] = "core_function_name";
static const char __pyx_k_debug_error_string[] = "debug_error_string";
static const char __pyx_k_g_gevent_activated[] = "g_gevent_activated";
static const char __pyx_k_isasyncgenfunction[] = "isasyncgenfunction";
static const char __pyx_k_local_connect_type[] = "local_connect_type";
static const char __pyx_k_num_active_threads[] = "_num_active_threads";
static const char __pyx_k_operation_complete[] = "operation_complete";
static const char __pyx_k_pem_key_cert_pairs[] = "pem_key_cert_pairs";
static const char __pyx_k_queue_must_be_live[] = "queue must be live";
static const char __pyx_k_receive_message_op[] = "receive_message_op";
static const char __pyx_k_resource_exhausted[] = "resource_exhausted";
static const char __pyx_k_response_streaming[] = "response_streaming";
static const char __pyx_k_save_trace_context[] = "save_trace_context";
static const char __pyx_k_send_receive_close[] = "send_receive_close";
static const char __pyx_k_server_call_tracer[] = "server_call_tracer";
static const char __pyx_k_server_credentials[] = "server_credentials";
static const char __pyx_k_set_internal_error[] = "set_internal_error";
static const char __pyx_k_start_client_batch[] = "start_client_batch";
static const char __pyx_k_start_server_batch[] = "start_server_batch";
static const char __pyx_k_AioCall_unary_unary[] = "_AioCall.unary_unary";
static const char __pyx_k_BaseCompletionQueue[] = "BaseCompletionQueue";
static const char __pyx_k_BatchOperationEvent[] = "BatchOperationEvent";
static const char __pyx_k_Cannot_invoke_RPC_s[] = "Cannot invoke RPC: %s";
static const char __pyx_k_GRPC_ASYNCIO_ENGINE[] = "GRPC_ASYNCIO_ENGINE";
static const char __pyx_k_LocalConnectionType[] = "LocalConnectionType";
static const char __pyx_k_NotImplementedError[] = "NotImplementedError";
static const char __pyx_k_SERVICES_TO_EXCLUDE[] = "_SERVICES_TO_EXCLUDE";
static const char __pyx_k_ServerShutdownEvent[] = "ServerShutdownEvent";
static const char __pyx_k_Server_request_call[] = "Server.request_call";
static const char __pyx_k_SyncServicerContext[] = "_SyncServicerContext";
static const char __pyx_k_Tag___reduce_cython[] = "_Tag.__reduce_cython__";
static const char __pyx_k_active_thread_count[] = "active_thread_count";
static const char __pyx_k_async_callback_func[] = "async_callback_func";
static const char __pyx_k_batch_operation_tag[] = "batch_operation_tag";
static const char __pyx_k_cert_config_fetcher[] = "cert_config_fetcher";
static const char __pyx_k_channel_credentials[] = "channel_credentials";
static const char __pyx_k_channelz_get_server[] = "channelz_get_server";
static const char __pyx_k_channelz_get_socket[] = "channelz_get_socket";
static const char __pyx_k_custom_op_on_c_call[] = "_custom_op_on_c_call";
static const char __pyx_k_failed_precondition[] = "failed_precondition";
static const char __pyx_k_find_method_handler[] = "_find_method_handler";
static const char __pyx_k_fork_handler_failed[] = "_fork_handler_failed";
static const char __pyx_k_g_gevent_threadpool[] = "g_gevent_threadpool";
static const char __pyx_k_grpc__cython_cygrpc[] = "grpc._cython.cygrpc";
static const char __pyx_k_initial_cert_config[] = "initial_cert_config";
static const char __pyx_k_initial_metadata_op[] = "initial_metadata_op";
static const char __pyx_k_invocation_metadata[] = "invocation_metadata";
static const char __pyx_k_iscoroutinefunction[] = "iscoroutinefunction";
static const char __pyx_k_last_observed_state[] = "last_observed_state";
static const char __pyx_k_response_serializer[] = "response_serializer";
static const char __pyx_k_run_spawn_greenlets[] = "run_spawn_greenlets";
static const char __pyx_k_start_shutting_down[] = "_start_shutting_down";
static const char __pyx_k_too_many_operations[] = "too_many_operations";
static const char __pyx_k_Abort_already_called[] = "Abort already called!";
static const char __pyx_k_AioCall_stream_unary[] = "_AioCall.stream_unary";
static const char __pyx_k_AioRpcStatus_details[] = "AioRpcStatus.details";
static const char __pyx_k_AioServer_is_running[] = "AioServer.is_running";
static const char __pyx_k_BoundEventLoop_close[] = "_BoundEventLoop.close";
static const char __pyx_k_Call___reduce_cython[] = "Call.__reduce_cython__";
static const char __pyx_k_Call_set_credentials[] = "Call.set_credentials";
static const char __pyx_k_CompletionQueue_poll[] = "CompletionQueue.poll";
static const char __pyx_k_CompressionAlgorithm[] = "CompressionAlgorithm";
static const char __pyx_k_ConcurrentRpcLimiter[] = "_ConcurrentRpcLimiter";
static const char __pyx_k_InitialMetadataFlags[] = "InitialMetadataFlags";
static const char __pyx_k_PropagationConstants[] = "PropagationConstants";
static const char __pyx_k_RPC_already_finished[] = "RPC already finished.";
static const char __pyx_k_SendMessageOperation[] = "SendMessageOperation";
static const char __pyx_k_ServicerContext_code[] = "_ServicerContext.code";
static const char __pyx_k_ServicerContext_done[] = "_ServicerContext.done";
static const char __pyx_k_ServicerContext_peer[] = "_ServicerContext.peer";
static const char __pyx_k_ServicerContext_read[] = "_ServicerContext.read";
static const char __pyx_k_TYPE_METADATA_STRING[] = "TYPE_METADATA_STRING";
static const char __pyx_k_build_census_context[] = "build_census_context";
static const char __pyx_k_call_soon_threadsafe[] = "call_soon_threadsafe";
static const char __pyx_k_channelz_get_channel[] = "channelz_get_channel";
static const char __pyx_k_channelz_get_servers[] = "channelz_get_servers";
static const char __pyx_k_concurrency_exceeded[] = "concurrency_exceeded";
static const char __pyx_k_fallback_credentials[] = "fallback_credentials";
static const char __pyx_k_generic_rpc_handlers[] = "generic_rpc_handlers";
static const char __pyx_k_handler_call_details[] = "handler_call_details";
static const char __pyx_k_is_algorithm_enabled[] = "is_algorithm_enabled";
static const char __pyx_k_is_locally_cancelled[] = "is_locally_cancelled";
static const char __pyx_k_observability_plugin[] = "observability_plugin";
static const char __pyx_k_request_deserializer[] = "request_deserializer";
static const char __pyx_k_reset_postfork_child[] = "reset_postfork_child";
static const char __pyx_k_shutting_down_server[] = "shutting_down_server";
static const char __pyx_k_spawn_callback_async[] = "_spawn_callback_async";
static const char __pyx_k_wait_for_termination[] = "wait_for_termination";
static const char __pyx_k_Channel_close_on_fork[] = "Channel.close_on_fork";
static const char __pyx_k_CompletionQueue_clear[] = "CompletionQueue.clear";
static const char __pyx_k_IntegratedCall_cancel[] = "IntegratedCall.cancel";
static const char __pyx_k_Invalid_encoding_on_s[] = "Invalid encoding on %s";
static const char __pyx_k_PollerCompletionQueue[] = "PollerCompletionQueue";
static const char __pyx_k_SSLChannelCredentials[] = "SSLChannelCredentials";
static const char __pyx_k_SegregatedCall_cancel[] = "SegregatedCall.cancel";
static const char __pyx_k_Server_add_http2_port[] = "Server.add_http2_port";
static const char __pyx_k_ServicerContext_abort[] = "_ServicerContext.abort";
static const char __pyx_k_ServicerContext_write[] = "_ServicerContext.write";
static const char __pyx_k_Tag___setstate_cython[] = "_Tag.__setstate_cython__";
static const char __pyx_k_Using_s_as_I_O_engine[] = "Using %s as I/O engine";
static const char __pyx_k_XDSChannelCredentials[] = "XDSChannelCredentials";
static const char __pyx_k_contextvars_supported[] = "_contextvars_supported";
static const char __pyx_k_credentials_roots_pem[] = "_credentials/roots.pem";
static const char __pyx_k_fork_register_channel[] = "fork_register_channel";
static const char __pyx_k_get_event_loop_policy[] = "get_event_loop_policy";
static const char __pyx_k_grpc_shutdown_wrapper[] = "_grpc_shutdown_wrapper";
static const char __pyx_k_initiate_unary_stream[] = "initiate_unary_stream";
static const char __pyx_k_observability_enabled[] = "observability_enabled";
static const char __pyx_k_operationses_and_tags[] = "operationses_and_tags";
static const char __pyx_k_pem_root_certificates[] = "pem_root_certificates";
static const char __pyx_k_send_initial_metadata[] = "_send_initial_metadata";
static const char __pyx_k_set_trailing_metadata[] = "set_trailing_metadata";
static const char __pyx_k_sync_servicer_context[] = "sync_servicer_context";
static const char __pyx_k_ALTSChannelCredentials[] = "ALTSChannelCredentials";
static const char __pyx_k_AioCall_time_remaining[] = "_AioCall.time_remaining";
static const char __pyx_k_Call___setstate_cython[] = "Call.__setstate_cython__";
static const char __pyx_k_CallbackFailureHandler[] = "CallbackFailureHandler";
static const char __pyx_k_ForkManagedThread_join[] = "ForkManagedThread.join";
static const char __pyx_k_IntegratedCall_operate[] = "IntegratedCall.operate";
static const char __pyx_k_OK_CALL_REPRESENTATION[] = "_OK_CALL_REPRESENTATION";
static const char __pyx_k_SegregatedCall_operate[] = "SegregatedCall.operate";
static const char __pyx_k_Server___reduce_cython[] = "Server.__reduce_cython__";
static const char __pyx_k_Server_already_stopped[] = "Server already stopped.";
static const char __pyx_k_Server_register_method[] = "Server.register_method";
static const char __pyx_k_async_message_receiver[] = "_async_message_receiver";
static const char __pyx_k_client_config_in_slice[] = "client_config_in_slice";
static const char __pyx_k_decrease_once_finished[] = "decrease_once_finished";
static const char __pyx_k_fully_qualified_method[] = "fully_qualified_method";
static const char __pyx_k_grpc_call_error_string[] = "grpc_call_error_string";
static const char __pyx_k_handle_unary_unary_rpc[] = "_handle_unary_unary_rpc";
static const char __pyx_k_initiate_stream_stream[] = "initiate_stream_stream";
static const char __pyx_k_max_concurrent_streams[] = "max_concurrent_streams";
static const char __pyx_k_metadata_sent_observer[] = "metadata_sent_observer";
static const char __pyx_k_metadata_was_invalid_s[] = "metadata was invalid: %s";
static const char __pyx_k_pyx_unpickle_AioServer[] = "__pyx_unpickle_AioServer";
static const char __pyx_k_registered_call_handle[] = "registered_call_handle";
static const char __pyx_k_reset_grpc_config_vars[] = "reset_grpc_config_vars";
static const char __pyx_k_save_registered_method[] = "save_registered_method";
static const char __pyx_k_send_close_from_client[] = "send_close_from_client";
static const char __pyx_k_server_credentials_ssl[] = "server_credentials_ssl";
static const char __pyx_k_xds_server_credentials[] = "xds_server_credentials";
static const char __pyx_k_AioCall___reduce_cython[] = "_AioCall.__reduce_cython__";
static const char __pyx_k_AioServer__request_call[] = "AioServer._request_call";
static const char __pyx_k_Call_start_client_batch[] = "Call.start_client_batch";
static const char __pyx_k_Call_start_server_batch[] = "Call.start_server_batch";
static const char __pyx_k_Channel___reduce_cython[] = "Channel.__reduce_cython__";
static const char __pyx_k_Channel_integrated_call[] = "Channel.integrated_call";
static const char __pyx_k_Channel_next_call_event[] = "Channel.next_call_event";
static const char __pyx_k_Channel_segregated_call[] = "Channel.segregated_call";
static const char __pyx_k_ForkManagedThread_start[] = "ForkManagedThread.start";
static const char __pyx_k_GRPC_PROPAGATE_DEADLINE[] = "GRPC_PROPAGATE_DEADLINE";
static const char __pyx_k_GRPC_PROPAGATE_DEFAULTS[] = "GRPC_PROPAGATE_DEFAULTS";
static const char __pyx_k_LocalChannelCredentials[] = "LocalChannelCredentials";
static const char __pyx_k_MessageReceiver___anext[] = "_MessageReceiver.__anext__";
static const char __pyx_k_ReceiveMessageOperation[] = "ReceiveMessageOperation";
static const char __pyx_k_ServerCertificateConfig[] = "ServerCertificateConfig";
static const char __pyx_k_Server_cancel_all_calls[] = "Server.cancel_all_calls";
static const char __pyx_k_ServicerContext_details[] = "_ServicerContext.details";
static const char __pyx_k_WatchConnectivityFailed[] = "_WatchConnectivityFailed";
static const char __pyx_k_channelz_get_subchannel[] = "channelz_get_subchannel";
static const char __pyx_k_cython_call_credentials[] = "cython_call_credentials";
static const char __pyx_k_fork_handler_registered[] = "fork_handler_registered";
static const char __pyx_k_fork_unregister_channel[] = "fork_unregister_channel";
static const char __pyx_k_handle_callback_wrapper[] = "_handle_callback_wrapper";
static const char __pyx_k_handle_stream_unary_rpc[] = "_handle_stream_unary_rpc";
static const char __pyx_k_handle_unary_stream_rpc[] = "_handle_unary_stream_rpc";
static const char __pyx_k_is_fork_support_enabled[] = "is_fork_support_enabled";
static const char __pyx_k_max_send_message_length[] = "max_send_message_length";
static const char __pyx_k_maximum_concurrent_rpcs[] = "maximum_concurrent_rpcs";
static const char __pyx_k_metadata_locals_genexpr[] = "_metadata.<locals>.genexpr";
static const char __pyx_k_postfork_state_to_reset[] = "postfork_state_to_reset";
static const char __pyx_k_python_call_credentials[] = "python_call_credentials";
static const char __pyx_k_receive_close_on_server[] = "receive_close_on_server";
static const char __pyx_k_request_registered_call[] = "request_registered_call";
static const char __pyx_k_send_initial_metadata_2[] = "send_initial_metadata";
static const char __pyx_k_send_serialized_message[] = "send_serialized_message";
static const char __pyx_k_send_status_from_server[] = "send_status_from_server";
static const char __pyx_k_server_credentials_alts[] = "server_credentials_alts";
static const char __pyx_k_set_async_callback_func[] = "set_async_callback_func";
static const char __pyx_k_ActiveThreadCount___init[] = "_ActiveThreadCount.__init__";
static const char __pyx_k_AioCall_initial_metadata[] = "_AioCall.initial_metadata";
static const char __pyx_k_AioState___reduce_cython[] = "_AioState.__reduce_cython__";
static const char __pyx_k_CompletionQueue_shutdown[] = "CompletionQueue.shutdown";
static const char __pyx_k_CompositeCallCredentials[] = "CompositeCallCredentials";
static const char __pyx_k_ForkManagedThread___init[] = "ForkManagedThread.__init__";
static const char __pyx_k_GRPC_ENABLE_FORK_SUPPORT[] = "_GRPC_ENABLE_FORK_SUPPORT";
static const char __pyx_k_IMMUTABLE_EMPTY_METADATA[] = "_IMMUTABLE_EMPTY_METADATA";
static const char __pyx_k_Internal_error_from_Core[] = "Internal error from Core";
static const char __pyx_k_RPCState___reduce_cython[] = "RPCState.__reduce_cython__";
static const char __pyx_k_Server___setstate_cython[] = "Server.__setstate_cython__";
static const char __pyx_k_ServicerContext_set_code[] = "_ServicerContext.set_code";
static const char __pyx_k_SyncServicerContext_peer[] = "_SyncServicerContext.peer";
static const char __pyx_k_add_generic_rpc_handlers[] = "add_generic_rpc_handlers";
static const char __pyx_k_async_response_generator[] = "async_response_generator";
static const char __pyx_k_channel_credentials_alts[] = "channel_credentials_alts";
static const char __pyx_k_check_connectivity_state[] = "check_connectivity_state";
static const char __pyx_k_grpc_server_request_call[] = "grpc_server_request_call";
static const char __pyx_k_handle_stream_stream_rpc[] = "_handle_stream_stream_rpc";
static const char __pyx_k_postfork_states_to_reset[] = "postfork_states_to_reset";
static const char __pyx_k_receive_initial_metadata[] = "_receive_initial_metadata";
static const char __pyx_k_receive_status_on_client[] = "receive_status_on_client";
static const char __pyx_k_run_coroutine_threadsafe[] = "run_coroutine_threadsafe";
static const char __pyx_k_schedule_coro_threadsafe[] = "schedule_coro_threadsafe";
static const char __pyx_k_send_initial_metadata_op[] = "send_initial_metadata_op";
static const char __pyx_k_server_credentials_local[] = "server_credentials_local";
static const char __pyx_k_spawn_callback_in_thread[] = "_spawn_callback_in_thread";
static const char __pyx_k_ssl_target_name_override[] = "ssl_target_name_override";
static const char __pyx_k_watch_connectivity_state[] = "watch_connectivity_state";
static const char __pyx_k_AioCall___setstate_cython[] = "_AioCall.__setstate_cython__";
static const char __pyx_k_AioCall_add_done_callback[] = "_AioCall.add_done_callback";
static const char __pyx_k_AioServer___reduce_cython[] = "AioServer.__reduce_cython__";
static const char __pyx_k_AioServer_add_secure_port[] = "AioServer.add_secure_port";
static const char __pyx_k_CallState___reduce_cython[] = "_CallState.__reduce_cython__";
static const char __pyx_k_Call__custom_op_on_c_call[] = "Call._custom_op_on_c_call";
static const char __pyx_k_Channel___setstate_cython[] = "Channel.__setstate_cython__";
static const char __pyx_k_Non_thread_safe_operation[] = "Non-thread-safe operation";
static const char __pyx_k_Operation___reduce_cython[] = "Operation.__reduce_cython__";
static const char __pyx_k_SegregatedCall_next_event[] = "SegregatedCall.next_event";
static const char __pyx_k_SendMessageOperation_type[] = "SendMessageOperation.type";
static const char __pyx_k_Server_not_in_ready_state[] = "Server not in ready state";
static const char __pyx_k_ServicerContext_cancelled[] = "_ServicerContext.cancelled";
static const char __pyx_k_SyncServicerContext_abort[] = "_SyncServicerContext.abort";
static const char __pyx_k_Unsupported_engine_type_s[] = "Unsupported engine type [%s]";
static const char __pyx_k_block_if_fork_in_progress[] = "block_if_fork_in_progress";
static const char __pyx_k_certificate_configuration[] = "_certificate_configuration";
static const char __pyx_k_channel_credentials_local[] = "channel_credentials_local";
static const char __pyx_k_channelz_get_top_channels[] = "channelz_get_top_channels";
static const char __pyx_k_check_before_request_call[] = "check_before_request_call";
static const char __pyx_k_create_client_call_tracer[] = "create_client_call_tracer";
static const char __pyx_k_get_deadline_from_context[] = "get_deadline_from_context";
static const char __pyx_k_outbound_initial_metadata[] = "outbound_initial_metadata";
static const char __pyx_k_primary_user_agent_string[] = "primary_user_agent_string";
static const char __pyx_k_register_completion_queue[] = "register_completion_queue";
static const char __pyx_k_AioCall_send_receive_close[] = "_AioCall.send_receive_close";
static const char __pyx_k_AioCall_set_internal_error[] = "_AioCall.set_internal_error";
static const char __pyx_k_AioChannel___reduce_cython[] = "AioChannel.__reduce_cython__";
static const char __pyx_k_AioState___setstate_cython[] = "_AioState.__setstate_cython__";
static const char __pyx_k_CallHandle___reduce_cython[] = "CallHandle.__reduce_cython__";
static const char __pyx_k_ChannelArg___reduce_cython[] = "_ChannelArg.__reduce_cython__";
static const char __pyx_k_GRPC_ENABLE_FORK_SUPPORT_2[] = "GRPC_ENABLE_FORK_SUPPORT";
static const char __pyx_k_InsecureChannelCredentials[] = "InsecureChannelCredentials";
static const char __pyx_k_Internal_gRPC_call_error_d[] = "Internal gRPC call error %d. ";
static const char __pyx_k_NON_OK_CALL_REPRESENTATION[] = "_NON_OK_CALL_REPRESENTATION";
static const char __pyx_k_RPCState___setstate_cython[] = "RPCState.__setstate_cython__";
static const char __pyx_k_compression_algorithm_name[] = "compression_algorithm_name";
static const char __pyx_k_decrease_active_rpcs_count[] = "_decrease_active_rpcs_count";
static const char __pyx_k_fork_in_progress_condition[] = "fork_in_progress_condition";
static const char __pyx_k_get_registered_call_handle[] = "get_registered_call_handle";
static const char __pyx_k_max_receive_message_length[] = "max_receive_message_length";
static const char __pyx_k_pyx_unpickle_CensusContext[] = "__pyx_unpickle_CensusContext";
static const char __pyx_k_receive_initial_metadata_2[] = "receive_initial_metadata";
static const char __pyx_k_receive_serialized_message[] = "receive_serialized_message";
static const char __pyx_k_serving_task_crash_handler[] = "_serving_task_crash_handler";
static const char __pyx_k_set_census_context_on_call[] = "set_census_context_on_call";
static const char __pyx_k_ActiveThreadCount_decrement[] = "_ActiveThreadCount.decrement";
static const char __pyx_k_ActiveThreadCount_increment[] = "_ActiveThreadCount.increment";
static const char __pyx_k_AioServer___setstate_cython[] = "AioServer.__setstate_cython__";
static const char __pyx_k_AioServer__server_main_loop[] = "AioServer._server_main_loop";
static const char __pyx_k_AioServer_add_insecure_port[] = "AioServer.add_insecure_port";
static const char __pyx_k_CallDetails___reduce_cython[] = "CallDetails.__reduce_cython__";
static const char __pyx_k_CallState___setstate_cython[] = "_CallState.__setstate_cython__";
static const char __pyx_k_ChannelArgs___reduce_cython[] = "_ChannelArgs.__reduce_cython__";
static const char __pyx_k_CompositeChannelCredentials[] = "CompositeChannelCredentials";
static const char __pyx_k_ForkManagedThread_setDaemon[] = "ForkManagedThread.setDaemon";
static const char __pyx_k_GRPC_PROPAGATE_CANCELLATION[] = "GRPC_PROPAGATE_CANCELLATION";
static const char __pyx_k_Operation___setstate_cython[] = "Operation.__setstate_cython__";
static const char __pyx_k_ServicerContext_set_details[] = "_ServicerContext.set_details";
static const char __pyx_k_channelz_get_server_sockets[] = "channelz_get_server_sockets";
static const char __pyx_k_fork_handlers_and_grpc_init[] = "fork_handlers_and_grpc_init";
static const char __pyx_k_g_interrupt_check_period_ms[] = "g_interrupt_check_period_ms";
static const char __pyx_k_handle_status_once_received[] = "_handle_status_once_received";
static const char __pyx_k_insecure_server_credentials[] = "insecure_server_credentials";
static const char __pyx_k_receive_initial_metadata_op[] = "receive_initial_metadata_op";
static const char __pyx_k_receive_status_on_client_op[] = "receive_status_on_client_op";
static const char __pyx_k_secondary_user_agent_string[] = "secondary_user_agent_string";
static const char __pyx_k_AioCall_is_locally_cancelled[] = "_AioCall.is_locally_cancelled";
static const char __pyx_k_AioChannel___setstate_cython[] = "AioChannel.__setstate_cython__";
static const char __pyx_k_AioRpcStatus___reduce_cython[] = "AioRpcStatus.__reduce_cython__";
static const char __pyx_k_CallHandle___setstate_cython[] = "CallHandle.__setstate_cython__";
static const char __pyx_k_ChannelArg___setstate_cython[] = "_ChannelArg.__setstate_cython__";
static const char __pyx_k_ChannelState___reduce_cython[] = "_ChannelState.__reduce_cython__";
static const char __pyx_k_Expecting_non_ok_status_code[] = "Expecting non-ok status code.";
static const char __pyx_k_ReceiveMessageOperation_type[] = "ReceiveMessageOperation.type";
static const char __pyx_k_SendCloseFromClientOperation[] = "SendCloseFromClientOperation";
static const char __pyx_k_SendInitialMetadataOperation[] = "SendInitialMetadataOperation";
static const char __pyx_k_ServicerContext_auth_context[] = "_ServicerContext.auth_context";
static const char __pyx_k_SyncServicerContext_set_code[] = "_SyncServicerContext.set_code";
static const char __pyx_k_UNKNOWN_CANCELLATION_DETAILS[] = "_UNKNOWN_CANCELLATION_DETAILS";
static const char __pyx_k_async_generator_to_generator[] = "async_generator_to_generator";
static const char __pyx_k_channel_credentials_insecure[] = "channel_credentials_insecure";
static const char __pyx_k_enter_user_request_generator[] = "enter_user_request_generator";
static const char __pyx_k_fork_handler_registered_lock[] = "fork_handler_registered_lock";
static const char __pyx_k_generator_to_async_generator[] = "generator_to_async_generator";
static const char __pyx_k_get_metadata_locals_callback[] = "_get_metadata.<locals>.callback";
static const char __pyx_k_next_event_locals_on_failure[] = "next_event.<locals>.on_failure";
static const char __pyx_k_next_event_locals_on_success[] = "next_event.<locals>.on_success";
static const char __pyx_k_run_with_context_locals__run[] = "_run_with_context.<locals>._run";
static const char __pyx_k_shutdown_await_next_greenlet[] = "shutdown_await_next_greenlet";
static const char __pyx_k_AWAIT_THREADS_TIMEOUT_SECONDS[] = "_AWAIT_THREADS_TIMEOUT_SECONDS";
static const char __pyx_k_Abort_error_has_been_replaced[] = "Abort error has been replaced!";
static const char __pyx_k_AioCall_initiate_unary_stream[] = "_AioCall.initiate_unary_stream";
static const char __pyx_k_CallDetails___setstate_cython[] = "CallDetails.__setstate_cython__";
static const char __pyx_k_CensusContext___reduce_cython[] = "CensusContext.__reduce_cython__";
static const char __pyx_k_ChannelArgs___setstate_cython[] = "_ChannelArgs.__setstate_cython__";
static const char __pyx_k_Concurrent_RPC_limit_exceeded[] = "Concurrent RPC limit exceeded!";
static const char __pyx_k_MetadataPluginCallCredentials[] = "MetadataPluginCallCredentials";
static const char __pyx_k_ReceiveCloseOnServerOperation[] = "ReceiveCloseOnServerOperation";
static const char __pyx_k_SendStatusFromServerOperation[] = "SendStatusFromServerOperation";
static const char __pyx_k_handle_cancellation_from_core[] = "_handle_cancellation_from_core";
static const char __pyx_k_http2_initial_sequence_number[] = "http2_initial_sequence_number";
static const char __pyx_k_send_error_status_from_server[] = "_send_error_status_from_server";
static const char __pyx_k_server_certificate_config_ssl[] = "server_certificate_config_ssl";
static const char __pyx_k_the_server_hasn_t_started_yet[] = "the server hasn't started yet";
static const char __pyx_k_wait_for_ready_explicitly_set[] = "wait_for_ready_explicitly_set";
static const char __pyx_k_AioCall_initiate_stream_stream[] = "_AioCall.initiate_stream_stream";
static const char __pyx_k_AioRpcStatus___setstate_cython[] = "AioRpcStatus.__setstate_cython__";
static const char __pyx_k_AioRpcStatus_trailing_metadata[] = "AioRpcStatus.trailing_metadata";
static const char __pyx_k_AioServer__start_shutting_down[] = "AioServer._start_shutting_down";
static const char __pyx_k_AioServer_wait_for_termination[] = "AioServer.wait_for_termination";
static const char __pyx_k_BoundEventLoop___reduce_cython[] = "_BoundEventLoop.__reduce_cython__";
static const char __pyx_k_Cannot_monitor_channel_state_s[] = "Cannot monitor channel state: %s";
static const char __pyx_k_ChannelState___setstate_cython[] = "_ChannelState.__setstate_cython__";
static const char __pyx_k_CompletionQueue__internal_poll[] = "CompletionQueue._internal_poll";
static const char __pyx_k_ConcurrentRpcLimiter__decrease[] = "_ConcurrentRpcLimiter._decrease_active_rpcs_count";
static const char __pyx_k_Error_in_callback_for_method_s[] = "Error in callback for method [%s]";
static const char __pyx_k_GrpcArgWrapper___reduce_cython[] = "_GrpcArgWrapper.__reduce_cython__";
static const char __pyx_k_IntegratedCall___reduce_cython[] = "IntegratedCall.__reduce_cython__";
static const char __pyx_k_MessageReceiver__async_message[] = "_MessageReceiver._async_message_receiver";
static const char __pyx_k_Pyx_CFunc_1f6ebd__4grpc_7_cyth[] = "__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args.<locals>.wrap";
static const char __pyx_k_Pyx_CFunc_4grpc_7_cython_6cygr[] = "__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg.<locals>.wrap";
static const char __pyx_k_Pyx_CFunc_7f0cf6__4grpc_7_cyth[] = "__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_.<locals>.wrap";
static const char __pyx_k_ReceiveStatusOnClientOperation[] = "ReceiveStatusOnClientOperation";
static const char __pyx_k_RequestCallTag___reduce_cython[] = "_RequestCallTag.__reduce_cython__";
static const char __pyx_k_SegregatedCall___reduce_cython[] = "SegregatedCall.__reduce_cython__";
static const char __pyx_k_ServerCertificateConfiguration[] = "ServerCertificateConfiguration";
static const char __pyx_k_Server_request_registered_call[] = "Server.request_registered_call";
static const char __pyx_k_ServicerContext_time_remaining[] = "_ServicerContext.time_remaining";
static const char __pyx_k_SyncServicerContext___setstate[] = "_SyncServicerContext.__setstate_cython__";
static const char __pyx_k_SyncServicerContext_invocation[] = "_SyncServicerContext.invocation_metadata";
static const char __pyx_k_dealloc___called_on_running_se[] = "__dealloc__ called on running server %s with status %d";
static const char __pyx_k_gevent_decrement_channel_count[] = "gevent_decrement_channel_count";
static const char __pyx_k_gevent_increment_channel_count[] = "gevent_increment_channel_count";
static const char __pyx_k_grpc_completion_queue_shutdown[] = "grpc_completion_queue_shutdown";
static const char __pyx_k_pyx_unpickle_ChannelCredential[] = "__pyx_unpickle_ChannelCredentials";
static const char __pyx_k_pyx_unpickle_InsecureChannelCr[] = "__pyx_unpickle_InsecureChannelCredentials";
static const char __pyx_k_src_python_grpcio_grpc__cython[] = "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi";
static const char __pyx_k_the_server_has_already_started[] = "the server has already started";
static const char __pyx_k_ALTSChannelCredentials___reduce[] = "ALTSChannelCredentials.__reduce_cython__";
static const char __pyx_k_Aborting_method_s_due_to_server[] = "Aborting method [%s] due to server stop.";
static const char __pyx_k_ActiveThreadCount_await_zero_th[] = "_ActiveThreadCount.await_zero_threads";
static const char __pyx_k_AioCall__handle_status_once_rec[] = "_AioCall._handle_status_once_received";
static const char __pyx_k_AioCall_receive_serialized_mess[] = "_AioCall.receive_serialized_message";
static const char __pyx_k_AioCall_send_serialized_message[] = "_AioCall.send_serialized_message";
static const char __pyx_k_AioRpcStatus_debug_error_string[] = "AioRpcStatus.debug_error_string";
static const char __pyx_k_BatchOperationTag___reduce_cyth[] = "_BatchOperationTag.__reduce_cython__";
static const char __pyx_k_BatchOperationTag___setstate_cy[] = "_BatchOperationTag.__setstate_cython__";
static const char __pyx_k_BoundEventLoop___setstate_cytho[] = "_BoundEventLoop.__setstate_cython__";
static const char __pyx_k_COMPRESSION_METADATA_STRING_MAP[] = "_COMPRESSION_METADATA_STRING_MAPPING";
static const char __pyx_k_CallCredentials___reduce_cython[] = "CallCredentials.__reduce_cython__";
static const char __pyx_k_Call_credentials_are_only_valid[] = "Call credentials are only valid on secure channels";
static const char __pyx_k_CallbackFailureHandler___reduce[] = "CallbackFailureHandler.__reduce_cython__";
static const char __pyx_k_CallbackWrapper___reduce_cython[] = "CallbackWrapper.__reduce_cython__";
static const char __pyx_k_CensusContext___setstate_cython[] = "CensusContext.__setstate_cython__";
static const char __pyx_k_CompletionQueue___reduce_cython[] = "CompletionQueue.__reduce_cython__";
static const char __pyx_k_CompressionOptions_is_algorithm[] = "CompressionOptions.is_algorithm_enabled";
static const char __pyx_k_ComputeEngineChannelCredentials[] = "ComputeEngineChannelCredentials";
static const char __pyx_k_ConcurrentRpcLimiter___reduce_c[] = "_ConcurrentRpcLimiter.__reduce_cython__";
static const char __pyx_k_ConcurrentRpcLimiter___setstate[] = "_ConcurrentRpcLimiter.__setstate_cython__";
static const char __pyx_k_ConcurrentRpcLimiter_check_befo[] = "_ConcurrentRpcLimiter.check_before_request_call";
static const char __pyx_k_ConcurrentRpcLimiter_decrease_o[] = "_ConcurrentRpcLimiter.decrease_once_finished";
static const char __pyx_k_ConnectivityTag___reduce_cython[] = "_ConnectivityTag.__reduce_cython__";
static const char __pyx_k_ConnectivityTag___setstate_cyth[] = "_ConnectivityTag.__setstate_cython__";
static const char __pyx_k_Failed_to_get_the_server_please[] = "Failed to get the server, please ensure your server_id==%s is valid";
static const char __pyx_k_Failed_to_get_the_socket_please[] = "Failed to get the socket, please ensure your socket_id==%s is valid";
static const char __pyx_k_GrpcArgWrapper___setstate_cytho[] = "_GrpcArgWrapper.__setstate_cython__";
static const char __pyx_k_HandlerCallDetails___reduce_cyt[] = "_HandlerCallDetails.__reduce_cython__";
static const char __pyx_k_HandlerCallDetails___setstate_c[] = "_HandlerCallDetails.__setstate_cython__";
static const char __pyx_k_INTERNAL_CALL_ERROR_MESSAGE_FOR[] = "_INTERNAL_CALL_ERROR_MESSAGE_FORMAT";
static const char __pyx_k_MessageReceiver___reduce_cython[] = "_MessageReceiver.__reduce_cython__";
static const char __pyx_k_MessageReceiver___setstate_cyth[] = "_MessageReceiver.__setstate_cython__";
static const char __pyx_k_MetadataPluginCallCredentials_2[] = "MetadataPluginCallCredentials.__reduce_cython__";
static const char __pyx_k_MetadataPluginCallCredentials_3[] = "MetadataPluginCallCredentials.__setstate_cython__";
static const char __pyx_k_No_custom_hooks_are_implemented[] = "No custom hooks are implemented";
static const char __pyx_k_PollerCompletionQueue_bind_loop[] = "PollerCompletionQueue.bind_loop";
static const char __pyx_k_Raised_if_the_server_is_stopped[] = "Raised if the server is stopped.";
static const char __pyx_k_Raised_when_the_usage_of_API_by[] = "Raised when the usage of API by applications is inappropriate.\n\n    For example, trying to invoke RPC on a closed channel, mixing two styles\n    of streaming API on the client side. This exception should not be\n    suppressed.\n    ";
static const char __pyx_k_ReceiveCloseOnServerOperation_2[] = "ReceiveCloseOnServerOperation.__reduce_cython__";
static const char __pyx_k_ReceiveCloseOnServerOperation_3[] = "ReceiveCloseOnServerOperation.__setstate_cython__";
static const char __pyx_k_ReceiveInitialMetadataOperation[] = "ReceiveInitialMetadataOperation";
static const char __pyx_k_ReceiveMessageOperation_message[] = "ReceiveMessageOperation.message";
static const char __pyx_k_RequestCallTag___setstate_cytho[] = "_RequestCallTag.__setstate_cython__";
static const char __pyx_k_SendMessageOperation___setstate[] = "SendMessageOperation.__setstate_cython__";
static const char __pyx_k_SendStatusFromServerOperation_2[] = "SendStatusFromServerOperation.__reduce_cython__";
static const char __pyx_k_SendStatusFromServerOperation_3[] = "SendStatusFromServerOperation.__setstate_cython__";
static const char __pyx_k_ServerShutdownTag___reduce_cyth[] = "_ServerShutdownTag.__reduce_cython__";
static const char __pyx_k_ServerShutdownTag___setstate_cy[] = "_ServerShutdownTag.__setstate_cython__";
static const char __pyx_k_ServicerContext___reduce_cython[] = "_ServicerContext.__reduce_cython__";
static const char __pyx_k_ServicerContext___setstate_cyth[] = "_ServicerContext.__setstate_cython__";
static const char __pyx_k_ServicerContext_abort_with_stat[] = "_ServicerContext.abort_with_status";
static const char __pyx_k_ServicerContext_add_done_callba[] = "_ServicerContext.add_done_callback";
static const char __pyx_k_ServicerContext_disable_next_me[] = "_ServicerContext.disable_next_message_compression";
static const char __pyx_k_ServicerContext_invocation_meta[] = "_ServicerContext.invocation_metadata";
static const char __pyx_k_ServicerContext_peer_identities[] = "_ServicerContext.peer_identities";
static const char __pyx_k_ServicerContext_peer_identity_k[] = "_ServicerContext.peer_identity_key";
static const char __pyx_k_ServicerContext_send_initial_me[] = "_ServicerContext.send_initial_metadata";
static const char __pyx_k_ServicerContext_set_compression[] = "_ServicerContext.set_compression";
static const char __pyx_k_ServicerContext_set_trailing_me[] = "_ServicerContext.set_trailing_metadata";
static const char __pyx_k_ServicerContext_trailing_metada[] = "_ServicerContext.trailing_metadata";
static const char __pyx_k_SyncServicerContext___reduce_cy[] = "_SyncServicerContext.__reduce_cython__";
static const char __pyx_k_SyncServicerContext_add_callbac[] = "_SyncServicerContext.add_callback";
static const char __pyx_k_SyncServicerContext_auth_contex[] = "_SyncServicerContext.auth_context";
static const char __pyx_k_SyncServicerContext_disable_nex[] = "_SyncServicerContext.disable_next_message_compression";
static const char __pyx_k_SyncServicerContext_peer_identi[] = "_SyncServicerContext.peer_identities";
static const char __pyx_k_SyncServicerContext_send_initia[] = "_SyncServicerContext.send_initial_metadata";
static const char __pyx_k_SyncServicerContext_set_compres[] = "_SyncServicerContext.set_compression";
static const char __pyx_k_SyncServicerContext_set_details[] = "_SyncServicerContext.set_details";
static const char __pyx_k_SyncServicerContext_set_trailin[] = "_SyncServicerContext.set_trailing_metadata";
static const char __pyx_k_SyncServicerContext_time_remain[] = "_SyncServicerContext.time_remaining";
static const char __pyx_k_Tuple_Tuple_str_Union_str_bytes[] = "Tuple[Tuple[str, Union[str, bytes]]...]";
static const char __pyx_k_Unexpected_s_raised_by_servicer[] = "Unexpected [%s] raised by servicer method [%s]";
static const char __pyx_k_add_callback_handler_locals_han[] = "_add_callback_handler.<locals>.handle_callbacks";
static const char __pyx_k_find_method_handler_locals_quer[] = "_find_method_handler.<locals>.query_handlers";
static const char __pyx_k_finish_handler_with_stream_resp[] = "_finish_handler_with_stream_responses";
static const char __pyx_k_finish_handler_with_unary_respo[] = "_finish_handler_with_unary_response";
static const char __pyx_k_grpc_server_shutdown_and_notify[] = "grpc_server_shutdown_and_notify";
static const char __pyx_k_integrated_call_locals_on_succe[] = "_integrated_call.<locals>.on_success";
static const char __pyx_k_maybe_save_server_trace_context[] = "maybe_save_server_trace_context";
static const char __pyx_k_of_RPC_that_terminated_with_sta[] = "<{} of RPC that terminated with:\n\tstatus = {}\n\tdetails = \"{}\"\n>";
static const char __pyx_k_segregated_call_locals_on_succe[] = "_segregated_call.<locals>.on_success";
static const char __pyx_k_self__cq_cannot_be_converted_to[] = "self._cq cannot be converted to a Python object for pickling";
static const char __pyx_k_self_arg_cannot_be_converted_to[] = "self.arg cannot be converted to a Python object for pickling";
static const char __pyx_k_ALTSChannelCredentials___setstat[] = "ALTSChannelCredentials.__setstate_cython__";
static const char __pyx_k_Abort_error_unexpectedly_suppres[] = "Abort error unexpectedly suppressed: %s";
static const char __pyx_k_AioChannel_check_connectivity_st[] = "AioChannel.check_connectivity_state";
static const char __pyx_k_AioChannel_watch_connectivity_st[] = "AioChannel.watch_connectivity_state";
static const char __pyx_k_AioServer__serving_task_crash_ha[] = "AioServer._serving_task_crash_handler";
static const char __pyx_k_AioServer_add_generic_rpc_handle[] = "AioServer.add_generic_rpc_handlers";
static const char __pyx_k_BaseCompletionQueue___reduce_cyt[] = "BaseCompletionQueue.__reduce_cython__";
static const char __pyx_k_BaseCompletionQueue___setstate_c[] = "BaseCompletionQueue.__setstate_cython__";
static const char __pyx_k_BatchOperationEvent___reduce_cyt[] = "BatchOperationEvent.__reduce_cython__";
static const char __pyx_k_BatchOperationEvent___setstate_c[] = "BatchOperationEvent.__setstate_cython__";
static const char __pyx_k_Binary_metadata_key_s_expected_b[] = "Binary metadata key=\"%s\" expected bytes, got %s";
static const char __pyx_k_CYGRPC_STATUS_CODE_TO_STATUS_COD[] = "CYGRPC_STATUS_CODE_TO_STATUS_CODE";
static const char __pyx_k_CallCredentials___setstate_cytho[] = "CallCredentials.__setstate_cython__";
static const char __pyx_k_Call_credentials_may_not_be_NULL[] = "Call credentials may not be NULL.";
static const char __pyx_k_CallbackFailureHandler___setstat[] = "CallbackFailureHandler.__setstate_cython__";
static const char __pyx_k_CallbackWrapper___setstate_cytho[] = "CallbackWrapper.__setstate_cython__";
static const char __pyx_k_Cannot_invoke_RPC_on_closed_chan[] = "Cannot invoke RPC on closed channel!";
static const char __pyx_k_ChannelCredentials___reduce_cyth[] = "ChannelCredentials.__reduce_cython__";
static const char __pyx_k_ChannelCredentials___setstate_cy[] = "ChannelCredentials.__setstate_cython__";
static const char __pyx_k_Channel_check_connectivity_state[] = "Channel.check_connectivity_state";
static const char __pyx_k_Channel_get_registered_call_hand[] = "Channel.get_registered_call_handle";
static const char __pyx_k_Channel_watch_connectivity_state[] = "Channel.watch_connectivity_state";
static const char __pyx_k_CompletionQueue___setstate_cytho[] = "CompletionQueue.__setstate_cython__";
static const char __pyx_k_CompositeCallCredentials___reduc[] = "CompositeCallCredentials.__reduce_cython__";
static const char __pyx_k_CompositeCallCredentials___setst[] = "CompositeCallCredentials.__setstate_cython__";
static const char __pyx_k_CompositeChannelCredentials___re[] = "CompositeChannelCredentials.__reduce_cython__";
static const char __pyx_k_CompositeChannelCredentials___se[] = "CompositeChannelCredentials.__setstate_cython__";
static const char __pyx_k_CompressionOptions___reduce_cyth[] = "CompressionOptions.__reduce_cython__";
static const char __pyx_k_CompressionOptions___setstate_cy[] = "CompressionOptions.__setstate_cython__";
static const char __pyx_k_CompressionOptions_disable_algor[] = "CompressionOptions.disable_algorithm";
static const char __pyx_k_CompressionOptions_enable_algori[] = "CompressionOptions.enable_algorithm";
static const char __pyx_k_CompressionOptions_to_channel_ar[] = "CompressionOptions.to_channel_arg";
static const char __pyx_k_Compression_setting_must_be_spec[] = "Compression setting must be specified before sending initial metadata";
static const char __pyx_k_ConnectivityEvent___reduce_cytho[] = "ConnectivityEvent.__reduce_cython__";
static const char __pyx_k_ConnectivityEvent___setstate_cyt[] = "ConnectivityEvent.__setstate_cython__";
static const char __pyx_k_Core_should_not_return_GRPC_QUEU[] = "Core should not return GRPC_QUEUE_TIMEOUT!";
static const char __pyx_k_Credentials_couldn_t_have_been_s[] = "Credentials couldn't have been set: {0}";
static const char __pyx_k_Dedicated_exception_class_for_wa[] = "Dedicated exception class for watch connectivity failed.\n\n    It might be failed due to deadline exceeded.\n    ";
static const char __pyx_k_Error_fetching_certificate_confi[] = "Error fetching certificate config";
static const char __pyx_k_Error_in_grpc_server_request_cal[] = "Error in grpc_server_request_call: %s";
static const char __pyx_k_Error_in_grpc_server_request_reg[] = "Error in grpc_server_request_registered_call: %s";
static const char __pyx_k_Exception_not_handled_by__handle[] = "Exception not handled by _handle_exceptions in servicer method [%s]";
static const char __pyx_k_ExecuteBatchError_raised_in_core[] = "ExecuteBatchError raised in core by servicer method [%s]";
static const char __pyx_k_Exiting_child_due_to_raised_exce[] = "Exiting child due to raised exception";
static const char __pyx_k_Expected_bytes_str_or_unicode_no[] = "Expected bytes, str, or unicode, not {}";
static const char __pyx_k_Expected_int_bytes_or_behavior_g[] = "Expected int, bytes, or behavior, got {}";
static const char __pyx_k_Failed_grpc_call_start_batch_wit[] = "Failed grpc_call_start_batch: {} with grpc_call_error value: '{}'";
static const char __pyx_k_Failed_sending_error_status_from[] = "Failed sending error status from server";
static const char __pyx_k_Failed_to_get_server_sockets_ple[] = "Failed to get server sockets, please ensure your server_id==%s and start_socket_id==%s and max_results==%s is valid";
static const char __pyx_k_Failed_to_get_servers_please_ens[] = "Failed to get servers, please ensure your start_server_id==%s is valid";
static const char __pyx_k_Failed_to_get_the_channel_please[] = "Failed to get the channel, please ensure your channel_id==%s is valid";
static const char __pyx_k_Failed_to_get_the_subchannel_ple[] = "Failed to get the subchannel, please ensure your subchannel_id==%s is valid";
static const char __pyx_k_Failed_to_get_top_channels_pleas[] = "Failed to get top channels, please ensure your start_channel_id==%s is valid";
static const char __pyx_k_Failed_to_receive_any_message_fr[] = "Failed to receive any message from Core";
static const char __pyx_k_Failed_to_shutdown_gRPC_Core_aft[] = "Failed to shutdown gRPC Core after fork()";
static const char __pyx_k_Failed_to_shutdown_gRPC_Python_t[] = "Failed to shutdown gRPC Python threads prior to fork. Behavior after fork will be undefined.";
static const char __pyx_k_ForkManagedThread___init___local[] = "ForkManagedThread.__init__.<locals>.managed_target";
static const char __pyx_k_GRPC_COMPRESSION_CHANNEL_DEFAULT[] = "GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM";
static const char __pyx_k_GRPC_COMPRESSION_REQUEST_ALGORIT[] = "GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY";
static const char __pyx_k_GRPC_PROPAGATE_CENSUS_STATS_CONT[] = "GRPC_PROPAGATE_CENSUS_STATS_CONTEXT";
static const char __pyx_k_GRPC_PROPAGATE_CENSUS_TRACING_CO[] = "GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0[] = "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())";
static const char __pyx_k_InsecureChannelCredentials___red[] = "InsecureChannelCredentials.__reduce_cython__";
static const char __pyx_k_InsecureChannelCredentials___set[] = "InsecureChannelCredentials.__setstate_cython__";
static const char __pyx_k_IntegratedCall___setstate_cython[] = "IntegratedCall.__setstate_cython__";
static const char __pyx_k_Invalid_trailing_metadata_type_e[] = "Invalid trailing metadata type, expected ";
static const char __pyx_k_LocalChannelCredentials___reduce[] = "LocalChannelCredentials.__reduce_cython__";
static const char __pyx_k_LocalChannelCredentials___setsta[] = "LocalChannelCredentials.__setstate_cython__";
static const char __pyx_k_Please_report_to_https_github_co[] = "Please report to https://github.com/grpc/grpc/issues";
static const char __pyx_k_PollerCompletionQueue___reduce_c[] = "PollerCompletionQueue.__reduce_cython__";
static const char __pyx_k_PollerCompletionQueue___setstate[] = "PollerCompletionQueue.__setstate_cython__";
static const char __pyx_k_PollerCompletionQueue__handle_ev[] = "PollerCompletionQueue._handle_events";
static const char __pyx_k_PollerCompletionQueue__poll_wrap[] = "PollerCompletionQueue._poll_wrapper";
static const char __pyx_k_Pyx_CFunc_4grpc_7_cython_6cygr_2[] = "__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_.<locals>.wrap";
static const char __pyx_k_RPC_cancelled_for_servicer_metho[] = "RPC cancelled for servicer method [%s]";
static const char __pyx_k_RPC_cancelled_for_unknown_reason[] = "RPC cancelled for unknown reason.";
static const char __pyx_k_Raised_upon_unexpected_errors_in[] = "Raised upon unexpected errors in native code.";
static const char __pyx_k_Raised_when_calling_abort_in_ser[] = "Raised when calling abort in servicer methods.\n\n    This exception should not be suppressed. Applications may catch it to\n    perform certain clean-up logic, and then re-raise it.\n    ";
static const char __pyx_k_Raised_when_execute_batch_return[] = "Raised when execute batch returns a failure from Core.";
static const char __pyx_k_ReceiveCloseOnServerOperation_ca[] = "ReceiveCloseOnServerOperation.cancelled";
static const char __pyx_k_ReceiveCloseOnServerOperation_ty[] = "ReceiveCloseOnServerOperation.type";
static const char __pyx_k_ReceiveMessageOperation___reduce[] = "ReceiveMessageOperation.__reduce_cython__";
static const char __pyx_k_ReceiveMessageOperation___setsta[] = "ReceiveMessageOperation.__setstate_cython__";
static const char __pyx_k_ReceiveStatusOnClientOperation_2[] = "ReceiveStatusOnClientOperation.__reduce_cython__";
static const char __pyx_k_ReceiveStatusOnClientOperation_3[] = "ReceiveStatusOnClientOperation.__setstate_cython__";
static const char __pyx_k_ReceiveStatusOnClientOperation_c[] = "ReceiveStatusOnClientOperation.code";
static const char __pyx_k_ReceiveStatusOnClientOperation_d[] = "ReceiveStatusOnClientOperation.details";
static const char __pyx_k_ReceiveStatusOnClientOperation_e[] = "ReceiveStatusOnClientOperation.error_string";
static const char __pyx_k_ReceiveStatusOnClientOperation_t[] = "ReceiveStatusOnClientOperation.type";
static const char __pyx_k_RegisteredMethod___reduce_cython[] = "RegisteredMethod.__reduce_cython__";
static const char __pyx_k_RegisteredMethod___setstate_cyth[] = "RegisteredMethod.__setstate_cython__";
static const char __pyx_k_RequestCallEvent___reduce_cython[] = "RequestCallEvent.__reduce_cython__";
static const char __pyx_k_RequestCallEvent___setstate_cyth[] = "RequestCallEvent.__setstate_cython__";
static const char __pyx_k_SSLChannelCredentials___reduce_c[] = "SSLChannelCredentials.__reduce_cython__";
static const char __pyx_k_SSLChannelCredentials___setstate[] = "SSLChannelCredentials.__setstate_cython__";
static const char __pyx_k_SSLSessionCacheLRU___reduce_cyth[] = "SSLSessionCacheLRU.__reduce_cython__";
static const char __pyx_k_SSLSessionCacheLRU___setstate_cy[] = "SSLSessionCacheLRU.__setstate_cython__";
static const char __pyx_k_SegregatedCall___setstate_cython[] = "SegregatedCall.__setstate_cython__";
static const char __pyx_k_SendCloseFromClientOperation___r[] = "SendCloseFromClientOperation.__reduce_cython__";
static const char __pyx_k_SendCloseFromClientOperation___s[] = "SendCloseFromClientOperation.__setstate_cython__";
static const char __pyx_k_SendCloseFromClientOperation_typ[] = "SendCloseFromClientOperation.type";
static const char __pyx_k_SendInitialMetadataOperation___r[] = "SendInitialMetadataOperation.__reduce_cython__";
static const char __pyx_k_SendInitialMetadataOperation___s[] = "SendInitialMetadataOperation.__setstate_cython__";
static const char __pyx_k_SendInitialMetadataOperation_typ[] = "SendInitialMetadataOperation.type";
static const char __pyx_k_SendMessageOperation___reduce_cy[] = "SendMessageOperation.__reduce_cython__";
static const char __pyx_k_SendStatusFromServerOperation_ty[] = "SendStatusFromServerOperation.type";
static const char __pyx_k_Send_initial_metadata_failed_alr[] = "Send initial metadata failed: already sent";
static const char __pyx_k_ServerCertificateConfig___reduce[] = "ServerCertificateConfig.__reduce_cython__";
static const char __pyx_k_ServerCertificateConfig___setsta[] = "ServerCertificateConfig.__setstate_cython__";
static const char __pyx_k_ServerCredentials___reduce_cytho[] = "ServerCredentials.__reduce_cython__";
static const char __pyx_k_ServerCredentials___setstate_cyt[] = "ServerCredentials.__setstate_cython__";
static const char __pyx_k_ServerShutdownEvent___reduce_cyt[] = "ServerShutdownEvent.__reduce_cython__";
static const char __pyx_k_ServerShutdownEvent___setstate_c[] = "ServerShutdownEvent.__setstate_cython__";
static const char __pyx_k_Server_register_completion_queue[] = "Server.register_completion_queue";
static const char __pyx_k_Server_shutdown_failed_no_comple[] = "Server shutdown failed: no completion queue.";
static const char __pyx_k_SslPemKeyCertPair___reduce_cytho[] = "SslPemKeyCertPair.__reduce_cython__";
static const char __pyx_k_SslPemKeyCertPair___setstate_cyt[] = "SslPemKeyCertPair.__setstate_cython__";
static const char __pyx_k_The_base_class_for_exceptions_ge[] = "The base class for exceptions generated by gRPC AsyncIO stack.";
static const char __pyx_k_XDSChannelCredentials___reduce_c[] = "XDSChannelCredentials.__reduce_cython__";
static const char __pyx_k_XDSChannelCredentials___setstate[] = "XDSChannelCredentials.__setstate_cython__";
static const char __pyx_k_cannot_register_completion_queue[] = "cannot register completion queues after start";
static const char __pyx_k_cert_config_fetcher_must_be_call[] = "cert_config_fetcher must be callable";
static const char __pyx_k_channel_credentials_compute_engi[] = "channel_credentials_compute_engine";
static const char __pyx_k_clear_server_call_tracer_factory[] = "clear_server_call_tracer_factory";
static const char __pyx_k_create_server_call_tracer_factor[] = "create_server_call_tracer_factory";
static const char __pyx_k_disable_next_message_compression[] = "disable_next_message_compression";
static const char __pyx_k_expected_certificate_to_be_bytes[] = "expected certificate to be bytes, got %s";
static const char __pyx_k_expected_pem_key_cert_pairs_to_b[] = "expected pem_key_cert_pairs to be sequence of SslPemKeyCertPair";
static const char __pyx_k_expected_registered_completion_q[] = "expected registered completion queue";
static const char __pyx_k_generator_to_async_generator_loc[] = "generator_to_async_generator.<locals>.yield_to_queue";
static const char __pyx_k_get_server_call_tracer_factory_a[] = "get_server_call_tracer_factory_address";
static const char __pyx_k_grpc_python__cygrpc__GrpcArgWrap[] = "grpc.python._cygrpc._GrpcArgWrapper";
static const char __pyx_k_if_error_code_is_specified_so_mu[] = "if error_code is specified, so must details (and vice-versa)";
static const char __pyx_k_initial_cert_config_must_be_a_gr[] = "initial_cert_config must be a grpc.ServerCertificateConfiguration";
static const char __pyx_k_install_context_from_request_cal[] = "install_context_from_request_call_event_aio";
static const char __pyx_k_internal_error_user_data_must_be[] = "internal error: user_data must be specified";
static const char __pyx_k_invalid_call_object_cannot_be_us[] = "invalid call object cannot be used from Python";
static const char __pyx_k_maximum_concurrent_rpcs_should_b[] = "maximum_concurrent_rpcs should be a postive integer";
static const char __pyx_k_next_call_event_locals_on_succes[] = "next_call_event.<locals>.on_success";
static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
static const char __pyx_k_queue_must_be_shutting_down_to_b[] = "queue must be shutting down to be cleared";
static const char __pyx_k_raise_if_not_valid_trailing_meta[] = "raise_if_not_valid_trailing_metadata";
static const char __pyx_k_return_from_user_request_generat[] = "return_from_user_request_generator";
static const char __pyx_k_self_c_argument_cannot_be_conver[] = "self.c_argument cannot be converted to a Python object for pickling";
static const char __pyx_k_self_c_credentials_cannot_be_con[] = "self.c_credentials cannot be converted to a Python object for pickling";
static const char __pyx_k_self_c_op_cannot_be_converted_to[] = "self.c_op cannot be converted to a Python object for pickling";
static const char __pyx_k_server_credentials_ssl_dynamic_c[] = "server_credentials_ssl_dynamic_cert_config";
static const char __pyx_k_server_must_be_started_and_not_s[] = "server must be started and not shutting down";
static const char __pyx_k_server_queue_must_be_a_registere[] = "server_queue must be a registered completion queue";
static const char __pyx_k_set_instrumentation_context_on_c[] = "set_instrumentation_context_on_call_aio";
static const char __pyx_k_src_python_grpcio_grpc__cython_2[] = "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_3[] = "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_4[] = "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_5[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_6[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_7[] = "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_8[] = "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_9[] = "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi";
static const char __pyx_k_the_server_must_be_shutting_down[] = "the server must be shutting down to cancel all calls";
static const char __pyx_k_ComputeEngineChannelCredentials_2[] = "ComputeEngineChannelCredentials.__reduce_cython__";
static const char __pyx_k_ComputeEngineChannelCredentials_3[] = "ComputeEngineChannelCredentials.__setstate_cython__";
static const char __pyx_k_ReceiveInitialMetadataOperation_2[] = "ReceiveInitialMetadataOperation.type";
static const char __pyx_k_ReceiveInitialMetadataOperation_3[] = "ReceiveInitialMetadataOperation.initial_metadata";
static const char __pyx_k_ReceiveInitialMetadataOperation_4[] = "ReceiveInitialMetadataOperation.__reduce_cython__";
static const char __pyx_k_ReceiveInitialMetadataOperation_5[] = "ReceiveInitialMetadataOperation.__setstate_cython__";
static const char __pyx_k_SyncServicerContext_peer_identi_2[] = "_SyncServicerContext.peer_identity_key";
static const char __pyx_k_of_RPC_that_terminated_with_sta_2[] = "<{} of RPC that terminated with:\n\tstatus = {}\n\tdetails = \"{}\"\n\tdebug_error_string = \"{}\"\n>";
static const char __pyx_k_src_python_grpcio_grpc__cython_10[] = "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_11[] = "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_12[] = "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_13[] = "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_14[] = "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_15[] = "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_16[] = "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_17[] = "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_18[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_19[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_20[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_21[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_22[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_23[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi";
static const char __pyx_k_Error_fetching_certificate_confi_2[] = "Error fetching certificate configuration: certificate configuration must be of type grpc.ServerCertificateConfiguration, not %s";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_2[] = "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))";
static const char __pyx_k_ReceiveStatusOnClientOperation_t_2[] = "ReceiveStatusOnClientOperation.trailing_metadata";
static const char __pyx_k_install_context_from_request_cal_2[] = "install_context_from_request_call_event";
/* #### Code section: decls ### */
static PyObject *__pyx_pf_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_wrap(PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *__pyx_v_latent_event_arg); /* proto */
static PyObject *__pyx_pf_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__wrap(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_wrap(PyObject *__pyx_self, PyObject *__pyx_v_cb, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__wrap(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11_ChannelArg___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11_ChannelArg_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self, PyObject *__pyx_v_arguments); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_10_arguments___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_11_references___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_4Call___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_2_start_batch(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag, PyObject *__pyx_v_retain_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_4start_client_batch(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_6start_server_batch(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_8cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, grpc_status_code __pyx_v_error_code, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_10set_credentials(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_credentials); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_12peer(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_4Call_14__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_8is_valid___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_16_custom_op_on_c_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, int __pyx_v_op); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_18__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_20__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_10_CallState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10_CallState_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10_CallState_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_self, PyObject *__pyx_v_target); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, PyObject *__pyx_v_method); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_11call_handle___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_2operate(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_4cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_integrated_call_on_success(PyObject *__pyx_self, PyObject *__pyx_v_started_tags); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_2operate(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_4cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_on_success(PyObject *__pyx_self, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_2on_failure(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_6next_event(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_segregated_call_on_success(PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_started_tags); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_7Channel___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_arguments, struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_channel_credentials); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_2target(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_4integrated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, int __pyx_v_flags, PyObject *__pyx_v_method, PyObject *__pyx_v_host, PyObject *__pyx_v_deadline, PyObject *__pyx_v_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials, PyObject *__pyx_v_operationses_and_tags, PyObject *__pyx_v_context, PyObject *__pyx_v_registered_call_handle); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_on_success(PyObject *__pyx_self, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_6next_call_event(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_8segregated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, int __pyx_v_flags, PyObject *__pyx_v_method, PyObject *__pyx_v_host, PyObject *__pyx_v_deadline, PyObject *__pyx_v_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials, PyObject *__pyx_v_operationses_and_tags, PyObject *__pyx_v_context, PyObject *__pyx_v_registered_call_handle); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_10check_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, int __pyx_v_try_to_connect); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_12watch_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, grpc_connectivity_state __pyx_v_last_observed_state, PyObject *__pyx_v_deadline); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_14close(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_16close_on_fork(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_18get_registered_call_handle(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_method); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_20__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_22__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_channelz_get_top_channels(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_start_channel_id); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_2channelz_get_servers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_start_server_id); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4channelz_get_server(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_server_id); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6channelz_get_server_sockets(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_server_id, PyObject *__pyx_v_start_socket_id, PyObject *__pyx_v_max_results); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8channelz_get_channel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_channel_id); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10channelz_get_subchannel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_subchannel_id); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12channelz_get_socket(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_socket_id); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14dump_xds_configs(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_spawn_callback_in_thread(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cb_func, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18set_async_callback_func(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_callback_func); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_spawn_callback_async(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_callback, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallCredentials___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallCredentials_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13_get_metadata_callback(PyObject *__pyx_self, PyObject *__pyx_v_metadata, grpc_status_code __pyx_v_status, PyObject *__pyx_v_error_details); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self, PyObject *__pyx_v_metadata_plugin, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_16_metadata_plugin___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5_name___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self, PyObject *__pyx_v_call_credentialses); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_19_call_credentialses___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18ChannelCredentials___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18ChannelCredentials_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self, PyObject *__pyx_v_capacity); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_2__int__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_4__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self, PyObject *__pyx_v_pem_root_certificates, PyObject *__pyx_v_private_key, PyObject *__pyx_v_certificate_chain); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_22_pem_root_certificates___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_12_private_key___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_18_certificate_chain___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self, PyObject *__pyx_v_call_credentialses, PyObject *__pyx_v_channel_credentials); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_19_call_credentialses___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_20_channel_credentials___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self, PyObject *__pyx_v_fallback_credentials); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_21_fallback_credentials___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22server_credentials_ssl(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pem_root_certs, PyObject *__pyx_v_pem_key_cert_pairs, int __pyx_v_force_client_auth); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24server_certificate_config_ssl(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pem_root_certs, PyObject *__pyx_v_pem_key_cert_pairs); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_26server_credentials_ssl_dynamic_cert_config(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_initial_cert_config, PyObject *__pyx_v_cert_config_fetcher, int __pyx_v_force_client_auth); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self, grpc_local_connect_type __pyx_v_local_connect_type); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28channel_credentials_local(CYTHON_UNUSED PyObject *__pyx_self, grpc_local_connect_type __pyx_v_local_connect_type); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30channel_credentials_insecure(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_32server_credentials_local(CYTHON_UNUSED PyObject *__pyx_self, grpc_local_connect_type __pyx_v_local_connect_type); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_34xds_server_credentials(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_fallback_credentials); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_36insecure_server_credentials(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self, PyObject *__pyx_v_service_accounts); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_38channel_credentials_alts(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_service_accounts); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_40server_credentials_alts(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_creds); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_42channel_credentials_compute_engine(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_call_creds); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, PyObject *__pyx_v_shutdown_cq); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_2_internal_poll(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, PyObject *__pyx_v_deadline); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_4poll(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, PyObject *__pyx_v_deadline); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_6shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_8clear(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_10__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_12__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_14__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_call_details, PyObject *__pyx_v_invocation_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_4call___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_12call_details___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_19invocation_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag, PyObject *__pyx_v_batch_operations); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_16batch_operations___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9_metadata_genexpr(PyObject *__pyx_self, size_t __pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9Operation___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9Operation_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self, PyObject *__pyx_v_initial_metadata, PyObject *__pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_17_initial_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self, PyObject *__pyx_v_message, int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_8_message___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self, int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self, PyObject *__pyx_v_trailing_metadata, PyObject *__pyx_v_code, PyObject *__pyx_v_details, int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_18_trailing_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5_code___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_8_details___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self, PyObject *__pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_4initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self, PyObject *__pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_4message(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self, PyObject *__pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_4trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6code(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_8details(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_10error_string(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_12__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_14__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self, PyObject *__pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_4cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_6method___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_4host___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_8deadline___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self, PyObject *__pyx_v_private_key, PyObject *__pyx_v_certificate_chain); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_11private_key___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_17certificate_chain___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_2enable_algorithm(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, grpc_compression_algorithm __pyx_v_algorithm); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_4disable_algorithm(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, grpc_compression_algorithm __pyx_v_algorithm); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_6is_algorithm_enabled(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, grpc_compression_algorithm __pyx_v_algorithm); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_8to_channel_arg(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_44compression_algorithm_name(CYTHON_UNUSED PyObject *__pyx_self, grpc_compression_algorithm __pyx_v_algorithm); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_46reset_grpc_config_vars(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_48peer_identities(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_50peer_identity_key(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_52auth_context(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self, PyObject *__pyx_v_method, __pyx_t_4grpc_7_cython_6cygrpc_uintptr_t __pyx_v_server); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_6Server___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_arguments, int __pyx_v_xds); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_2request_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_4request_registered_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue, PyObject *__pyx_v_method, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_6register_completion_queue(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_8register_method(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_fully_qualified_method); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_10start(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_backup_queue); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_12add_http2_port(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_address, struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_server_credentials); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_14shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_16cancel_all_calls(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_18destroy(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_6Server_20__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_22__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_24__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_Tag___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_Tag_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, PyObject *__pyx_v_user_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_9_user_tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, PyObject *__pyx_v_user_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_9_user_tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, PyObject *__pyx_v_user_tag, PyObject *__pyx_v_operations, PyObject *__pyx_v_call); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_11_operations___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_14_retained_call___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, PyObject *__pyx_v_user_tag, PyObject *__pyx_v_shutting_down_server); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_9_user_tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_21_shutting_down_server___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_54install_context_from_request_call_event(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_event); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_56install_context_from_request_call_event_aio(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_event); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_58uninstall_context(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_60build_census_context(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13CensusContext___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13CensusContext_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_62set_census_context_on_call(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_census_ctx); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_64set_instrumentation_context_on_call_aio(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_call_state, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_census_ctx); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_66get_deadline_from_context(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_68get_server_call_tracer_factory_address(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_observability_plugin, int __pyx_v_xds); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_70clear_server_call_tracer_factory(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_72maybe_save_server_trace_context(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_event); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_74gevent_increment_channel_count(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_76gevent_decrement_channel_count(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_78spawn_greenlets(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_80run_spawn_greenlets(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_82shutdown_await_next_greenlet(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_84init_grpc_gevent(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_86_contextvars_supported(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_88_run_with_context(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_target); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17_run_with_context__run(PyObject *__pyx_self, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_90_run_with_context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_target); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17_run_with_context_2_run(PyObject *__pyx_self, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_92_run_with_context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_target); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_94fork_handlers_and_grpc_init(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___managed_target(PyObject *__pyx_self, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_2setDaemon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_daemonic); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_4start(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_6join(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_96block_if_fork_in_progress(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_postfork_state_to_reset); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_98enter_user_request_generator(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_100return_from_user_request_generator(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_102get_fork_epoch(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_104is_fork_support_enabled(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_106fork_register_channel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_channel); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_108fork_unregister_channel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_channel); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_2increment(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_4decrement(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_6await_zero_threads(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_timeout_secs); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10_ForkState___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF___bool__(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_2__len__(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_4_repr(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_6__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_8__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_110schedule_coro_threadsafe(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_coro, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_112async_generator_to_generator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_agen, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_115generator_to_async_generator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen, PyObject *__pyx_v_loop, PyObject *__pyx_v_thread_pool); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28generator_to_async_generator_yield_to_queue(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_118get_working_loop(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_120get_working_loop(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_122raise_if_not_valid_trailing_metadata(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_metadata); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, grpc_status_code __pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata, PyObject *__pyx_v_debug_error_string); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_2code(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_4details(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_6trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_8debug_error_string(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_5_code___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_8_details___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_18_trailing_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_19_debug_error_string___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_124_handle_callback_wrapper(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_callback_wrapper, int __pyx_v_success); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BaseCompletionQueue___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self, PyObject *__pyx_v_loop, PyObject *__pyx_v_read_socket, PyObject *__pyx_v_handler); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_2close(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4loop___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_11read_socket___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_2bind_loop(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_4_poll_wrapper(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_6_handle_events(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self, PyObject *__pyx_v_context_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self, PyObject *__pyx_v_core_function_name, PyObject *__pyx_v_error_details, PyObject *__pyx_v_exception_type); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self, PyObject *__pyx_v_future, PyObject *__pyx_v_loop, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_failure_handler); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_126execute_batch(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_operations, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_129_receive_message(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_132_send_message(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_message, struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op, int __pyx_v_write_flag, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_135_send_initial_metadata(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_metadata, int __pyx_v_flags, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_138_receive_initial_metadata(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_141_send_error_status_from_server(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, grpc_status_code __pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op, PyObject *__pyx_v_loop); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_9_AioState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9_AioState_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9_AioState_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_144_grpc_shutdown_wrapper(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v__); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_146init_grpc_aio(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_148shutdown_grpc_aio(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_channel, PyObject *__pyx_v_deadline, PyObject *__pyx_v_method, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_credentials, PyObject *__pyx_v_wait_for_ready); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_4_repr(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_6__repr__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_8__str__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_10add_done_callback(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_callback); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_12time_remaining(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_14cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_16done(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_18cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_20status(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_23is_ok(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_25initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_28is_locally_cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_30set_internal_error(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_error_str); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_32unary_unary(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_request, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_35_handle_status_once_received(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_38receive_serialized_message(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_41send_serialized_message(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_message); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_44send_receive_close(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_47initiate_unary_stream(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_request, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_50stream_unary(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_metadata_sent_observer, PyObject *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_53initiate_stream_stream(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_metadata_sent_observer, PyObject *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_8_channel___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_7_status___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_17_initial_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_56__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_58__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_options, struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_credentials, PyObject *__pyx_v_loop); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_2__dealloc__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_4__repr__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_6check_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, int __pyx_v_try_to_connect); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_8watch_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, grpc_connectivity_state __pyx_v_last_observed_state, PyObject *__pyx_v_deadline); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_11closing(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_13close(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_15closed(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_17call(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, PyObject *__pyx_v_method, PyObject *__pyx_v_deadline, PyObject *__pyx_v_python_call_credentials, PyObject *__pyx_v_wait_for_ready); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_19__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_21__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self, PyObject *__pyx_v_method, PyObject *__pyx_v_invocation_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_6method___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_19invocation_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_server); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_request_deserializer, PyObject *__pyx_v_response_serializer, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_2read(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_5write(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_message); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_8send_initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_11abort(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_14abort_with_status(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_status); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_17set_trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_19trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_21invocation_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_23set_code(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_code); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_25code(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_27set_details(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_29details(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_31set_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_compression); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_33disable_next_message_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_35peer(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_37peer_identities(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_39peer_identity_key(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_41auth_context(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_43time_remaining(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_45add_done_callback(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_callback); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_47done(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_49cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_51__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_53__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_2abort(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_4send_initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_6set_trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_8invocation_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_10set_code(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_code); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_12set_details(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_14set_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_compression); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_16disable_next_message_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_18add_callback(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_callback); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_20peer(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_22peer_identities(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_24peer_identity_key(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_26auth_context(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_28time_remaining(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_30__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_32__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_150_run_interceptor(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_interceptors, PyObject *__pyx_v_query_handler, PyObject *__pyx_v_handler_call_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_153_is_async_handler(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_handler); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_155_find_method_handler(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method, PyObject *__pyx_v_metadata, PyObject *__pyx_v_generic_handlers, PyObject *__pyx_v_interceptors); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_find_method_handler_query_handlers(PyObject *__pyx_self, PyObject *__pyx_v_handler_call_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_158_finish_handler_with_unary_response(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_unary_handler, PyObject *__pyx_v_request, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context, PyObject *__pyx_v_response_serializer, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_161_finish_handler_with_stream_responses(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_stream_handler, PyObject *__pyx_v_request, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_164_handle_unary_unary_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_167_handle_unary_stream_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_2_async_message_receiver(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_5__aiter__(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_7__anext__(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_170_handle_stream_unary_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_173_handle_stream_stream_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_176_handle_exceptions(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_rpc_coro, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_add_callback_handler_handle_callbacks(PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_unused_task); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_179_handle_cancellation_from_core(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_rpc_task, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_182_schedule_rpc_coro(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_rpc_coro, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_185_handle_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_generic_handlers, PyObject *__pyx_v_interceptors, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop, int __pyx_v_concurrency_exceeded); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, int __pyx_v_maximum_concurrent_rpcs); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_2check_before_request_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_4_decrease_active_rpcs_count(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_unused_future); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_6decrease_once_finished(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, PyObject *__pyx_v_rpc_task); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer___init__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_loop, PyObject *__pyx_v_thread_pool, PyObject *__pyx_v_generic_handlers, PyObject *__pyx_v_interceptors, PyObject *__pyx_v_options, PyObject *__pyx_v_maximum_concurrent_rpcs); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_2add_generic_rpc_handlers(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_generic_rpc_handlers); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_4add_insecure_port(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_address); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_6add_secure_port(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_address, PyObject *__pyx_v_server_credentials); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_8_request_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_11_server_main_loop(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_server_started); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_14_serving_task_crash_handler(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_task); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_16start(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_19_start_shutting_down(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_22shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_grace); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_25wait_for_termination(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_timeout); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_28__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_30is_running(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_32__reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_34__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_188__pyx_unpickle_ChannelCredentials(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_190__pyx_unpickle_InsecureChannelCredentials(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_192__pyx_unpickle__Tag(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_194__pyx_unpickle_CensusContext(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_196__pyx_unpickle_AioServer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArg(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArgs(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Call(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__CallState(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelState(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_IntegratedCall(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SegregatedCall(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Channel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallHandle(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeCallCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SSLChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_XDSChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCertificateConfig(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_LocalChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ALTSChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__LatentEventArg(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompletionQueue(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ConnectivityEvent(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_RequestCallEvent(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_BatchOperationEvent(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerShutdownEvent(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendMessageOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveMessageOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallDetails(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SslPemKeyCertPair(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompressionOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Server(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_RegisteredMethod(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__Tag(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ConnectivityTag(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__RequestCallTag(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__BatchOperationTag(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ServerShutdownTag(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_BaseCompletionQueue(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__BoundEventLoop(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_PollerCompletionQueue(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_AioRpcStatus(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__AioState(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackFailureHandler(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackWrapper(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_GrpcCallWrapper(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__AioCall(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_AioChannel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__HandlerCallDetails(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_RPCState(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ServicerContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__SyncServicerContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__MessageReceiver(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_AioServer(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__GrpcArgWrapper(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_InsecureChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CensusContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_get = {0, 0, 0, 0, 0};
static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_keys = {0, 0, 0, 0, 0};
static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop = {0, 0, 0, 0, 0};
static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values = {0, 0, 0, 0, 0};
/* #### Code section: late_includes ### */
/* #### Code section: module_state ### */
typedef struct {
  PyObject *__pyx_d;
  PyObject *__pyx_b;
  PyObject *__pyx_cython_runtime;
  PyObject *__pyx_empty_tuple;
  PyObject *__pyx_empty_bytes;
  PyObject *__pyx_empty_unicode;
  #ifdef __Pyx_CyFunction_USED
  PyTypeObject *__pyx_CyFunctionType;
  #endif
  #ifdef __Pyx_FusedFunction_USED
  PyTypeObject *__pyx_FusedFunctionType;
  #endif
  #ifdef __Pyx_Generator_USED
  PyTypeObject *__pyx_GeneratorType;
  #endif
  #ifdef __Pyx_IterableCoroutine_USED
  PyTypeObject *__pyx_IterableCoroutineType;
  #endif
  #ifdef __Pyx_Coroutine_USED
  PyTypeObject *__pyx_CoroutineAwaitType;
  #endif
  #ifdef __Pyx_Coroutine_USED
  PyTypeObject *__pyx_CoroutineType;
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  PyTypeObject *__pyx_ptype_7cpython_4type_type;
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  PyTypeObject *__pyx_ptype_7cpython_4bool_bool;
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  PyTypeObject *__pyx_ptype_7cpython_7complex_complex;
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__ChannelArg;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_Call;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__CallState;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__ChannelState;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_Channel;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CallHandle;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CallCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_BaseEvent;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_Operation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CallDetails;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_Server;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__Tag;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__AioState;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__AioCall;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_AioChannel;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_RPCState;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__ServicerContext;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_AioServer;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CensusContext;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination;
  PyObject *__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg;
  PyObject *__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_;
  PyObject *__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args;
  PyObject *__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_;
  #endif
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_Call;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__CallState;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_Channel;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_Server;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__Tag;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__AioState;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination;
  PyTypeObject *__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg;
  PyTypeObject *__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_;
  PyTypeObject *__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args;
  PyTypeObject *__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_;
  PyObject *__pyx_kp_s_0;
  PyObject *__pyx_kp_s_1;
  PyObject *__pyx_n_s_ALTSChannelCredentials;
  PyObject *__pyx_n_s_ALTSChannelCredentials___reduce;
  PyObject *__pyx_n_s_ALTSChannelCredentials___setstat;
  PyObject *__pyx_n_s_AWAIT_THREADS_TIMEOUT_SECONDS;
  PyObject *__pyx_n_s_AbortError;
  PyObject *__pyx_kp_s_Abort_already_called;
  PyObject *__pyx_kp_s_Abort_error_has_been_replaced;
  PyObject *__pyx_kp_s_Abort_error_unexpectedly_suppres;
  PyObject *__pyx_kp_s_Aborting_method_s_due_to_server;
  PyObject *__pyx_n_s_ActiveThreadCount;
  PyObject *__pyx_n_s_ActiveThreadCount___init;
  PyObject *__pyx_n_s_ActiveThreadCount_await_zero_th;
  PyObject *__pyx_n_s_ActiveThreadCount_decrement;
  PyObject *__pyx_n_s_ActiveThreadCount_increment;
  PyObject *__pyx_n_s_AioCall;
  PyObject *__pyx_n_s_AioCall___reduce_cython;
  PyObject *__pyx_n_s_AioCall___setstate_cython;
  PyObject *__pyx_n_s_AioCall__handle_status_once_rec;
  PyObject *__pyx_n_s_AioCall__repr;
  PyObject *__pyx_n_s_AioCall_add_done_callback;
  PyObject *__pyx_n_s_AioCall_cancel;
  PyObject *__pyx_n_s_AioCall_cancelled;
  PyObject *__pyx_n_s_AioCall_done;
  PyObject *__pyx_n_s_AioCall_initial_metadata;
  PyObject *__pyx_n_s_AioCall_initiate_stream_stream;
  PyObject *__pyx_n_s_AioCall_initiate_unary_stream;
  PyObject *__pyx_n_s_AioCall_is_locally_cancelled;
  PyObject *__pyx_n_s_AioCall_is_ok;
  PyObject *__pyx_n_s_AioCall_receive_serialized_mess;
  PyObject *__pyx_n_s_AioCall_send_receive_close;
  PyObject *__pyx_n_s_AioCall_send_serialized_message;
  PyObject *__pyx_n_s_AioCall_set_internal_error;
  PyObject *__pyx_n_s_AioCall_status;
  PyObject *__pyx_n_s_AioCall_stream_unary;
  PyObject *__pyx_n_s_AioCall_time_remaining;
  PyObject *__pyx_n_s_AioCall_unary_unary;
  PyObject *__pyx_n_s_AioChannel;
  PyObject *__pyx_n_s_AioChannel___reduce_cython;
  PyObject *__pyx_n_s_AioChannel___setstate_cython;
  PyObject *__pyx_n_s_AioChannel_call;
  PyObject *__pyx_n_s_AioChannel_check_connectivity_st;
  PyObject *__pyx_n_s_AioChannel_close;
  PyObject *__pyx_n_s_AioChannel_closed;
  PyObject *__pyx_n_s_AioChannel_closing;
  PyObject *__pyx_n_s_AioChannel_watch_connectivity_st;
  PyObject *__pyx_n_s_AioRpcStatus;
  PyObject *__pyx_n_s_AioRpcStatus___reduce_cython;
  PyObject *__pyx_n_s_AioRpcStatus___setstate_cython;
  PyObject *__pyx_n_s_AioRpcStatus_code;
  PyObject *__pyx_n_s_AioRpcStatus_debug_error_string;
  PyObject *__pyx_n_s_AioRpcStatus_details;
  PyObject *__pyx_n_s_AioRpcStatus_trailing_metadata;
  PyObject *__pyx_n_s_AioServer;
  PyObject *__pyx_n_s_AioServer___reduce_cython;
  PyObject *__pyx_n_s_AioServer___setstate_cython;
  PyObject *__pyx_n_s_AioServer__request_call;
  PyObject *__pyx_n_s_AioServer__server_main_loop;
  PyObject *__pyx_n_s_AioServer__serving_task_crash_ha;
  PyObject *__pyx_n_s_AioServer__start_shutting_down;
  PyObject *__pyx_n_s_AioServer_add_generic_rpc_handle;
  PyObject *__pyx_n_s_AioServer_add_insecure_port;
  PyObject *__pyx_n_s_AioServer_add_secure_port;
  PyObject *__pyx_n_s_AioServer_is_running;
  PyObject *__pyx_n_s_AioServer_shutdown;
  PyObject *__pyx_n_s_AioServer_start;
  PyObject *__pyx_n_s_AioServer_wait_for_termination;
  PyObject *__pyx_n_s_AioState;
  PyObject *__pyx_n_s_AioState___reduce_cython;
  PyObject *__pyx_n_s_AioState___setstate_cython;
  PyObject *__pyx_n_s_AssertionError;
  PyObject *__pyx_n_s_AsyncIOEngine;
  PyObject *__pyx_n_s_AttributeError;
  PyObject *__pyx_n_s_BaseCompletionQueue;
  PyObject *__pyx_n_s_BaseCompletionQueue___reduce_cyt;
  PyObject *__pyx_n_s_BaseCompletionQueue___setstate_c;
  PyObject *__pyx_n_s_BaseError;
  PyObject *__pyx_n_s_BaseEvent;
  PyObject *__pyx_n_s_BatchOperationEvent;
  PyObject *__pyx_n_s_BatchOperationEvent___reduce_cyt;
  PyObject *__pyx_n_s_BatchOperationEvent___setstate_c;
  PyObject *__pyx_n_s_BatchOperationTag;
  PyObject *__pyx_n_s_BatchOperationTag___reduce_cyth;
  PyObject *__pyx_n_s_BatchOperationTag___setstate_cy;
  PyObject *__pyx_kp_s_Binary_metadata_key_s_expected_b;
  PyObject *__pyx_n_s_BoundEventLoop;
  PyObject *__pyx_n_s_BoundEventLoop___reduce_cython;
  PyObject *__pyx_n_s_BoundEventLoop___setstate_cytho;
  PyObject *__pyx_n_s_BoundEventLoop_close;
  PyObject *__pyx_n_s_COMPRESSION_METADATA_STRING_MAP;
  PyObject *__pyx_n_s_CUSTOM_IO_MANAGER;
  PyObject *__pyx_n_s_CYGRPC_STATUS_CODE_TO_STATUS_COD;
  PyObject *__pyx_n_s_Call;
  PyObject *__pyx_n_s_CallCredentials;
  PyObject *__pyx_n_s_CallCredentials___reduce_cython;
  PyObject *__pyx_n_s_CallCredentials___setstate_cytho;
  PyObject *__pyx_n_s_CallDetails;
  PyObject *__pyx_n_s_CallDetails___reduce_cython;
  PyObject *__pyx_n_s_CallDetails___setstate_cython;
  PyObject *__pyx_n_s_CallError;
  PyObject *__pyx_n_s_CallHandle;
  PyObject *__pyx_n_s_CallHandle___reduce_cython;
  PyObject *__pyx_n_s_CallHandle___setstate_cython;
  PyObject *__pyx_n_s_CallState;
  PyObject *__pyx_n_s_CallState___reduce_cython;
  PyObject *__pyx_n_s_CallState___setstate_cython;
  PyObject *__pyx_n_s_Call___reduce_cython;
  PyObject *__pyx_n_s_Call___setstate_cython;
  PyObject *__pyx_n_s_Call__custom_op_on_c_call;
  PyObject *__pyx_n_s_Call__start_batch;
  PyObject *__pyx_n_s_Call_cancel;
  PyObject *__pyx_kp_s_Call_credentials_are_only_valid;
  PyObject *__pyx_kp_s_Call_credentials_may_not_be_NULL;
  PyObject *__pyx_n_s_Call_peer;
  PyObject *__pyx_n_s_Call_set_credentials;
  PyObject *__pyx_n_s_Call_start_client_batch;
  PyObject *__pyx_n_s_Call_start_server_batch;
  PyObject *__pyx_n_s_CallbackFailureHandler;
  PyObject *__pyx_n_s_CallbackFailureHandler___reduce;
  PyObject *__pyx_n_s_CallbackFailureHandler___setstat;
  PyObject *__pyx_n_s_CallbackWrapper;
  PyObject *__pyx_n_s_CallbackWrapper___reduce_cython;
  PyObject *__pyx_n_s_CallbackWrapper___setstate_cytho;
  PyObject *__pyx_n_s_CancelledError;
  PyObject *__pyx_kp_s_Cannot_invoke_RPC_on_closed_chan;
  PyObject *__pyx_kp_s_Cannot_invoke_RPC_s;
  PyObject *__pyx_kp_s_Cannot_monitor_channel_state_s;
  PyObject *__pyx_n_s_CensusContext;
  PyObject *__pyx_n_s_CensusContext___reduce_cython;
  PyObject *__pyx_n_s_CensusContext___setstate_cython;
  PyObject *__pyx_n_s_Channel;
  PyObject *__pyx_n_s_ChannelArg;
  PyObject *__pyx_n_s_ChannelArgKey;
  PyObject *__pyx_n_s_ChannelArg___reduce_cython;
  PyObject *__pyx_n_s_ChannelArg___setstate_cython;
  PyObject *__pyx_n_s_ChannelArgs;
  PyObject *__pyx_n_s_ChannelArgs___reduce_cython;
  PyObject *__pyx_n_s_ChannelArgs___setstate_cython;
  PyObject *__pyx_n_s_ChannelCredentials;
  PyObject *__pyx_n_s_ChannelCredentials___reduce_cyth;
  PyObject *__pyx_n_s_ChannelCredentials___setstate_cy;
  PyObject *__pyx_n_s_ChannelState;
  PyObject *__pyx_n_s_ChannelState___reduce_cython;
  PyObject *__pyx_n_s_ChannelState___setstate_cython;
  PyObject *__pyx_n_s_Channel___reduce_cython;
  PyObject *__pyx_n_s_Channel___setstate_cython;
  PyObject *__pyx_n_s_Channel_check_connectivity_state;
  PyObject *__pyx_n_s_Channel_close;
  PyObject *__pyx_n_s_Channel_close_on_fork;
  PyObject *__pyx_n_s_Channel_get_registered_call_hand;
  PyObject *__pyx_n_s_Channel_integrated_call;
  PyObject *__pyx_kp_s_Channel_is_closed;
  PyObject *__pyx_n_s_Channel_next_call_event;
  PyObject *__pyx_n_s_Channel_segregated_call;
  PyObject *__pyx_n_s_Channel_target;
  PyObject *__pyx_n_s_Channel_watch_connectivity_state;
  PyObject *__pyx_n_s_CompletionQueue;
  PyObject *__pyx_n_s_CompletionQueue___reduce_cython;
  PyObject *__pyx_n_s_CompletionQueue___setstate_cytho;
  PyObject *__pyx_n_s_CompletionQueue__internal_poll;
  PyObject *__pyx_n_s_CompletionQueue_clear;
  PyObject *__pyx_n_s_CompletionQueue_poll;
  PyObject *__pyx_n_s_CompletionQueue_shutdown;
  PyObject *__pyx_n_s_CompletionType;
  PyObject *__pyx_n_s_CompositeCallCredentials;
  PyObject *__pyx_n_s_CompositeCallCredentials___reduc;
  PyObject *__pyx_n_s_CompositeCallCredentials___setst;
  PyObject *__pyx_n_s_CompositeChannelCredentials;
  PyObject *__pyx_n_s_CompositeChannelCredentials___re;
  PyObject *__pyx_n_s_CompositeChannelCredentials___se;
  PyObject *__pyx_n_s_CompressionAlgorithm;
  PyObject *__pyx_n_s_CompressionLevel;
  PyObject *__pyx_n_s_CompressionOptions;
  PyObject *__pyx_n_s_CompressionOptions___reduce_cyth;
  PyObject *__pyx_n_s_CompressionOptions___setstate_cy;
  PyObject *__pyx_n_s_CompressionOptions_disable_algor;
  PyObject *__pyx_n_s_CompressionOptions_enable_algori;
  PyObject *__pyx_n_s_CompressionOptions_is_algorithm;
  PyObject *__pyx_n_s_CompressionOptions_to_channel_ar;
  PyObject *__pyx_kp_s_Compression_setting_must_be_spec;
  PyObject *__pyx_n_s_ComputeEngineChannelCredentials;
  PyObject *__pyx_n_s_ComputeEngineChannelCredentials_2;
  PyObject *__pyx_n_s_ComputeEngineChannelCredentials_3;
  PyObject *__pyx_n_s_ConcurrentRpcLimiter;
  PyObject *__pyx_n_s_ConcurrentRpcLimiter___reduce_c;
  PyObject *__pyx_n_s_ConcurrentRpcLimiter___setstate;
  PyObject *__pyx_n_s_ConcurrentRpcLimiter__decrease;
  PyObject *__pyx_n_s_ConcurrentRpcLimiter_check_befo;
  PyObject *__pyx_n_s_ConcurrentRpcLimiter_decrease_o;
  PyObject *__pyx_kp_s_Concurrent_RPC_limit_exceeded;
  PyObject *__pyx_n_s_Condition;
  PyObject *__pyx_n_s_ConnectivityEvent;
  PyObject *__pyx_n_s_ConnectivityEvent___reduce_cytho;
  PyObject *__pyx_n_s_ConnectivityEvent___setstate_cyt;
  PyObject *__pyx_n_s_ConnectivityState;
  PyObject *__pyx_n_s_ConnectivityTag;
  PyObject *__pyx_n_s_ConnectivityTag___reduce_cython;
  PyObject *__pyx_n_s_ConnectivityTag___setstate_cyth;
  PyObject *__pyx_kp_s_Core_should_not_return_GRPC_QUEU;
  PyObject *__pyx_kp_s_Credentials_couldn_t_have_been_s;
  PyObject *__pyx_kp_s_Dedicated_exception_class_for_wa;
  PyObject *__pyx_n_s_DeprecationWarning;
  PyObject *__pyx_n_s_EMPTY_FLAGS;
  PyObject *__pyx_n_s_EMPTY_MASK;
  PyObject *__pyx_n_s_EOF;
  PyObject *__pyx_n_s_EOF_2;
  PyObject *__pyx_n_s_EOF___bool;
  PyObject *__pyx_n_s_EOF___len;
  PyObject *__pyx_n_s_EOF___repr;
  PyObject *__pyx_n_s_EOF___str;
  PyObject *__pyx_n_s_EOF__repr;
  PyObject *__pyx_n_s_EX_USAGE;
  PyObject *__pyx_n_s_Enum;
  PyObject *__pyx_kp_s_Error_fetching_certificate_confi;
  PyObject *__pyx_kp_s_Error_fetching_certificate_confi_2;
  PyObject *__pyx_kp_s_Error_in_callback_for_method_s;
  PyObject *__pyx_kp_s_Error_in_grpc_server_request_cal;
  PyObject *__pyx_kp_s_Error_in_grpc_server_request_reg;
  PyObject *__pyx_kp_s_Exception_not_handled_by__handle;
  PyObject *__pyx_n_s_ExecuteBatchError;
  PyObject *__pyx_kp_s_ExecuteBatchError_raised_in_core;
  PyObject *__pyx_kp_s_Exiting_child_due_to_raised_exce;
  PyObject *__pyx_kp_s_Expected_bytes_str_or_unicode_no;
  PyObject *__pyx_kp_s_Expected_int_bytes_or_behavior_g;
  PyObject *__pyx_kp_s_Expected_str_not;
  PyObject *__pyx_kp_s_Expecting_non_ok_status_code;
  PyObject *__pyx_kp_s_Failed_grpc_call_start_batch_wit;
  PyObject *__pyx_kp_s_Failed_s_s;
  PyObject *__pyx_kp_s_Failed_sending_error_status_from;
  PyObject *__pyx_kp_s_Failed_to_get_server_sockets_ple;
  PyObject *__pyx_kp_s_Failed_to_get_servers_please_ens;
  PyObject *__pyx_kp_s_Failed_to_get_the_channel_please;
  PyObject *__pyx_kp_s_Failed_to_get_the_server_please;
  PyObject *__pyx_kp_s_Failed_to_get_the_socket_please;
  PyObject *__pyx_kp_s_Failed_to_get_the_subchannel_ple;
  PyObject *__pyx_kp_s_Failed_to_get_top_channels_pleas;
  PyObject *__pyx_kp_s_Failed_to_receive_any_message_fr;
  PyObject *__pyx_kp_s_Failed_to_shutdown_gRPC_Core_aft;
  PyObject *__pyx_kp_s_Failed_to_shutdown_gRPC_Python_t;
  PyObject *__pyx_n_s_ForkManagedThread;
  PyObject *__pyx_n_s_ForkManagedThread___init;
  PyObject *__pyx_n_s_ForkManagedThread___init___local;
  PyObject *__pyx_n_s_ForkManagedThread_join;
  PyObject *__pyx_n_s_ForkManagedThread_setDaemon;
  PyObject *__pyx_n_s_ForkManagedThread_start;
  PyObject *__pyx_n_s_ForkState;
  PyObject *__pyx_n_s_ForkState___init;
  PyObject *__pyx_n_s_GRPC_ASYNCIO_ENGINE;
  PyObject *__pyx_n_s_GRPC_COMPRESSION_CHANNEL_DEFAULT;
  PyObject *__pyx_n_s_GRPC_COMPRESSION_REQUEST_ALGORIT;
  PyObject *__pyx_n_s_GRPC_ENABLE_FORK_SUPPORT;
  PyObject *__pyx_n_s_GRPC_ENABLE_FORK_SUPPORT_2;
  PyObject *__pyx_n_s_GRPC_PROPAGATE_CANCELLATION;
  PyObject *__pyx_n_s_GRPC_PROPAGATE_CENSUS_STATS_CONT;
  PyObject *__pyx_n_s_GRPC_PROPAGATE_CENSUS_TRACING_CO;
  PyObject *__pyx_n_s_GRPC_PROPAGATE_DEADLINE;
  PyObject *__pyx_n_s_GRPC_PROPAGATE_DEFAULTS;
  PyObject *__pyx_n_s_Group;
  PyObject *__pyx_n_s_GrpcArgWrapper;
  PyObject *__pyx_n_s_GrpcArgWrapper___reduce_cython;
  PyObject *__pyx_n_s_GrpcArgWrapper___setstate_cytho;
  PyObject *__pyx_n_s_GrpcCallWrapper;
  PyObject *__pyx_kp_s_HandleExceptions_s;
  PyObject *__pyx_n_s_HandlerCallDetails;
  PyObject *__pyx_n_s_HandlerCallDetails___reduce_cyt;
  PyObject *__pyx_n_s_HandlerCallDetails___setstate_c;
  PyObject *__pyx_n_s_IMMUTABLE_EMPTY_METADATA;
  PyObject *__pyx_n_s_INTERNAL_CALL_ERROR_MESSAGE_FOR;
  PyObject *__pyx_n_s_ImportError;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2;
  PyObject *__pyx_n_s_InitialMetadataFlags;
  PyObject *__pyx_n_s_InsecureChannelCredentials;
  PyObject *__pyx_n_s_InsecureChannelCredentials___red;
  PyObject *__pyx_n_s_InsecureChannelCredentials___set;
  PyObject *__pyx_n_s_IntegratedCall;
  PyObject *__pyx_n_s_IntegratedCall___reduce_cython;
  PyObject *__pyx_n_s_IntegratedCall___setstate_cython;
  PyObject *__pyx_n_s_IntegratedCall_cancel;
  PyObject *__pyx_n_s_IntegratedCall_operate;
  PyObject *__pyx_n_s_InternalError;
  PyObject *__pyx_kp_s_Internal_error_from_Core;
  PyObject *__pyx_kp_s_Internal_gRPC_call_error_d;
  PyObject *__pyx_kp_s_Invalid_encoding_on_s;
  PyObject *__pyx_kp_u_Invalid_trailing_metadata_type_e;
  PyObject *__pyx_n_s_KeyError;
  PyObject *__pyx_n_s_KeyboardInterrupt;
  PyObject *__pyx_n_s_LOGGER;
  PyObject *__pyx_n_s_LatentEventArg;
  PyObject *__pyx_n_s_LocalChannelCredentials;
  PyObject *__pyx_n_s_LocalChannelCredentials___reduce;
  PyObject *__pyx_n_s_LocalChannelCredentials___setsta;
  PyObject *__pyx_n_s_LocalConnectionType;
  PyObject *__pyx_kp_s_Locally_aborted;
  PyObject *__pyx_n_s_Lock;
  PyObject *__pyx_n_s_MessageReceiver;
  PyObject *__pyx_n_s_MessageReceiver___anext;
  PyObject *__pyx_n_s_MessageReceiver___reduce_cython;
  PyObject *__pyx_n_s_MessageReceiver___setstate_cyth;
  PyObject *__pyx_n_s_MessageReceiver__async_message;
  PyObject *__pyx_n_s_MetadataPluginCallCredentials;
  PyObject *__pyx_n_s_MetadataPluginCallCredentials_2;
  PyObject *__pyx_n_s_MetadataPluginCallCredentials_3;
  PyObject *__pyx_n_s_Metadatum;
  PyObject *__pyx_kp_s_Method_not_found;
  PyObject *__pyx_n_s_NON_OK_CALL_REPRESENTATION;
  PyObject *__pyx_kp_s_No_custom_hooks_are_implemented;
  PyObject *__pyx_kp_s_Non_thread_safe_operation;
  PyObject *__pyx_n_s_None;
  PyObject *__pyx_n_s_NotImplementedError;
  PyObject *__pyx_n_s_OK_CALL_REPRESENTATION;
  PyObject *__pyx_n_s_Operation;
  PyObject *__pyx_n_s_OperationType;
  PyObject *__pyx_n_s_Operation___reduce_cython;
  PyObject *__pyx_n_s_Operation___setstate_cython;
  PyObject *__pyx_n_s_Optional;
  PyObject *__pyx_kp_s_Optional_int;
  PyObject *__pyx_n_s_POLLER;
  PyObject *__pyx_n_s_PickleError;
  PyObject *__pyx_kp_s_Please_report_to_https_github_co;
  PyObject *__pyx_n_s_PollerCompletionQueue;
  PyObject *__pyx_n_s_PollerCompletionQueue___reduce_c;
  PyObject *__pyx_n_s_PollerCompletionQueue___setstate;
  PyObject *__pyx_n_s_PollerCompletionQueue__handle_ev;
  PyObject *__pyx_n_s_PollerCompletionQueue__poll_wrap;
  PyObject *__pyx_n_s_PollerCompletionQueue_bind_loop;
  PyObject *__pyx_n_s_PropagationConstants;
  PyObject *__pyx_n_s_Pyx_CFunc_1f6ebd__4grpc_7_cyth;
  PyObject *__pyx_n_s_Pyx_CFunc_4grpc_7_cython_6cygr;
  PyObject *__pyx_n_s_Pyx_CFunc_4grpc_7_cython_6cygr_2;
  PyObject *__pyx_n_s_Pyx_CFunc_7f0cf6__4grpc_7_cyth;
  PyObject *__pyx_n_s_Queue;
  PyObject *__pyx_n_s_RLock;
  PyObject *__pyx_n_s_RPCState;
  PyObject *__pyx_n_s_RPCState___reduce_cython;
  PyObject *__pyx_n_s_RPCState___setstate_cython;
  PyObject *__pyx_kp_s_RPC_already_finished;
  PyObject *__pyx_kp_s_RPC_cancelled_for_servicer_metho;
  PyObject *__pyx_kp_s_RPC_cancelled_for_unknown_reason;
  PyObject *__pyx_kp_s_Raised_if_the_server_is_stopped;
  PyObject *__pyx_kp_s_Raised_upon_unexpected_errors_in;
  PyObject *__pyx_kp_s_Raised_when_calling_abort_in_ser;
  PyObject *__pyx_kp_s_Raised_when_execute_batch_return;
  PyObject *__pyx_kp_s_Raised_when_the_usage_of_API_by;
  PyObject *__pyx_n_s_ReceiveCloseOnServerOperation;
  PyObject *__pyx_n_s_ReceiveCloseOnServerOperation_2;
  PyObject *__pyx_n_s_ReceiveCloseOnServerOperation_3;
  PyObject *__pyx_n_s_ReceiveCloseOnServerOperation_ca;
  PyObject *__pyx_n_s_ReceiveCloseOnServerOperation_ty;
  PyObject *__pyx_n_s_ReceiveInitialMetadataOperation;
  PyObject *__pyx_n_s_ReceiveInitialMetadataOperation_2;
  PyObject *__pyx_n_s_ReceiveInitialMetadataOperation_3;
  PyObject *__pyx_n_s_ReceiveInitialMetadataOperation_4;
  PyObject *__pyx_n_s_ReceiveInitialMetadataOperation_5;
  PyObject *__pyx_n_s_ReceiveMessageOperation;
  PyObject *__pyx_n_s_ReceiveMessageOperation___reduce;
  PyObject *__pyx_n_s_ReceiveMessageOperation___setsta;
  PyObject *__pyx_n_s_ReceiveMessageOperation_message;
  PyObject *__pyx_n_s_ReceiveMessageOperation_type;
  PyObject *__pyx_n_s_ReceiveStatusOnClientOperation;
  PyObject *__pyx_n_s_ReceiveStatusOnClientOperation_2;
  PyObject *__pyx_n_s_ReceiveStatusOnClientOperation_3;
  PyObject *__pyx_n_s_ReceiveStatusOnClientOperation_c;
  PyObject *__pyx_n_s_ReceiveStatusOnClientOperation_d;
  PyObject *__pyx_n_s_ReceiveStatusOnClientOperation_e;
  PyObject *__pyx_n_s_ReceiveStatusOnClientOperation_t;
  PyObject *__pyx_n_s_ReceiveStatusOnClientOperation_t_2;
  PyObject *__pyx_n_s_RegisteredMethod;
  PyObject *__pyx_n_s_RegisteredMethod___reduce_cython;
  PyObject *__pyx_n_s_RegisteredMethod___setstate_cyth;
  PyObject *__pyx_n_s_RequestCallError;
  PyObject *__pyx_n_s_RequestCallEvent;
  PyObject *__pyx_n_s_RequestCallEvent___reduce_cython;
  PyObject *__pyx_n_s_RequestCallEvent___setstate_cyth;
  PyObject *__pyx_n_s_RequestCallTag;
  PyObject *__pyx_n_s_RequestCallTag___reduce_cython;
  PyObject *__pyx_n_s_RequestCallTag___setstate_cytho;
  PyObject *__pyx_n_s_RuntimeError;
  PyObject *__pyx_n_s_SERVICES_TO_EXCLUDE;
  PyObject *__pyx_n_s_SSLChannelCredentials;
  PyObject *__pyx_n_s_SSLChannelCredentials___reduce_c;
  PyObject *__pyx_n_s_SSLChannelCredentials___setstate;
  PyObject *__pyx_n_s_SSLSessionCacheLRU;
  PyObject *__pyx_n_s_SSLSessionCacheLRU___reduce_cyth;
  PyObject *__pyx_n_s_SSLSessionCacheLRU___setstate_cy;
  PyObject *__pyx_n_s_SegregatedCall;
  PyObject *__pyx_n_s_SegregatedCall___reduce_cython;
  PyObject *__pyx_n_s_SegregatedCall___setstate_cython;
  PyObject *__pyx_n_s_SegregatedCall_cancel;
  PyObject *__pyx_n_s_SegregatedCall_next_event;
  PyObject *__pyx_n_s_SegregatedCall_operate;
  PyObject *__pyx_n_s_SendCloseFromClientOperation;
  PyObject *__pyx_n_s_SendCloseFromClientOperation___r;
  PyObject *__pyx_n_s_SendCloseFromClientOperation___s;
  PyObject *__pyx_n_s_SendCloseFromClientOperation_typ;
  PyObject *__pyx_n_s_SendInitialMetadataOperation;
  PyObject *__pyx_n_s_SendInitialMetadataOperation___r;
  PyObject *__pyx_n_s_SendInitialMetadataOperation___s;
  PyObject *__pyx_n_s_SendInitialMetadataOperation_typ;
  PyObject *__pyx_n_s_SendMessageOperation;
  PyObject *__pyx_n_s_SendMessageOperation___reduce_cy;
  PyObject *__pyx_n_s_SendMessageOperation___setstate;
  PyObject *__pyx_n_s_SendMessageOperation_type;
  PyObject *__pyx_n_s_SendStatusFromServerOperation;
  PyObject *__pyx_n_s_SendStatusFromServerOperation_2;
  PyObject *__pyx_n_s_SendStatusFromServerOperation_3;
  PyObject *__pyx_n_s_SendStatusFromServerOperation_ty;
  PyObject *__pyx_kp_s_Send_initial_metadata_failed_alr;
  PyObject *__pyx_n_s_Server;
  PyObject *__pyx_n_s_ServerCertificateConfig;
  PyObject *__pyx_n_s_ServerCertificateConfig___reduce;
  PyObject *__pyx_n_s_ServerCertificateConfig___setsta;
  PyObject *__pyx_n_s_ServerCertificateConfiguration;
  PyObject *__pyx_n_s_ServerCredentials;
  PyObject *__pyx_n_s_ServerCredentials___reduce_cytho;
  PyObject *__pyx_n_s_ServerCredentials___setstate_cyt;
  PyObject *__pyx_n_s_ServerShutdownEvent;
  PyObject *__pyx_n_s_ServerShutdownEvent___reduce_cyt;
  PyObject *__pyx_n_s_ServerShutdownEvent___setstate_c;
  PyObject *__pyx_n_s_ServerShutdownTag;
  PyObject *__pyx_n_s_ServerShutdownTag___reduce_cyth;
  PyObject *__pyx_n_s_ServerShutdownTag___setstate_cy;
  PyObject *__pyx_n_s_ServerStoppedError;
  PyObject *__pyx_n_s_Server___reduce_cython;
  PyObject *__pyx_n_s_Server___setstate_cython;
  PyObject *__pyx_n_s_Server_add_http2_port;
  PyObject *__pyx_kp_s_Server_already_stopped;
  PyObject *__pyx_n_s_Server_cancel_all_calls;
  PyObject *__pyx_n_s_Server_destroy;
  PyObject *__pyx_kp_s_Server_not_in_ready_state;
  PyObject *__pyx_n_s_Server_register_completion_queue;
  PyObject *__pyx_n_s_Server_register_method;
  PyObject *__pyx_n_s_Server_request_call;
  PyObject *__pyx_n_s_Server_request_registered_call;
  PyObject *__pyx_n_s_Server_shutdown;
  PyObject *__pyx_kp_s_Server_shutdown_failed_no_comple;
  PyObject *__pyx_n_s_Server_start;
  PyObject *__pyx_n_s_ServicerContext;
  PyObject *__pyx_n_s_ServicerContext___reduce_cython;
  PyObject *__pyx_n_s_ServicerContext___setstate_cyth;
  PyObject *__pyx_n_s_ServicerContext_abort;
  PyObject *__pyx_n_s_ServicerContext_abort_with_stat;
  PyObject *__pyx_n_s_ServicerContext_add_done_callba;
  PyObject *__pyx_n_s_ServicerContext_auth_context;
  PyObject *__pyx_n_s_ServicerContext_cancelled;
  PyObject *__pyx_n_s_ServicerContext_code;
  PyObject *__pyx_n_s_ServicerContext_details;
  PyObject *__pyx_n_s_ServicerContext_disable_next_me;
  PyObject *__pyx_n_s_ServicerContext_done;
  PyObject *__pyx_n_s_ServicerContext_invocation_meta;
  PyObject *__pyx_n_s_ServicerContext_peer;
  PyObject *__pyx_n_s_ServicerContext_peer_identities;
  PyObject *__pyx_n_s_ServicerContext_peer_identity_k;
  PyObject *__pyx_n_s_ServicerContext_read;
  PyObject *__pyx_n_s_ServicerContext_send_initial_me;
  PyObject *__pyx_n_s_ServicerContext_set_code;
  PyObject *__pyx_n_s_ServicerContext_set_compression;
  PyObject *__pyx_n_s_ServicerContext_set_details;
  PyObject *__pyx_n_s_ServicerContext_set_trailing_me;
  PyObject *__pyx_n_s_ServicerContext_time_remaining;
  PyObject *__pyx_n_s_ServicerContext_trailing_metada;
  PyObject *__pyx_n_s_ServicerContext_write;
  PyObject *__pyx_n_s_SslPemKeyCertPair;
  PyObject *__pyx_n_s_SslPemKeyCertPair___reduce_cytho;
  PyObject *__pyx_n_s_SslPemKeyCertPair___setstate_cyt;
  PyObject *__pyx_n_s_StatusCode;
  PyObject *__pyx_n_s_SyncServicerContext;
  PyObject *__pyx_n_s_SyncServicerContext___reduce_cy;
  PyObject *__pyx_n_s_SyncServicerContext___setstate;
  PyObject *__pyx_n_s_SyncServicerContext_abort;
  PyObject *__pyx_n_s_SyncServicerContext_add_callbac;
  PyObject *__pyx_n_s_SyncServicerContext_auth_contex;
  PyObject *__pyx_n_s_SyncServicerContext_disable_nex;
  PyObject *__pyx_n_s_SyncServicerContext_invocation;
  PyObject *__pyx_n_s_SyncServicerContext_peer;
  PyObject *__pyx_n_s_SyncServicerContext_peer_identi;
  PyObject *__pyx_n_s_SyncServicerContext_peer_identi_2;
  PyObject *__pyx_n_s_SyncServicerContext_send_initia;
  PyObject *__pyx_n_s_SyncServicerContext_set_code;
  PyObject *__pyx_n_s_SyncServicerContext_set_compres;
  PyObject *__pyx_n_s_SyncServicerContext_set_details;
  PyObject *__pyx_n_s_SyncServicerContext_set_trailin;
  PyObject *__pyx_n_s_SyncServicerContext_time_remain;
  PyObject *__pyx_n_s_SystemExit;
  PyObject *__pyx_n_s_TRUE;
  PyObject *__pyx_n_s_TRUE_VALUES;
  PyObject *__pyx_n_s_TYPE_METADATA_STRING;
  PyObject *__pyx_n_s_Tag;
  PyObject *__pyx_n_s_Tag___reduce_cython;
  PyObject *__pyx_n_s_Tag___setstate_cython;
  PyObject *__pyx_kp_s_The_base_class_for_exceptions_ge;
  PyObject *__pyx_n_s_Thread;
  PyObject *__pyx_kp_s_Timed_out;
  PyObject *__pyx_n_s_TimeoutError;
  PyObject *__pyx_n_s_True;
  PyObject *__pyx_kp_s_Tuple_Tuple_str_Union_str_bytes;
  PyObject *__pyx_n_s_TypeError;
  PyObject *__pyx_n_s_UNKNOWN_CANCELLATION_DETAILS;
  PyObject *__pyx_kp_s_Unexpected_s_raised_by_servicer;
  PyObject *__pyx_kp_s_Unexpected_s_s;
  PyObject *__pyx_n_s_UnicodeDecodeError;
  PyObject *__pyx_n_s_Unknown;
  PyObject *__pyx_kp_s_Unsupported_engine_type_s;
  PyObject *__pyx_n_s_UsageError;
  PyObject *__pyx_kp_s_Using_s_as_I_O_engine;
  PyObject *__pyx_n_s_ValueError;
  PyObject *__pyx_n_s_WatchConnectivityFailed;
  PyObject *__pyx_n_s_WriteFlag;
  PyObject *__pyx_n_s_XDSChannelCredentials;
  PyObject *__pyx_n_s_XDSChannelCredentials___reduce_c;
  PyObject *__pyx_n_s_XDSChannelCredentials___setstate;
  PyObject *__pyx_n_s_YES;
  PyObject *__pyx_n_s_Yes;
  PyObject *__pyx_n_s__107;
  PyObject *__pyx_n_s__38;
  PyObject *__pyx_kp_u__49;
  PyObject *__pyx_n_s__57;
  PyObject *__pyx_kp_u__58;
  PyObject *__pyx_kp_u__69;
  PyObject *__pyx_kp_b__7;
  PyObject *__pyx_kp_s__7;
  PyObject *__pyx_kp_u__70;
  PyObject *__pyx_kp_u__71;
  PyObject *__pyx_n_s_abort;
  PyObject *__pyx_n_s_abort_with_status;
  PyObject *__pyx_n_s_aborted;
  PyObject *__pyx_n_s_active_thread_count;
  PyObject *__pyx_n_s_actual_code;
  PyObject *__pyx_n_s_add;
  PyObject *__pyx_n_s_add_callback;
  PyObject *__pyx_n_s_add_callback_handler_locals_han;
  PyObject *__pyx_n_s_add_done_callback;
  PyObject *__pyx_n_s_add_generic_rpc_handlers;
  PyObject *__pyx_n_s_add_http2_port;
  PyObject *__pyx_n_s_add_insecure_port;
  PyObject *__pyx_n_s_add_reader;
  PyObject *__pyx_n_s_add_secure_port;
  PyObject *__pyx_n_s_address;
  PyObject *__pyx_n_s_address_c_string;
  PyObject *__pyx_n_s_aenter;
  PyObject *__pyx_n_s_aexit;
  PyObject *__pyx_n_s_after_in_child;
  PyObject *__pyx_n_s_after_in_parent;
  PyObject *__pyx_n_s_agen;
  PyObject *__pyx_n_s_aiter;
  PyObject *__pyx_n_s_algorithm;
  PyObject *__pyx_n_s_already_accepted;
  PyObject *__pyx_n_s_already_exists;
  PyObject *__pyx_n_s_already_finished;
  PyObject *__pyx_n_s_already_invoked;
  PyObject *__pyx_n_s_anext;
  PyObject *__pyx_n_s_append;
  PyObject *__pyx_n_s_apply;
  PyObject *__pyx_n_s_args;
  PyObject *__pyx_n_s_arguments;
  PyObject *__pyx_n_s_ascii;
  PyObject *__pyx_n_s_async_callback_func;
  PyObject *__pyx_n_s_async_generator_to_generator;
  PyObject *__pyx_n_s_async_message_receiver;
  PyObject *__pyx_n_s_async_response_generator;
  PyObject *__pyx_n_s_asyncio;
  PyObject *__pyx_n_s_asyncio_coroutines;
  PyObject *__pyx_n_s_asyncio_tasks;
  PyObject *__pyx_n_s_atexit;
  PyObject *__pyx_n_s_auth_context;
  PyObject *__pyx_n_s_await;
  PyObject *__pyx_n_s_await_zero_threads;
  PyObject *__pyx_n_s_backup_queue;
  PyObject *__pyx_n_s_batch_error;
  PyObject *__pyx_n_s_batch_operation_tag;
  PyObject *__pyx_n_s_batch_operations;
  PyObject *__pyx_n_s_before;
  PyObject *__pyx_kp_b_bin;
  PyObject *__pyx_n_s_bind_loop;
  PyObject *__pyx_n_s_block_if_fork_in_progress;
  PyObject *__pyx_n_s_bool;
  PyObject *__pyx_n_s_buffer_hint;
  PyObject *__pyx_n_s_build_census_context;
  PyObject *__pyx_n_s_bytes_ctx;
  PyObject *__pyx_n_s_c_call_credentials;
  PyObject *__pyx_n_s_c_call_error;
  PyObject *__pyx_n_s_c_cert_config;
  PyObject *__pyx_n_s_c_deadline;
  PyObject *__pyx_n_s_c_details;
  PyObject *__pyx_n_s_c_error_details;
  PyObject *__pyx_n_s_c_event;
  PyObject *__pyx_n_s_c_key;
  PyObject *__pyx_n_s_c_options;
  PyObject *__pyx_n_s_c_peer;
  PyObject *__pyx_n_s_c_pem_root_certs;
  PyObject *__pyx_n_s_c_returned_str;
  PyObject *__pyx_n_s_c_target;
  PyObject *__pyx_n_s_call;
  PyObject *__pyx_n_s_call_credentials;
  PyObject *__pyx_n_s_call_credentialses;
  PyObject *__pyx_n_s_call_creds;
  PyObject *__pyx_n_s_call_details;
  PyObject *__pyx_n_s_call_error;
  PyObject *__pyx_n_s_call_handle;
  PyObject *__pyx_n_s_call_queue;
  PyObject *__pyx_n_s_call_soon_threadsafe;
  PyObject *__pyx_n_s_call_state;
  PyObject *__pyx_n_s_callback;
  PyObject *__pyx_n_s_callback_func;
  PyObject *__pyx_n_s_callback_wrapper;
  PyObject *__pyx_n_s_cancel;
  PyObject *__pyx_n_s_cancel_all_calls;
  PyObject *__pyx_n_s_cancelled;
  PyObject *__pyx_kp_s_cannot_register_completion_queue;
  PyObject *__pyx_n_s_capacity;
  PyObject *__pyx_n_s_capsule;
  PyObject *__pyx_n_s_capsule_ptr;
  PyObject *__pyx_n_s_catch_warnings;
  PyObject *__pyx_n_s_cb;
  PyObject *__pyx_n_s_cb_func;
  PyObject *__pyx_n_s_census_ctx;
  PyObject *__pyx_n_s_cert_config;
  PyObject *__pyx_n_s_cert_config_fetcher;
  PyObject *__pyx_kp_s_cert_config_fetcher_must_be_call;
  PyObject *__pyx_n_s_certificate_chain;
  PyObject *__pyx_n_s_certificate_configuration;
  PyObject *__pyx_n_s_cfunc_to_py;
  PyObject *__pyx_n_s_channel;
  PyObject *__pyx_n_s_channel_credentials;
  PyObject *__pyx_n_s_channel_credentials_alts;
  PyObject *__pyx_n_s_channel_credentials_compute_engi;
  PyObject *__pyx_n_s_channel_credentials_insecure;
  PyObject *__pyx_n_s_channel_credentials_local;
  PyObject *__pyx_n_s_channel_id;
  PyObject *__pyx_n_s_channel_state;
  PyObject *__pyx_n_s_channels;
  PyObject *__pyx_n_s_channelz_get_channel;
  PyObject *__pyx_n_s_channelz_get_server;
  PyObject *__pyx_n_s_channelz_get_server_sockets;
  PyObject *__pyx_n_s_channelz_get_servers;
  PyObject *__pyx_n_s_channelz_get_socket;
  PyObject *__pyx_n_s_channelz_get_subchannel;
  PyObject *__pyx_n_s_channelz_get_top_channels;
  PyObject *__pyx_n_s_check_before_request_call;
  PyObject *__pyx_n_s_check_connectivity_state;
  PyObject *__pyx_n_s_class;
  PyObject *__pyx_n_s_class_getitem;
  PyObject *__pyx_n_s_clear;
  PyObject *__pyx_n_s_clear_server_call_tracer_factory;
  PyObject *__pyx_n_s_client_config_in_slice;
  PyObject *__pyx_n_s_cline_in_traceback;
  PyObject *__pyx_n_s_close;
  PyObject *__pyx_n_s_close_on_fork;
  PyObject *__pyx_n_s_close_on_fork_2;
  PyObject *__pyx_n_s_closed;
  PyObject *__pyx_n_s_closing;
  PyObject *__pyx_n_s_code;
  PyObject *__pyx_n_s_codecs;
  PyObject *__pyx_n_s_collections;
  PyObject *__pyx_n_s_common;
  PyObject *__pyx_n_s_completion_type;
  PyObject *__pyx_n_s_compression;
  PyObject *__pyx_n_s_compression_algorithm_name;
  PyObject *__pyx_n_s_concurrency_exceeded;
  PyObject *__pyx_n_s_condition;
  PyObject *__pyx_n_s_connecting;
  PyObject *__pyx_n_s_context;
  PyObject *__pyx_n_s_context_loop;
  PyObject *__pyx_n_s_contextvars;
  PyObject *__pyx_n_s_contextvars_supported;
  PyObject *__pyx_n_s_continuation;
  PyObject *__pyx_n_s_copy;
  PyObject *__pyx_n_s_copy_context;
  PyObject *__pyx_n_s_core_function_name;
  PyObject *__pyx_n_s_coro;
  PyObject *__pyx_n_s_create_client_call_tracer;
  PyObject *__pyx_n_s_create_future;
  PyObject *__pyx_n_s_create_server_call_tracer_factor;
  PyObject *__pyx_n_s_create_task;
  PyObject *__pyx_n_s_credentials;
  PyObject *__pyx_n_s_credentials_2;
  PyObject *__pyx_kp_s_credentials_roots_pem;
  PyObject *__pyx_n_s_creds;
  PyObject *__pyx_n_s_ctx;
  PyObject *__pyx_n_s_custom_io_manager;
  PyObject *__pyx_n_s_custom_op_on_c_call;
  PyObject *__pyx_kp_s_cygrpc;
  PyObject *__pyx_n_s_cython_call_credentials;
  PyObject *__pyx_n_s_daemon;
  PyObject *__pyx_n_s_daemonic;
  PyObject *__pyx_n_s_data;
  PyObject *__pyx_n_s_data_loss;
  PyObject *__pyx_n_s_deadline;
  PyObject *__pyx_n_s_deadline_exceeded;
  PyObject *__pyx_kp_s_dealloc___called_on_running_se;
  PyObject *__pyx_n_s_debug;
  PyObject *__pyx_n_s_debug_error_string;
  PyObject *__pyx_n_s_decode;
  PyObject *__pyx_n_s_decrease_active_rpcs_count;
  PyObject *__pyx_n_s_decrease_once_finished;
  PyObject *__pyx_n_s_decrement;
  PyObject *__pyx_n_s_default_authority;
  PyObject *__pyx_n_s_default_vtable;
  PyObject *__pyx_n_s_deflate;
  PyObject *__pyx_n_s_destroy;
  PyObject *__pyx_n_s_details;
  PyObject *__pyx_n_s_details_bytes;
  PyObject *__pyx_n_s_dict;
  PyObject *__pyx_n_s_dict_2;
  PyObject *__pyx_kp_u_disable;
  PyObject *__pyx_n_s_disable_algorithm;
  PyObject *__pyx_n_s_disable_next_message_compression;
  PyObject *__pyx_n_s_discard;
  PyObject *__pyx_n_s_doc;
  PyObject *__pyx_n_s_done;
  PyObject *__pyx_n_s_dump_xds_configs;
  PyObject *__pyx_n_s_e;
  PyObject *__pyx_kp_u_enable;
  PyObject *__pyx_n_s_enable_algorithm;
  PyObject *__pyx_n_s_enable_census;
  PyObject *__pyx_n_s_encode;
  PyObject *__pyx_n_s_end_time;
  PyObject *__pyx_n_s_endswith;
  PyObject *__pyx_n_s_enter;
  PyObject *__pyx_n_s_enter_user_request_generator;
  PyObject *__pyx_n_s_enum;
  PyObject *__pyx_n_s_enumerate;
  PyObject *__pyx_n_s_environ;
  PyObject *__pyx_n_s_errno;
  PyObject *__pyx_n_s_error;
  PyObject *__pyx_n_s_error_code;
  PyObject *__pyx_n_s_error_details;
  PyObject *__pyx_n_s_error_str;
  PyObject *__pyx_n_s_error_string;
  PyObject *__pyx_n_s_event;
  PyObject *__pyx_n_s_exc_info;
  PyObject *__pyx_n_s_exception;
  PyObject *__pyx_n_s_exception_type;
  PyObject *__pyx_n_s_execute_batch;
  PyObject *__pyx_n_s_exit;
  PyObject *__pyx_n_s_exit_2;
  PyObject *__pyx_kp_s_expected_certificate_to_be_bytes;
  PyObject *__pyx_kp_s_expected_pem_key_cert_pairs_to_b;
  PyObject *__pyx_kp_s_expected_registered_completion_q;
  PyObject *__pyx_n_s_failed_precondition;
  PyObject *__pyx_n_s_failure_handler;
  PyObject *__pyx_n_s_fallback_credentials;
  PyObject *__pyx_n_s_fileno;
  PyObject *__pyx_n_s_find_method_handler;
  PyObject *__pyx_n_s_find_method_handler_locals_quer;
  PyObject *__pyx_n_s_finish_handler_with_stream_resp;
  PyObject *__pyx_n_s_finish_handler_with_unary_respo;
  PyObject *__pyx_n_s_finish_ops;
  PyObject *__pyx_n_s_flags;
  PyObject *__pyx_n_s_fn;
  PyObject *__pyx_n_s_force_client_auth;
  PyObject *__pyx_n_s_fork_epoch;
  PyObject *__pyx_n_s_fork_handler_failed;
  PyObject *__pyx_n_s_fork_handler_registered;
  PyObject *__pyx_n_s_fork_handler_registered_lock;
  PyObject *__pyx_n_s_fork_handlers_and_grpc_init;
  PyObject *__pyx_n_s_fork_in_progress;
  PyObject *__pyx_n_s_fork_in_progress_condition;
  PyObject *__pyx_n_s_fork_register_channel;
  PyObject *__pyx_n_s_fork_state;
  PyObject *__pyx_n_s_fork_unregister_channel;
  PyObject *__pyx_n_s_format;
  PyObject *__pyx_n_s_format_exception;
  PyObject *__pyx_n_s_fully_qualified_method;
  PyObject *__pyx_n_s_functools;
  PyObject *__pyx_n_s_future;
  PyObject *__pyx_n_s_g_gevent_activated;
  PyObject *__pyx_n_s_g_gevent_pool;
  PyObject *__pyx_n_s_g_gevent_threadpool;
  PyObject *__pyx_n_s_g_interrupt_check_period_ms;
  PyObject *__pyx_kp_u_gc;
  PyObject *__pyx_n_s_gen;
  PyObject *__pyx_n_s_generator_to_async_generator;
  PyObject *__pyx_n_s_generator_to_async_generator_loc;
  PyObject *__pyx_n_s_generic_handler;
  PyObject *__pyx_n_s_generic_handlers;
  PyObject *__pyx_n_s_generic_rpc_handlers;
  PyObject *__pyx_n_s_genexpr;
  PyObject *__pyx_n_s_get;
  PyObject *__pyx_n_s_getLogger;
  PyObject *__pyx_n_s_get_data;
  PyObject *__pyx_n_s_get_deadline_from_context;
  PyObject *__pyx_n_s_get_event_loop;
  PyObject *__pyx_n_s_get_event_loop_policy;
  PyObject *__pyx_n_s_get_fork_epoch;
  PyObject *__pyx_n_s_get_hub;
  PyObject *__pyx_n_s_get_metadata_locals_callback;
  PyObject *__pyx_n_s_get_plugin;
  PyObject *__pyx_n_s_get_registered_call_handle;
  PyObject *__pyx_n_s_get_running_loop;
  PyObject *__pyx_n_s_get_server_call_tracer_factory_a;
  PyObject *__pyx_n_s_get_working_loop;
  PyObject *__pyx_n_s_getstate;
  PyObject *__pyx_n_s_gevent;
  PyObject *__pyx_n_s_gevent_decrement_channel_count;
  PyObject *__pyx_n_s_gevent_hub;
  PyObject *__pyx_n_s_gevent_increment_channel_count;
  PyObject *__pyx_n_s_gevent_pool;
  PyObject *__pyx_n_s_grace;
  PyObject *__pyx_n_s_grpc;
  PyObject *__pyx_n_s_grpc__cython_cygrpc;
  PyObject *__pyx_kp_s_grpc_aio_EOF;
  PyObject *__pyx_n_s_grpc_call_error_string;
  PyObject *__pyx_n_s_grpc_call_wrapper;
  PyObject *__pyx_n_s_grpc_completion_queue_shutdown;
  PyObject *__pyx_kp_s_grpc_python__cygrpc__GrpcArgWrap;
  PyObject *__pyx_n_s_grpc_server_request_call;
  PyObject *__pyx_n_s_grpc_server_shutdown_and_notify;
  PyObject *__pyx_n_s_grpc_shutdown_wrapper;
  PyObject *__pyx_n_s_gzip;
  PyObject *__pyx_n_s_handle_callback_wrapper;
  PyObject *__pyx_n_s_handle_callbacks;
  PyObject *__pyx_n_s_handle_cancellation_from_core;
  PyObject *__pyx_n_s_handle_events;
  PyObject *__pyx_n_s_handle_exceptions;
  PyObject *__pyx_n_s_handle_rpc;
  PyObject *__pyx_n_s_handle_status_once_received;
  PyObject *__pyx_n_s_handle_stream_stream_rpc;
  PyObject *__pyx_n_s_handle_stream_unary_rpc;
  PyObject *__pyx_n_s_handle_unary_stream_rpc;
  PyObject *__pyx_n_s_handle_unary_unary_rpc;
  PyObject *__pyx_n_s_handler;
  PyObject *__pyx_n_s_handler_call_details;
  PyObject *__pyx_n_s_hex_codec;
  PyObject *__pyx_n_s_high;
  PyObject *__pyx_n_s_host;
  PyObject *__pyx_n_s_http2_initial_sequence_number;
  PyObject *__pyx_n_s_hub;
  PyObject *__pyx_n_s_id;
  PyObject *__pyx_n_s_identities;
  PyObject *__pyx_n_s_identity;
  PyObject *__pyx_n_s_identity_key;
  PyObject *__pyx_n_s_idle;
  PyObject *__pyx_kp_s_if_error_code_is_specified_so_mu;
  PyObject *__pyx_n_s_import;
  PyObject *__pyx_n_s_inbound_ops;
  PyObject *__pyx_n_s_increment;
  PyObject *__pyx_n_s_init;
  PyObject *__pyx_n_s_init_grpc_aio;
  PyObject *__pyx_n_s_init_grpc_gevent;
  PyObject *__pyx_n_s_init_subclass;
  PyObject *__pyx_n_s_initial_cert_config;
  PyObject *__pyx_kp_s_initial_cert_config_must_be_a_gr;
  PyObject *__pyx_n_s_initial_metadata;
  PyObject *__pyx_n_s_initial_metadata_op;
  PyObject *__pyx_n_s_initializing;
  PyObject *__pyx_n_s_initiate_stream_stream;
  PyObject *__pyx_n_s_initiate_unary_stream;
  PyObject *__pyx_n_s_insecure_server_credentials;
  PyObject *__pyx_n_s_inspect;
  PyObject *__pyx_n_s_install_context_from_request_cal;
  PyObject *__pyx_n_s_install_context_from_request_cal_2;
  PyObject *__pyx_n_s_int;
  PyObject *__pyx_n_s_integrated_call;
  PyObject *__pyx_n_s_integrated_call_locals_on_succe;
  PyObject *__pyx_n_s_intercept_service;
  PyObject *__pyx_n_s_interceptor;
  PyObject *__pyx_n_s_interceptors;
  PyObject *__pyx_n_s_internal;
  PyObject *__pyx_kp_s_internal_error_user_data_must_be;
  PyObject *__pyx_n_s_internal_poll;
  PyObject *__pyx_n_s_invalid_argument;
  PyObject *__pyx_kp_s_invalid_call_object_cannot_be_us;
  PyObject *__pyx_n_s_invalid_flags;
  PyObject *__pyx_n_s_invalid_metadata;
  PyObject *__pyx_n_s_invocation_metadata;
  PyObject *__pyx_n_s_is_algorithm_enabled;
  PyObject *__pyx_n_s_is_async_handler;
  PyObject *__pyx_n_s_is_coroutine;
  PyObject *__pyx_n_s_is_fork_support_enabled;
  PyObject *__pyx_n_s_is_locally_cancelled;
  PyObject *__pyx_n_s_is_ok;
  PyObject *__pyx_n_s_is_running;
  PyObject *__pyx_n_s_is_sampled;
  PyObject *__pyx_n_s_is_valid;
  PyObject *__pyx_n_s_isasyncgenfunction;
  PyObject *__pyx_n_s_isawaitable;
  PyObject *__pyx_n_s_iscoroutinefunction;
  PyObject *__pyx_kp_u_isenabled;
  PyObject *__pyx_n_s_item;
  PyObject *__pyx_n_s_iter;
  PyObject *__pyx_n_s_join;
  PyObject *__pyx_n_s_key;
  PyObject *__pyx_n_s_keys;
  PyObject *__pyx_n_s_last_observed_state;
  PyObject *__pyx_n_s_latent_event_arg;
  PyObject *__pyx_n_s_len;
  PyObject *__pyx_n_s_lk;
  PyObject *__pyx_n_s_local_connect_type;
  PyObject *__pyx_n_s_local_tcp;
  PyObject *__pyx_n_s_logging;
  PyObject *__pyx_n_s_loop;
  PyObject *__pyx_n_s_low;
  PyObject *__pyx_n_s_lower;
  PyObject *__pyx_n_s_main;
  PyObject *__pyx_n_s_managed_target;
  PyObject *__pyx_n_s_max_concurrent_streams;
  PyObject *__pyx_n_s_max_receive_message_length;
  PyObject *__pyx_n_s_max_results;
  PyObject *__pyx_n_s_max_send_message_length;
  PyObject *__pyx_n_s_maximum_concurrent_rpcs;
  PyObject *__pyx_kp_s_maximum_concurrent_rpcs_should_b;
  PyObject *__pyx_n_s_maxsize;
  PyObject *__pyx_n_s_maybe_save_server_trace_context;
  PyObject *__pyx_n_s_medium;
  PyObject *__pyx_n_s_members;
  PyObject *__pyx_n_s_message;
  PyObject *__pyx_n_s_metaclass;
  PyObject *__pyx_n_s_metadata;
  PyObject *__pyx_n_s_metadata_locals_genexpr;
  PyObject *__pyx_n_s_metadata_plugin;
  PyObject *__pyx_n_s_metadata_sent_observer;
  PyObject *__pyx_kp_s_metadata_was_invalid_s;
  PyObject *__pyx_n_s_method;
  PyObject *__pyx_n_s_method_bytes;
  PyObject *__pyx_n_s_method_handler;
  PyObject *__pyx_n_s_module;
  PyObject *__pyx_n_s_mro_entries;
  PyObject *__pyx_n_s_name;
  PyObject *__pyx_n_s_name_2;
  PyObject *__pyx_n_s_namedtuple;
  PyObject *__pyx_n_s_new;
  PyObject *__pyx_n_s_new_event_loop;
  PyObject *__pyx_n_s_next_call_event;
  PyObject *__pyx_n_s_next_call_event_locals_on_succes;
  PyObject *__pyx_n_s_next_event;
  PyObject *__pyx_n_s_next_event_locals_on_failure;
  PyObject *__pyx_n_s_next_event_locals_on_success;
  PyObject *__pyx_n_s_no_compress;
  PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
  PyObject *__pyx_n_s_none;
  PyObject *__pyx_n_s_not_found;
  PyObject *__pyx_n_s_not_invoked;
  PyObject *__pyx_n_s_not_on_client;
  PyObject *__pyx_n_s_not_on_server;
  PyObject *__pyx_n_s_notify_all;
  PyObject *__pyx_n_s_num_active_threads;
  PyObject *__pyx_n_s_object;
  PyObject *__pyx_kp_s_object_2;
  PyObject *__pyx_n_s_observability;
  PyObject *__pyx_n_s_observability_enabled;
  PyObject *__pyx_n_s_observability_plugin;
  PyObject *__pyx_kp_s_of_RPC_that_terminated_with_sta;
  PyObject *__pyx_kp_s_of_RPC_that_terminated_with_sta_2;
  PyObject *__pyx_n_s_ok;
  PyObject *__pyx_n_s_on_failure;
  PyObject *__pyx_n_s_on_success;
  PyObject *__pyx_n_s_op;
  PyObject *__pyx_n_s_operate;
  PyObject *__pyx_n_s_operation_complete;
  PyObject *__pyx_n_s_operations;
  PyObject *__pyx_n_s_operationses_and_tags;
  PyObject *__pyx_n_s_ops;
  PyObject *__pyx_n_s_options;
  PyObject *__pyx_n_s_os;
  PyObject *__pyx_n_s_out_of_range;
  PyObject *__pyx_n_s_outbound_initial_metadata;
  PyObject *__pyx_n_s_outbound_ops;
  PyObject *__pyx_n_s_partial;
  PyObject *__pyx_n_s_peer;
  PyObject *__pyx_n_s_peer_identities;
  PyObject *__pyx_n_s_peer_identity_key;
  PyObject *__pyx_n_s_pem_key_cert_pairs;
  PyObject *__pyx_n_s_pem_root_certificates;
  PyObject *__pyx_n_s_pem_root_certs;
  PyObject *__pyx_n_s_permission_denied;
  PyObject *__pyx_n_s_pickle;
  PyObject *__pyx_n_s_pkgutil;
  PyObject *__pyx_n_s_plugin;
  PyObject *__pyx_n_s_poll;
  PyObject *__pyx_n_s_poll_wrapper;
  PyObject *__pyx_n_s_poller;
  PyObject *__pyx_n_s_pool;
  PyObject *__pyx_n_s_pop;
  PyObject *__pyx_n_s_postfork_state_to_reset;
  PyObject *__pyx_n_s_postfork_states_to_reset;
  PyObject *__pyx_n_s_prepare;
  PyObject *__pyx_n_s_primary_user_agent_string;
  PyObject *__pyx_n_s_print_exc;
  PyObject *__pyx_n_s_private_key;
  PyObject *__pyx_n_s_properties;
  PyObject *__pyx_n_s_property;
  PyObject *__pyx_n_s_put;
  PyObject *__pyx_n_s_py_auth_context;
  PyObject *__pyx_n_s_python_call_credentials;
  PyObject *__pyx_n_s_pyx_PickleError;
  PyObject *__pyx_n_s_pyx_capi;
  PyObject *__pyx_n_s_pyx_checksum;
  PyObject *__pyx_n_s_pyx_result;
  PyObject *__pyx_n_s_pyx_state;
  PyObject *__pyx_n_s_pyx_type;
  PyObject *__pyx_n_s_pyx_unpickle_AioServer;
  PyObject *__pyx_n_s_pyx_unpickle_CensusContext;
  PyObject *__pyx_n_s_pyx_unpickle_ChannelCredential;
  PyObject *__pyx_n_s_pyx_unpickle_InsecureChannelCr;
  PyObject *__pyx_n_s_pyx_unpickle__Tag;
  PyObject *__pyx_n_s_pyx_vtable;
  PyObject *__pyx_n_s_qualname;
  PyObject *__pyx_n_s_query_call;
  PyObject *__pyx_n_s_query_handler;
  PyObject *__pyx_n_s_query_handlers;
  PyObject *__pyx_n_s_queue;
  PyObject *__pyx_n_s_queue_deadline;
  PyObject *__pyx_kp_s_queue_must_be_live;
  PyObject *__pyx_kp_s_queue_must_be_shutting_down_to_b;
  PyObject *__pyx_n_s_queue_shutdown;
  PyObject *__pyx_n_s_queue_timeout;
  PyObject *__pyx_n_s_raise_if_not_valid_trailing_meta;
  PyObject *__pyx_n_s_range;
  PyObject *__pyx_n_s_raw_message;
  PyObject *__pyx_n_s_read;
  PyObject *__pyx_n_s_read_socket;
  PyObject *__pyx_n_s_ready;
  PyObject *__pyx_n_s_receive_close_on_server;
  PyObject *__pyx_n_s_receive_initial_metadata;
  PyObject *__pyx_n_s_receive_initial_metadata_2;
  PyObject *__pyx_n_s_receive_initial_metadata_op;
  PyObject *__pyx_n_s_receive_message;
  PyObject *__pyx_n_s_receive_message_2;
  PyObject *__pyx_n_s_receive_message_op;
  PyObject *__pyx_n_s_receive_op;
  PyObject *__pyx_n_s_receive_serialized_message;
  PyObject *__pyx_n_s_receive_status_on_client;
  PyObject *__pyx_n_s_receive_status_on_client_op;
  PyObject *__pyx_n_s_received_message;
  PyObject *__pyx_n_s_recv;
  PyObject *__pyx_n_s_reduce;
  PyObject *__pyx_n_s_reduce_cython;
  PyObject *__pyx_n_s_reduce_ex;
  PyObject *__pyx_n_s_register;
  PyObject *__pyx_n_s_register_at_fork;
  PyObject *__pyx_n_s_register_completion_queue;
  PyObject *__pyx_n_s_register_method;
  PyObject *__pyx_n_s_registered_call_handle;
  PyObject *__pyx_n_s_registered_method;
  PyObject *__pyx_n_s_remove_reader;
  PyObject *__pyx_n_s_repr;
  PyObject *__pyx_n_s_repr_2;
  PyObject *__pyx_n_s_request;
  PyObject *__pyx_n_s_request_call;
  PyObject *__pyx_n_s_request_call_2;
  PyObject *__pyx_n_s_request_call_tag;
  PyObject *__pyx_n_s_request_deserializer;
  PyObject *__pyx_n_s_request_iterator;
  PyObject *__pyx_n_s_request_message;
  PyObject *__pyx_n_s_request_raw;
  PyObject *__pyx_n_s_request_registered_call;
  PyObject *__pyx_n_s_request_streaming;
  PyObject *__pyx_n_s_reset_grpc_config_vars;
  PyObject *__pyx_n_s_reset_postfork_child;
  PyObject *__pyx_n_s_resource_exhausted;
  PyObject *__pyx_n_s_response;
  PyObject *__pyx_n_s_response_message;
  PyObject *__pyx_n_s_response_raw;
  PyObject *__pyx_n_s_response_serializer;
  PyObject *__pyx_n_s_response_streaming;
  PyObject *__pyx_n_s_result;
  PyObject *__pyx_n_s_retain_self;
  PyObject *__pyx_n_s_return;
  PyObject *__pyx_n_s_return_from_user_request_generat;
  PyObject *__pyx_n_s_rpc_coro;
  PyObject *__pyx_n_s_rpc_state;
  PyObject *__pyx_n_s_rpc_task;
  PyObject *__pyx_n_s_rpc_tasks;
  PyObject *__pyx_n_s_run;
  PyObject *__pyx_n_s_run_2;
  PyObject *__pyx_n_s_run_coroutine_threadsafe;
  PyObject *__pyx_n_s_run_in_executor;
  PyObject *__pyx_n_s_run_interceptor;
  PyObject *__pyx_n_s_run_spawn_greenlets;
  PyObject *__pyx_n_s_run_with_context;
  PyObject *__pyx_n_s_run_with_context_locals__run;
  PyObject *__pyx_n_s_runtime_error;
  PyObject *__pyx_n_s_save_registered_method;
  PyObject *__pyx_n_s_save_trace_context;
  PyObject *__pyx_n_s_schedule_coro_threadsafe;
  PyObject *__pyx_n_s_schedule_rpc_coro;
  PyObject *__pyx_n_s_secondary_user_agent_string;
  PyObject *__pyx_n_s_segregated_call;
  PyObject *__pyx_n_s_segregated_call_locals_on_succe;
  PyObject *__pyx_n_s_self;
  PyObject *__pyx_kp_s_self__cq_cannot_be_converted_to;
  PyObject *__pyx_kp_s_self_arg_cannot_be_converted_to;
  PyObject *__pyx_kp_s_self_c_argument_cannot_be_conver;
  PyObject *__pyx_kp_s_self_c_credentials_cannot_be_con;
  PyObject *__pyx_kp_s_self_c_op_cannot_be_converted_to;
  PyObject *__pyx_n_s_send;
  PyObject *__pyx_n_s_send_close_from_client;
  PyObject *__pyx_n_s_send_close_op;
  PyObject *__pyx_n_s_send_error_status_from_server;
  PyObject *__pyx_n_s_send_initial_metadata;
  PyObject *__pyx_n_s_send_initial_metadata_2;
  PyObject *__pyx_n_s_send_initial_metadata_op;
  PyObject *__pyx_n_s_send_message;
  PyObject *__pyx_n_s_send_message_2;
  PyObject *__pyx_n_s_send_message_op;
  PyObject *__pyx_n_s_send_receive_close;
  PyObject *__pyx_n_s_send_serialized_message;
  PyObject *__pyx_n_s_send_status_from_server;
  PyObject *__pyx_n_s_server;
  PyObject *__pyx_n_s_server_call_tracer;
  PyObject *__pyx_n_s_server_certificate_config_ssl;
  PyObject *__pyx_n_s_server_credentials;
  PyObject *__pyx_n_s_server_credentials_alts;
  PyObject *__pyx_n_s_server_credentials_local;
  PyObject *__pyx_n_s_server_credentials_ssl;
  PyObject *__pyx_n_s_server_credentials_ssl_dynamic_c;
  PyObject *__pyx_n_s_server_id;
  PyObject *__pyx_n_s_server_main_loop;
  PyObject *__pyx_kp_s_server_must_be_started_and_not_s;
  PyObject *__pyx_n_s_server_queue;
  PyObject *__pyx_kp_s_server_queue_must_be_a_registere;
  PyObject *__pyx_n_s_server_started;
  PyObject *__pyx_n_s_service;
  PyObject *__pyx_n_s_service_accounts;
  PyObject *__pyx_n_s_servicer_context;
  PyObject *__pyx_n_s_serving_task_crash_handler;
  PyObject *__pyx_n_s_setDaemon;
  PyObject *__pyx_n_s_set_async_callback_func;
  PyObject *__pyx_n_s_set_census_context_on_call;
  PyObject *__pyx_n_s_set_code;
  PyObject *__pyx_n_s_set_compression;
  PyObject *__pyx_n_s_set_credentials;
  PyObject *__pyx_n_s_set_details;
  PyObject *__pyx_n_s_set_exception;
  PyObject *__pyx_n_s_set_instrumentation_context_on_c;
  PyObject *__pyx_n_s_set_internal_error;
  PyObject *__pyx_n_s_set_name;
  PyObject *__pyx_n_s_set_result;
  PyObject *__pyx_n_s_set_trailing_metadata;
  PyObject *__pyx_n_s_setblocking;
  PyObject *__pyx_n_s_setstate;
  PyObject *__pyx_n_s_setstate_cython;
  PyObject *__pyx_n_s_shield;
  PyObject *__pyx_n_s_shutdown;
  PyObject *__pyx_n_s_shutdown_await_next_greenlet;
  PyObject *__pyx_n_s_shutdown_cq;
  PyObject *__pyx_n_s_shutdown_grpc_aio;
  PyObject *__pyx_n_s_shutting_down_server;
  PyObject *__pyx_n_s_simplefilter;
  PyObject *__pyx_n_s_sleep;
  PyObject *__pyx_n_s_socket;
  PyObject *__pyx_n_s_socket_id;
  PyObject *__pyx_n_s_socketpair;
  PyObject *__pyx_n_s_span_id;
  PyObject *__pyx_n_s_spawn;
  PyObject *__pyx_n_s_spawn_callback_async;
  PyObject *__pyx_n_s_spawn_callback_in_thread;
  PyObject *__pyx_n_s_spawn_greenlets;
  PyObject *__pyx_n_s_spec;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_10;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_11;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_12;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_13;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_14;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_15;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_16;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_17;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_18;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_19;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_2;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_20;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_21;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_22;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_23;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_3;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_4;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_5;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_6;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_7;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_8;
  PyObject *__pyx_kp_s_src_python_grpcio_grpc__cython_9;
  PyObject *__pyx_n_s_ssl_session_cache;
  PyObject *__pyx_n_s_ssl_target_name_override;
  PyObject *__pyx_n_s_start;
  PyObject *__pyx_n_s_start_batch;
  PyObject *__pyx_n_s_start_channel_id;
  PyObject *__pyx_n_s_start_client_batch;
  PyObject *__pyx_n_s_start_server_batch;
  PyObject *__pyx_n_s_start_server_id;
  PyObject *__pyx_n_s_start_shutting_down;
  PyObject *__pyx_n_s_start_socket_id;
  PyObject *__pyx_n_s_started_tag;
  PyObject *__pyx_n_s_started_tags;
  PyObject *__pyx_n_s_state;
  PyObject *__pyx_n_s_status;
  PyObject *__pyx_n_s_status_code;
  PyObject *__pyx_n_s_status_task;
  PyObject *__pyx_n_s_stored_ctx;
  PyObject *__pyx_n_s_str;
  PyObject *__pyx_n_s_str_2;
  PyObject *__pyx_n_s_stream_handler;
  PyObject *__pyx_n_s_stream_stream;
  PyObject *__pyx_n_s_stream_unary;
  PyObject *__pyx_kp_s_stringsource;
  PyObject *__pyx_n_s_subchannel_id;
  PyObject *__pyx_n_s_success;
  PyObject *__pyx_n_s_super;
  PyObject *__pyx_n_s_sync_servicer_context;
  PyObject *__pyx_n_s_sys;
  PyObject *__pyx_n_s_t;
  PyObject *__pyx_n_s_tag;
  PyObject *__pyx_n_s_target;
  PyObject *__pyx_n_s_task;
  PyObject *__pyx_n_s_test;
  PyObject *__pyx_kp_s_the_server_has_already_started;
  PyObject *__pyx_kp_s_the_server_hasn_t_started_yet;
  PyObject *__pyx_kp_s_the_server_must_be_shutting_down;
  PyObject *__pyx_n_s_thread;
  PyObject *__pyx_n_s_thread_pool;
  PyObject *__pyx_n_s_threading;
  PyObject *__pyx_n_s_threadpool;
  PyObject *__pyx_n_s_throw;
  PyObject *__pyx_n_s_time;
  PyObject *__pyx_n_s_time_remaining;
  PyObject *__pyx_n_s_timeout;
  PyObject *__pyx_n_s_timeout_secs;
  PyObject *__pyx_n_s_to_call;
  PyObject *__pyx_n_s_to_channel_arg;
  PyObject *__pyx_n_s_too_many_operations;
  PyObject *__pyx_n_s_trace_id;
  PyObject *__pyx_n_s_traceback;
  PyObject *__pyx_n_s_tracing_enabled;
  PyObject *__pyx_n_s_trailing_metadata;
  PyObject *__pyx_n_s_transient_failure;
  PyObject *__pyx_n_s_true;
  PyObject *__pyx_n_s_try_to_connect;
  PyObject *__pyx_n_s_type;
  PyObject *__pyx_n_s_typing;
  PyObject *__pyx_n_s_uds;
  PyObject *__pyx_n_s_unary_handler;
  PyObject *__pyx_n_s_unary_stream;
  PyObject *__pyx_n_s_unary_unary;
  PyObject *__pyx_n_s_unauthenticated;
  PyObject *__pyx_n_s_unavailable;
  PyObject *__pyx_n_s_unimplemented;
  PyObject *__pyx_n_s_uninstall_context;
  PyObject *__pyx_n_s_unknown;
  PyObject *__pyx_n_s_unused_future;
  PyObject *__pyx_n_s_unused_task;
  PyObject *__pyx_n_s_update;
  PyObject *__pyx_n_s_upper;
  PyObject *__pyx_n_s_use_setstate;
  PyObject *__pyx_n_s_used_mask;
  PyObject *__pyx_n_s_user_tag;
  PyObject *__pyx_n_s_utf8;
  PyObject *__pyx_kp_s_utf_8;
  PyObject *__pyx_n_s_value;
  PyObject *__pyx_n_s_values;
  PyObject *__pyx_n_s_wait;
  PyObject *__pyx_n_s_wait_for;
  PyObject *__pyx_n_s_wait_for_ready;
  PyObject *__pyx_n_s_wait_for_ready_explicitly_set;
  PyObject *__pyx_n_s_wait_for_termination;
  PyObject *__pyx_n_s_wait_time;
  PyObject *__pyx_n_s_warning;
  PyObject *__pyx_n_s_warnings;
  PyObject *__pyx_n_s_watch_connectivity_state;
  PyObject *__pyx_n_s_wrap;
  PyObject *__pyx_n_s_wrapper;
  PyObject *__pyx_n_s_write;
  PyObject *__pyx_n_s_write_flag;
  PyObject *__pyx_n_s_xds;
  PyObject *__pyx_n_s_xds_server_credentials;
  PyObject *__pyx_n_s_yes;
  PyObject *__pyx_n_s_yield_to_queue;
  PyObject *__pyx_float_1_0;
  PyObject *__pyx_int_0;
  PyObject *__pyx_int_1;
  PyObject *__pyx_int_2;
  PyObject *__pyx_int_5;
  PyObject *__pyx_int_10;
  PyObject *__pyx_int_1000;
  PyObject *__pyx_int_1500;
  PyObject *__pyx_int_118587260;
  PyObject *__pyx_int_171381981;
  PyObject *__pyx_int_171651213;
  PyObject *__pyx_int_222419149;
  PyObject *__pyx_int_228825662;
  PyObject *__pyx_int_238750788;
  grpc_status_code __pyx_k__9;
  PyObject *__pyx_k__76;
  PyObject *__pyx_k__80;
  PyObject *__pyx_tuple_;
  PyObject *__pyx_tuple__4;
  PyObject *__pyx_tuple__8;
  PyObject *__pyx_slice__37;
  PyObject *__pyx_tuple__10;
  PyObject *__pyx_tuple__11;
  PyObject *__pyx_tuple__12;
  PyObject *__pyx_tuple__14;
  PyObject *__pyx_tuple__17;
  PyObject *__pyx_tuple__19;
  PyObject *__pyx_tuple__21;
  PyObject *__pyx_tuple__23;
  PyObject *__pyx_tuple__24;
  PyObject *__pyx_tuple__25;
  PyObject *__pyx_tuple__26;
  PyObject *__pyx_tuple__27;
  PyObject *__pyx_tuple__28;
  PyObject *__pyx_tuple__29;
  PyObject *__pyx_tuple__30;
  PyObject *__pyx_tuple__31;
  PyObject *__pyx_tuple__32;
  PyObject *__pyx_tuple__33;
  PyObject *__pyx_tuple__34;
  PyObject *__pyx_tuple__35;
  PyObject *__pyx_tuple__36;
  PyObject *__pyx_tuple__39;
  PyObject *__pyx_tuple__40;
  PyObject *__pyx_tuple__46;
  PyObject *__pyx_tuple__48;
  PyObject *__pyx_tuple__50;
  PyObject *__pyx_tuple__79;
  PyObject *__pyx_tuple__83;
  PyObject *__pyx_tuple__93;
  PyObject *__pyx_tuple__98;
  PyObject *__pyx_codeobj__2;
  PyObject *__pyx_codeobj__3;
  PyObject *__pyx_codeobj__5;
  PyObject *__pyx_codeobj__6;
  PyObject *__pyx_tuple__105;
  PyObject *__pyx_tuple__106;
  PyObject *__pyx_tuple__108;
  PyObject *__pyx_tuple__110;
  PyObject *__pyx_tuple__116;
  PyObject *__pyx_tuple__118;
  PyObject *__pyx_tuple__121;
  PyObject *__pyx_tuple__123;
  PyObject *__pyx_tuple__125;
  PyObject *__pyx_tuple__127;
  PyObject *__pyx_tuple__138;
  PyObject *__pyx_tuple__144;
  PyObject *__pyx_tuple__148;
  PyObject *__pyx_tuple__150;
  PyObject *__pyx_tuple__152;
  PyObject *__pyx_tuple__153;
  PyObject *__pyx_tuple__156;
  PyObject *__pyx_tuple__158;
  PyObject *__pyx_tuple__162;
  PyObject *__pyx_tuple__166;
  PyObject *__pyx_tuple__168;
  PyObject *__pyx_tuple__170;
  PyObject *__pyx_tuple__172;
  PyObject *__pyx_tuple__174;
  PyObject *__pyx_tuple__176;
  PyObject *__pyx_tuple__178;
  PyObject *__pyx_tuple__180;
  PyObject *__pyx_tuple__182;
  PyObject *__pyx_tuple__184;
  PyObject *__pyx_tuple__186;
  PyObject *__pyx_tuple__194;
  PyObject *__pyx_tuple__209;
  PyObject *__pyx_tuple__211;
  PyObject *__pyx_tuple__213;
  PyObject *__pyx_tuple__217;
  PyObject *__pyx_tuple__222;
  PyObject *__pyx_tuple__224;
  PyObject *__pyx_tuple__226;
  PyObject *__pyx_tuple__230;
  PyObject *__pyx_tuple__232;
  PyObject *__pyx_tuple__236;
  PyObject *__pyx_tuple__238;
  PyObject *__pyx_tuple__241;
  PyObject *__pyx_tuple__254;
  PyObject *__pyx_tuple__255;
  PyObject *__pyx_tuple__293;
  PyObject *__pyx_tuple__296;
  PyObject *__pyx_tuple__301;
  PyObject *__pyx_tuple__304;
  PyObject *__pyx_tuple__306;
  PyObject *__pyx_tuple__308;
  PyObject *__pyx_tuple__312;
  PyObject *__pyx_tuple__314;
  PyObject *__pyx_tuple__316;
  PyObject *__pyx_tuple__318;
  PyObject *__pyx_tuple__320;
  PyObject *__pyx_tuple__322;
  PyObject *__pyx_tuple__323;
  PyObject *__pyx_tuple__325;
  PyObject *__pyx_tuple__341;
  PyObject *__pyx_tuple__348;
  PyObject *__pyx_tuple__352;
  PyObject *__pyx_tuple__355;
  PyObject *__pyx_tuple__359;
  PyObject *__pyx_tuple__362;
  PyObject *__pyx_tuple__364;
  PyObject *__pyx_tuple__366;
  PyObject *__pyx_tuple__368;
  PyObject *__pyx_tuple__370;
  PyObject *__pyx_tuple__372;
  PyObject *__pyx_tuple__374;
  PyObject *__pyx_tuple__376;
  PyObject *__pyx_tuple__377;
  PyObject *__pyx_tuple__378;
  PyObject *__pyx_tuple__380;
  PyObject *__pyx_tuple__381;
  PyObject *__pyx_tuple__385;
  PyObject *__pyx_tuple__391;
  PyObject *__pyx_tuple__394;
  PyObject *__pyx_tuple__395;
  PyObject *__pyx_tuple__399;
  PyObject *__pyx_tuple__401;
  PyObject *__pyx_tuple__402;
  PyObject *__pyx_tuple__409;
  PyObject *__pyx_tuple__411;
  PyObject *__pyx_tuple__412;
  PyObject *__pyx_tuple__415;
  PyObject *__pyx_tuple__423;
  PyObject *__pyx_tuple__430;
  PyObject *__pyx_tuple__433;
  PyObject *__pyx_tuple__441;
  PyObject *__pyx_tuple__442;
  PyObject *__pyx_tuple__443;
  PyObject *__pyx_tuple__444;
  PyObject *__pyx_tuple__445;
  PyObject *__pyx_tuple__446;
  PyObject *__pyx_tuple__447;
  PyObject *__pyx_tuple__450;
  PyObject *__pyx_tuple__454;
  PyObject *__pyx_tuple__456;
  PyObject *__pyx_tuple__459;
  PyObject *__pyx_tuple__463;
  PyObject *__pyx_tuple__466;
  PyObject *__pyx_tuple__468;
  PyObject *__pyx_tuple__469;
  PyObject *__pyx_tuple__470;
  PyObject *__pyx_tuple__471;
  PyObject *__pyx_tuple__472;
  PyObject *__pyx_tuple__473;
  PyObject *__pyx_tuple__474;
  PyObject *__pyx_tuple__478;
  PyObject *__pyx_tuple__482;
  PyObject *__pyx_tuple__490;
  PyObject *__pyx_tuple__491;
  PyObject *__pyx_tuple__492;
  PyObject *__pyx_tuple__493;
  PyObject *__pyx_tuple__497;
  PyObject *__pyx_tuple__500;
  PyObject *__pyx_tuple__503;
  PyObject *__pyx_tuple__506;
  PyObject *__pyx_tuple__508;
  PyObject *__pyx_tuple__510;
  PyObject *__pyx_tuple__512;
  PyObject *__pyx_tuple__515;
  PyObject *__pyx_tuple__521;
  PyObject *__pyx_tuple__523;
  PyObject *__pyx_tuple__539;
  PyObject *__pyx_tuple__540;
  PyObject *__pyx_tuple__542;
  PyObject *__pyx_tuple__543;
  PyObject *__pyx_tuple__544;
  PyObject *__pyx_tuple__545;
  PyObject *__pyx_tuple__548;
  PyObject *__pyx_tuple__549;
  PyObject *__pyx_tuple__550;
  PyObject *__pyx_tuple__551;
  PyObject *__pyx_tuple__552;
  PyObject *__pyx_tuple__554;
  PyObject *__pyx_tuple__556;
  PyObject *__pyx_tuple__560;
  PyObject *__pyx_tuple__562;
  PyObject *__pyx_tuple__564;
  PyObject *__pyx_tuple__566;
  PyObject *__pyx_tuple__567;
  PyObject *__pyx_tuple__568;
  PyObject *__pyx_tuple__570;
  PyObject *__pyx_tuple__571;
  PyObject *__pyx_tuple__572;
  PyObject *__pyx_tuple__576;
  PyObject *__pyx_codeobj__13;
  PyObject *__pyx_codeobj__15;
  PyObject *__pyx_codeobj__16;
  PyObject *__pyx_codeobj__18;
  PyObject *__pyx_codeobj__20;
  PyObject *__pyx_codeobj__22;
  PyObject *__pyx_codeobj__41;
  PyObject *__pyx_codeobj__42;
  PyObject *__pyx_codeobj__43;
  PyObject *__pyx_codeobj__44;
  PyObject *__pyx_codeobj__45;
  PyObject *__pyx_codeobj__47;
  PyObject *__pyx_codeobj__51;
  PyObject *__pyx_codeobj__52;
  PyObject *__pyx_codeobj__53;
  PyObject *__pyx_codeobj__54;
  PyObject *__pyx_codeobj__55;
  PyObject *__pyx_codeobj__56;
  PyObject *__pyx_codeobj__59;
  PyObject *__pyx_codeobj__60;
  PyObject *__pyx_codeobj__61;
  PyObject *__pyx_codeobj__62;
  PyObject *__pyx_codeobj__63;
  PyObject *__pyx_codeobj__64;
  PyObject *__pyx_codeobj__65;
  PyObject *__pyx_codeobj__66;
  PyObject *__pyx_codeobj__67;
  PyObject *__pyx_codeobj__68;
  PyObject *__pyx_codeobj__72;
  PyObject *__pyx_codeobj__73;
  PyObject *__pyx_codeobj__74;
  PyObject *__pyx_codeobj__75;
  PyObject *__pyx_codeobj__77;
  PyObject *__pyx_codeobj__78;
  PyObject *__pyx_codeobj__81;
  PyObject *__pyx_codeobj__82;
  PyObject *__pyx_codeobj__84;
  PyObject *__pyx_codeobj__85;
  PyObject *__pyx_codeobj__86;
  PyObject *__pyx_codeobj__87;
  PyObject *__pyx_codeobj__88;
  PyObject *__pyx_codeobj__89;
  PyObject *__pyx_codeobj__90;
  PyObject *__pyx_codeobj__91;
  PyObject *__pyx_codeobj__92;
  PyObject *__pyx_codeobj__94;
  PyObject *__pyx_codeobj__95;
  PyObject *__pyx_codeobj__96;
  PyObject *__pyx_codeobj__97;
  PyObject *__pyx_codeobj__99;
  PyObject *__pyx_codeobj__100;
  PyObject *__pyx_codeobj__101;
  PyObject *__pyx_codeobj__102;
  PyObject *__pyx_codeobj__103;
  PyObject *__pyx_codeobj__104;
  PyObject *__pyx_codeobj__109;
  PyObject *__pyx_codeobj__111;
  PyObject *__pyx_codeobj__112;
  PyObject *__pyx_codeobj__113;
  PyObject *__pyx_codeobj__114;
  PyObject *__pyx_codeobj__115;
  PyObject *__pyx_codeobj__117;
  PyObject *__pyx_codeobj__119;
  PyObject *__pyx_codeobj__120;
  PyObject *__pyx_codeobj__122;
  PyObject *__pyx_codeobj__124;
  PyObject *__pyx_codeobj__126;
  PyObject *__pyx_codeobj__128;
  PyObject *__pyx_codeobj__129;
  PyObject *__pyx_codeobj__130;
  PyObject *__pyx_codeobj__131;
  PyObject *__pyx_codeobj__132;
  PyObject *__pyx_codeobj__133;
  PyObject *__pyx_codeobj__134;
  PyObject *__pyx_codeobj__135;
  PyObject *__pyx_codeobj__136;
  PyObject *__pyx_codeobj__137;
  PyObject *__pyx_codeobj__139;
  PyObject *__pyx_codeobj__140;
  PyObject *__pyx_codeobj__141;
  PyObject *__pyx_codeobj__142;
  PyObject *__pyx_codeobj__143;
  PyObject *__pyx_codeobj__145;
  PyObject *__pyx_codeobj__146;
  PyObject *__pyx_codeobj__147;
  PyObject *__pyx_codeobj__149;
  PyObject *__pyx_codeobj__151;
  PyObject *__pyx_codeobj__154;
  PyObject *__pyx_codeobj__155;
  PyObject *__pyx_codeobj__157;
  PyObject *__pyx_codeobj__159;
  PyObject *__pyx_codeobj__160;
  PyObject *__pyx_codeobj__161;
  PyObject *__pyx_codeobj__163;
  PyObject *__pyx_codeobj__164;
  PyObject *__pyx_codeobj__165;
  PyObject *__pyx_codeobj__167;
  PyObject *__pyx_codeobj__169;
  PyObject *__pyx_codeobj__171;
  PyObject *__pyx_codeobj__173;
  PyObject *__pyx_codeobj__175;
  PyObject *__pyx_codeobj__177;
  PyObject *__pyx_codeobj__179;
  PyObject *__pyx_codeobj__181;
  PyObject *__pyx_codeobj__183;
  PyObject *__pyx_codeobj__185;
  PyObject *__pyx_codeobj__187;
  PyObject *__pyx_codeobj__188;
  PyObject *__pyx_codeobj__189;
  PyObject *__pyx_codeobj__190;
  PyObject *__pyx_codeobj__191;
  PyObject *__pyx_codeobj__192;
  PyObject *__pyx_codeobj__193;
  PyObject *__pyx_codeobj__195;
  PyObject *__pyx_codeobj__196;
  PyObject *__pyx_codeobj__197;
  PyObject *__pyx_codeobj__198;
  PyObject *__pyx_codeobj__199;
  PyObject *__pyx_codeobj__200;
  PyObject *__pyx_codeobj__201;
  PyObject *__pyx_codeobj__202;
  PyObject *__pyx_codeobj__203;
  PyObject *__pyx_codeobj__204;
  PyObject *__pyx_codeobj__205;
  PyObject *__pyx_codeobj__206;
  PyObject *__pyx_codeobj__207;
  PyObject *__pyx_codeobj__208;
  PyObject *__pyx_codeobj__210;
  PyObject *__pyx_codeobj__212;
  PyObject *__pyx_codeobj__214;
  PyObject *__pyx_codeobj__215;
  PyObject *__pyx_codeobj__216;
  PyObject *__pyx_codeobj__218;
  PyObject *__pyx_codeobj__219;
  PyObject *__pyx_codeobj__220;
  PyObject *__pyx_codeobj__221;
  PyObject *__pyx_codeobj__223;
  PyObject *__pyx_codeobj__225;
  PyObject *__pyx_codeobj__227;
  PyObject *__pyx_codeobj__228;
  PyObject *__pyx_codeobj__229;
  PyObject *__pyx_codeobj__231;
  PyObject *__pyx_codeobj__233;
  PyObject *__pyx_codeobj__234;
  PyObject *__pyx_codeobj__235;
  PyObject *__pyx_codeobj__237;
  PyObject *__pyx_codeobj__239;
  PyObject *__pyx_codeobj__240;
  PyObject *__pyx_codeobj__242;
  PyObject *__pyx_codeobj__243;
  PyObject *__pyx_codeobj__244;
  PyObject *__pyx_codeobj__245;
  PyObject *__pyx_codeobj__246;
  PyObject *__pyx_codeobj__247;
  PyObject *__pyx_codeobj__248;
  PyObject *__pyx_codeobj__249;
  PyObject *__pyx_codeobj__250;
  PyObject *__pyx_codeobj__251;
  PyObject *__pyx_codeobj__252;
  PyObject *__pyx_codeobj__253;
  PyObject *__pyx_codeobj__256;
  PyObject *__pyx_codeobj__257;
  PyObject *__pyx_codeobj__258;
  PyObject *__pyx_codeobj__259;
  PyObject *__pyx_codeobj__260;
  PyObject *__pyx_codeobj__261;
  PyObject *__pyx_codeobj__262;
  PyObject *__pyx_codeobj__263;
  PyObject *__pyx_codeobj__264;
  PyObject *__pyx_codeobj__265;
  PyObject *__pyx_codeobj__266;
  PyObject *__pyx_codeobj__267;
  PyObject *__pyx_codeobj__268;
  PyObject *__pyx_codeobj__269;
  PyObject *__pyx_codeobj__270;
  PyObject *__pyx_codeobj__271;
  PyObject *__pyx_codeobj__272;
  PyObject *__pyx_codeobj__273;
  PyObject *__pyx_codeobj__274;
  PyObject *__pyx_codeobj__275;
  PyObject *__pyx_codeobj__276;
  PyObject *__pyx_codeobj__277;
  PyObject *__pyx_codeobj__278;
  PyObject *__pyx_codeobj__279;
  PyObject *__pyx_codeobj__280;
  PyObject *__pyx_codeobj__281;
  PyObject *__pyx_codeobj__282;
  PyObject *__pyx_codeobj__283;
  PyObject *__pyx_codeobj__284;
  PyObject *__pyx_codeobj__285;
  PyObject *__pyx_codeobj__286;
  PyObject *__pyx_codeobj__287;
  PyObject *__pyx_codeobj__288;
  PyObject *__pyx_codeobj__289;
  PyObject *__pyx_codeobj__290;
  PyObject *__pyx_codeobj__291;
  PyObject *__pyx_codeobj__292;
  PyObject *__pyx_codeobj__294;
  PyObject *__pyx_codeobj__295;
  PyObject *__pyx_codeobj__297;
  PyObject *__pyx_codeobj__298;
  PyObject *__pyx_codeobj__299;
  PyObject *__pyx_codeobj__300;
  PyObject *__pyx_codeobj__302;
  PyObject *__pyx_codeobj__303;
  PyObject *__pyx_codeobj__305;
  PyObject *__pyx_codeobj__307;
  PyObject *__pyx_codeobj__309;
  PyObject *__pyx_codeobj__310;
  PyObject *__pyx_codeobj__311;
  PyObject *__pyx_codeobj__313;
  PyObject *__pyx_codeobj__315;
  PyObject *__pyx_codeobj__317;
  PyObject *__pyx_codeobj__319;
  PyObject *__pyx_codeobj__321;
  PyObject *__pyx_codeobj__324;
  PyObject *__pyx_codeobj__326;
  PyObject *__pyx_codeobj__327;
  PyObject *__pyx_codeobj__328;
  PyObject *__pyx_codeobj__329;
  PyObject *__pyx_codeobj__330;
  PyObject *__pyx_codeobj__331;
  PyObject *__pyx_codeobj__332;
  PyObject *__pyx_codeobj__333;
  PyObject *__pyx_codeobj__334;
  PyObject *__pyx_codeobj__335;
  PyObject *__pyx_codeobj__336;
  PyObject *__pyx_codeobj__337;
  PyObject *__pyx_codeobj__338;
  PyObject *__pyx_codeobj__339;
  PyObject *__pyx_codeobj__340;
  PyObject *__pyx_codeobj__342;
  PyObject *__pyx_codeobj__343;
  PyObject *__pyx_codeobj__344;
  PyObject *__pyx_codeobj__345;
  PyObject *__pyx_codeobj__346;
  PyObject *__pyx_codeobj__347;
  PyObject *__pyx_codeobj__349;
  PyObject *__pyx_codeobj__350;
  PyObject *__pyx_codeobj__351;
  PyObject *__pyx_codeobj__353;
  PyObject *__pyx_codeobj__354;
  PyObject *__pyx_codeobj__356;
  PyObject *__pyx_codeobj__357;
  PyObject *__pyx_codeobj__358;
  PyObject *__pyx_codeobj__360;
  PyObject *__pyx_codeobj__361;
  PyObject *__pyx_codeobj__363;
  PyObject *__pyx_codeobj__365;
  PyObject *__pyx_codeobj__367;
  PyObject *__pyx_codeobj__369;
  PyObject *__pyx_codeobj__371;
  PyObject *__pyx_codeobj__373;
  PyObject *__pyx_codeobj__375;
  PyObject *__pyx_codeobj__379;
  PyObject *__pyx_codeobj__382;
  PyObject *__pyx_codeobj__383;
  PyObject *__pyx_codeobj__384;
  PyObject *__pyx_codeobj__386;
  PyObject *__pyx_codeobj__387;
  PyObject *__pyx_codeobj__388;
  PyObject *__pyx_codeobj__389;
  PyObject *__pyx_codeobj__390;
  PyObject *__pyx_codeobj__392;
  PyObject *__pyx_codeobj__393;
  PyObject *__pyx_codeobj__396;
  PyObject *__pyx_codeobj__397;
  PyObject *__pyx_codeobj__398;
  PyObject *__pyx_codeobj__400;
  PyObject *__pyx_codeobj__403;
  PyObject *__pyx_codeobj__404;
  PyObject *__pyx_codeobj__405;
  PyObject *__pyx_codeobj__406;
  PyObject *__pyx_codeobj__407;
  PyObject *__pyx_codeobj__408;
  PyObject *__pyx_codeobj__410;
  PyObject *__pyx_codeobj__413;
  PyObject *__pyx_codeobj__414;
  PyObject *__pyx_codeobj__416;
  PyObject *__pyx_codeobj__417;
  PyObject *__pyx_codeobj__418;
  PyObject *__pyx_codeobj__419;
  PyObject *__pyx_codeobj__420;
  PyObject *__pyx_codeobj__421;
  PyObject *__pyx_codeobj__422;
  PyObject *__pyx_codeobj__424;
  PyObject *__pyx_codeobj__425;
  PyObject *__pyx_codeobj__426;
  PyObject *__pyx_codeobj__427;
  PyObject *__pyx_codeobj__428;
  PyObject *__pyx_codeobj__429;
  PyObject *__pyx_codeobj__431;
  PyObject *__pyx_codeobj__432;
  PyObject *__pyx_codeobj__434;
  PyObject *__pyx_codeobj__435;
  PyObject *__pyx_codeobj__436;
  PyObject *__pyx_codeobj__437;
  PyObject *__pyx_codeobj__438;
  PyObject *__pyx_codeobj__439;
  PyObject *__pyx_codeobj__440;
  PyObject *__pyx_codeobj__448;
  PyObject *__pyx_codeobj__449;
  PyObject *__pyx_codeobj__451;
  PyObject *__pyx_codeobj__452;
  PyObject *__pyx_codeobj__453;
  PyObject *__pyx_codeobj__455;
  PyObject *__pyx_codeobj__457;
  PyObject *__pyx_codeobj__458;
  PyObject *__pyx_codeobj__460;
  PyObject *__pyx_codeobj__461;
  PyObject *__pyx_codeobj__462;
  PyObject *__pyx_codeobj__464;
  PyObject *__pyx_codeobj__465;
  PyObject *__pyx_codeobj__467;
  PyObject *__pyx_codeobj__475;
  PyObject *__pyx_codeobj__476;
  PyObject *__pyx_codeobj__477;
  PyObject *__pyx_codeobj__479;
  PyObject *__pyx_codeobj__480;
  PyObject *__pyx_codeobj__481;
  PyObject *__pyx_codeobj__483;
  PyObject *__pyx_codeobj__484;
  PyObject *__pyx_codeobj__485;
  PyObject *__pyx_codeobj__486;
  PyObject *__pyx_codeobj__487;
  PyObject *__pyx_codeobj__488;
  PyObject *__pyx_codeobj__489;
  PyObject *__pyx_codeobj__494;
  PyObject *__pyx_codeobj__495;
  PyObject *__pyx_codeobj__496;
  PyObject *__pyx_codeobj__498;
  PyObject *__pyx_codeobj__499;
  PyObject *__pyx_codeobj__501;
  PyObject *__pyx_codeobj__502;
  PyObject *__pyx_codeobj__504;
  PyObject *__pyx_codeobj__505;
  PyObject *__pyx_codeobj__507;
  PyObject *__pyx_codeobj__509;
  PyObject *__pyx_codeobj__511;
  PyObject *__pyx_codeobj__513;
  PyObject *__pyx_codeobj__514;
  PyObject *__pyx_codeobj__516;
  PyObject *__pyx_codeobj__517;
  PyObject *__pyx_codeobj__518;
  PyObject *__pyx_codeobj__519;
  PyObject *__pyx_codeobj__520;
  PyObject *__pyx_codeobj__522;
  PyObject *__pyx_codeobj__524;
  PyObject *__pyx_codeobj__525;
  PyObject *__pyx_codeobj__526;
  PyObject *__pyx_codeobj__527;
  PyObject *__pyx_codeobj__528;
  PyObject *__pyx_codeobj__529;
  PyObject *__pyx_codeobj__530;
  PyObject *__pyx_codeobj__531;
  PyObject *__pyx_codeobj__532;
  PyObject *__pyx_codeobj__533;
  PyObject *__pyx_codeobj__534;
  PyObject *__pyx_codeobj__535;
  PyObject *__pyx_codeobj__536;
  PyObject *__pyx_codeobj__537;
  PyObject *__pyx_codeobj__538;
  PyObject *__pyx_codeobj__541;
  PyObject *__pyx_codeobj__546;
  PyObject *__pyx_codeobj__547;
  PyObject *__pyx_codeobj__553;
  PyObject *__pyx_codeobj__555;
  PyObject *__pyx_codeobj__557;
  PyObject *__pyx_codeobj__558;
  PyObject *__pyx_codeobj__559;
  PyObject *__pyx_codeobj__561;
  PyObject *__pyx_codeobj__563;
  PyObject *__pyx_codeobj__565;
  PyObject *__pyx_codeobj__569;
  PyObject *__pyx_codeobj__573;
  PyObject *__pyx_codeobj__574;
  PyObject *__pyx_codeobj__575;
  PyObject *__pyx_codeobj__577;
  PyObject *__pyx_codeobj__578;
  PyObject *__pyx_codeobj__579;
  PyObject *__pyx_codeobj__580;
  PyObject *__pyx_codeobj__581;
} __pyx_mstate;

#if CYTHON_USE_MODULE_STATE
#ifdef __cplusplus
namespace {
  extern struct PyModuleDef __pyx_moduledef;
} /* anonymous namespace */
#else
static struct PyModuleDef __pyx_moduledef;
#endif

#define __pyx_mstate(o) ((__pyx_mstate *)__Pyx_PyModule_GetState(o))

#define __pyx_mstate_global (__pyx_mstate(PyState_FindModule(&__pyx_moduledef)))

#define __pyx_m (PyState_FindModule(&__pyx_moduledef))
#else
static __pyx_mstate __pyx_mstate_global_static =
#ifdef __cplusplus
    {};
#else
    {0};
#endif
static __pyx_mstate *__pyx_mstate_global = &__pyx_mstate_global_static;
#endif
/* #### Code section: module_state_clear ### */
#if CYTHON_USE_MODULE_STATE
static int __pyx_m_clear(PyObject *m) {
  __pyx_mstate *clear_module_state = __pyx_mstate(m);
  if (!clear_module_state) return 0;
  Py_CLEAR(clear_module_state->__pyx_d);
  Py_CLEAR(clear_module_state->__pyx_b);
  Py_CLEAR(clear_module_state->__pyx_cython_runtime);
  Py_CLEAR(clear_module_state->__pyx_empty_tuple);
  Py_CLEAR(clear_module_state->__pyx_empty_bytes);
  Py_CLEAR(clear_module_state->__pyx_empty_unicode);
  #ifdef __Pyx_CyFunction_USED
  Py_CLEAR(clear_module_state->__pyx_CyFunctionType);
  #endif
  #ifdef __Pyx_FusedFunction_USED
  Py_CLEAR(clear_module_state->__pyx_FusedFunctionType);
  #endif
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type);
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4bool_bool);
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_7complex_complex);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ChannelArg);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Call);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Call);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__CallState);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ChannelState);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Channel);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallHandle);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_BaseEvent);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Operation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallDetails);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Server);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Server);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__Tag);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__AioState);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__AioCall);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_AioChannel);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_RPCState);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ServicerContext);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_AioServer);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CensusContext);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination);
  Py_CLEAR(clear_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg);
  Py_CLEAR(clear_module_state->__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg);
  Py_CLEAR(clear_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_);
  Py_CLEAR(clear_module_state->__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_);
  Py_CLEAR(clear_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args);
  Py_CLEAR(clear_module_state->__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args);
  Py_CLEAR(clear_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_);
  Py_CLEAR(clear_module_state->__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_);
  Py_CLEAR(clear_module_state->__pyx_kp_s_0);
  Py_CLEAR(clear_module_state->__pyx_kp_s_1);
  Py_CLEAR(clear_module_state->__pyx_n_s_ALTSChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_ALTSChannelCredentials___reduce);
  Py_CLEAR(clear_module_state->__pyx_n_s_ALTSChannelCredentials___setstat);
  Py_CLEAR(clear_module_state->__pyx_n_s_AWAIT_THREADS_TIMEOUT_SECONDS);
  Py_CLEAR(clear_module_state->__pyx_n_s_AbortError);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Abort_already_called);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Abort_error_has_been_replaced);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Abort_error_unexpectedly_suppres);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Aborting_method_s_due_to_server);
  Py_CLEAR(clear_module_state->__pyx_n_s_ActiveThreadCount);
  Py_CLEAR(clear_module_state->__pyx_n_s_ActiveThreadCount___init);
  Py_CLEAR(clear_module_state->__pyx_n_s_ActiveThreadCount_await_zero_th);
  Py_CLEAR(clear_module_state->__pyx_n_s_ActiveThreadCount_decrement);
  Py_CLEAR(clear_module_state->__pyx_n_s_ActiveThreadCount_increment);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall__handle_status_once_rec);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall__repr);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_add_done_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_cancel);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_cancelled);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_done);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_initiate_stream_stream);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_initiate_unary_stream);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_is_locally_cancelled);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_is_ok);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_receive_serialized_mess);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_send_receive_close);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_send_serialized_message);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_set_internal_error);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_status);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_stream_unary);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_time_remaining);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioCall_unary_unary);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioChannel);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioChannel___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioChannel___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioChannel_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioChannel_check_connectivity_st);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioChannel_close);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioChannel_closed);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioChannel_closing);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioChannel_watch_connectivity_st);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioRpcStatus);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioRpcStatus___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioRpcStatus___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioRpcStatus_code);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioRpcStatus_debug_error_string);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioRpcStatus_details);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioRpcStatus_trailing_metadata);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioServer);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioServer___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioServer___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioServer__request_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioServer__server_main_loop);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioServer__serving_task_crash_ha);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioServer__start_shutting_down);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioServer_add_generic_rpc_handle);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioServer_add_insecure_port);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioServer_add_secure_port);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioServer_is_running);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioServer_shutdown);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioServer_start);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioServer_wait_for_termination);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioState);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioState___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_AioState___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_AssertionError);
  Py_CLEAR(clear_module_state->__pyx_n_s_AsyncIOEngine);
  Py_CLEAR(clear_module_state->__pyx_n_s_AttributeError);
  Py_CLEAR(clear_module_state->__pyx_n_s_BaseCompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_n_s_BaseCompletionQueue___reduce_cyt);
  Py_CLEAR(clear_module_state->__pyx_n_s_BaseCompletionQueue___setstate_c);
  Py_CLEAR(clear_module_state->__pyx_n_s_BaseError);
  Py_CLEAR(clear_module_state->__pyx_n_s_BaseEvent);
  Py_CLEAR(clear_module_state->__pyx_n_s_BatchOperationEvent);
  Py_CLEAR(clear_module_state->__pyx_n_s_BatchOperationEvent___reduce_cyt);
  Py_CLEAR(clear_module_state->__pyx_n_s_BatchOperationEvent___setstate_c);
  Py_CLEAR(clear_module_state->__pyx_n_s_BatchOperationTag);
  Py_CLEAR(clear_module_state->__pyx_n_s_BatchOperationTag___reduce_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_BatchOperationTag___setstate_cy);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Binary_metadata_key_s_expected_b);
  Py_CLEAR(clear_module_state->__pyx_n_s_BoundEventLoop);
  Py_CLEAR(clear_module_state->__pyx_n_s_BoundEventLoop___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_BoundEventLoop___setstate_cytho);
  Py_CLEAR(clear_module_state->__pyx_n_s_BoundEventLoop_close);
  Py_CLEAR(clear_module_state->__pyx_n_s_COMPRESSION_METADATA_STRING_MAP);
  Py_CLEAR(clear_module_state->__pyx_n_s_CUSTOM_IO_MANAGER);
  Py_CLEAR(clear_module_state->__pyx_n_s_CYGRPC_STATUS_CODE_TO_STATUS_COD);
  Py_CLEAR(clear_module_state->__pyx_n_s_Call);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallCredentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallCredentials___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallCredentials___setstate_cytho);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallDetails);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallDetails___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallDetails___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallError);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallHandle);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallHandle___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallHandle___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallState);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallState___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallState___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Call___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Call___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Call__custom_op_on_c_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_Call__start_batch);
  Py_CLEAR(clear_module_state->__pyx_n_s_Call_cancel);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Call_credentials_are_only_valid);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Call_credentials_may_not_be_NULL);
  Py_CLEAR(clear_module_state->__pyx_n_s_Call_peer);
  Py_CLEAR(clear_module_state->__pyx_n_s_Call_set_credentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_Call_start_client_batch);
  Py_CLEAR(clear_module_state->__pyx_n_s_Call_start_server_batch);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallbackFailureHandler);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallbackFailureHandler___reduce);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallbackFailureHandler___setstat);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallbackWrapper);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallbackWrapper___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_CallbackWrapper___setstate_cytho);
  Py_CLEAR(clear_module_state->__pyx_n_s_CancelledError);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Cannot_invoke_RPC_on_closed_chan);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Cannot_invoke_RPC_s);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Cannot_monitor_channel_state_s);
  Py_CLEAR(clear_module_state->__pyx_n_s_CensusContext);
  Py_CLEAR(clear_module_state->__pyx_n_s_CensusContext___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_CensusContext___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Channel);
  Py_CLEAR(clear_module_state->__pyx_n_s_ChannelArg);
  Py_CLEAR(clear_module_state->__pyx_n_s_ChannelArgKey);
  Py_CLEAR(clear_module_state->__pyx_n_s_ChannelArg___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_ChannelArg___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_ChannelArgs);
  Py_CLEAR(clear_module_state->__pyx_n_s_ChannelArgs___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_ChannelArgs___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_ChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_ChannelCredentials___reduce_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_ChannelCredentials___setstate_cy);
  Py_CLEAR(clear_module_state->__pyx_n_s_ChannelState);
  Py_CLEAR(clear_module_state->__pyx_n_s_ChannelState___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_ChannelState___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Channel___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Channel___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Channel_check_connectivity_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_Channel_close);
  Py_CLEAR(clear_module_state->__pyx_n_s_Channel_close_on_fork);
  Py_CLEAR(clear_module_state->__pyx_n_s_Channel_get_registered_call_hand);
  Py_CLEAR(clear_module_state->__pyx_n_s_Channel_integrated_call);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Channel_is_closed);
  Py_CLEAR(clear_module_state->__pyx_n_s_Channel_next_call_event);
  Py_CLEAR(clear_module_state->__pyx_n_s_Channel_segregated_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_Channel_target);
  Py_CLEAR(clear_module_state->__pyx_n_s_Channel_watch_connectivity_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompletionQueue___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompletionQueue___setstate_cytho);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompletionQueue__internal_poll);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompletionQueue_clear);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompletionQueue_poll);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompletionQueue_shutdown);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompletionType);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompositeCallCredentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompositeCallCredentials___reduc);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompositeCallCredentials___setst);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompositeChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompositeChannelCredentials___re);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompositeChannelCredentials___se);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompressionAlgorithm);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompressionLevel);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompressionOptions);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompressionOptions___reduce_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompressionOptions___setstate_cy);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompressionOptions_disable_algor);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompressionOptions_enable_algori);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompressionOptions_is_algorithm);
  Py_CLEAR(clear_module_state->__pyx_n_s_CompressionOptions_to_channel_ar);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Compression_setting_must_be_spec);
  Py_CLEAR(clear_module_state->__pyx_n_s_ComputeEngineChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_ComputeEngineChannelCredentials_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_ComputeEngineChannelCredentials_3);
  Py_CLEAR(clear_module_state->__pyx_n_s_ConcurrentRpcLimiter);
  Py_CLEAR(clear_module_state->__pyx_n_s_ConcurrentRpcLimiter___reduce_c);
  Py_CLEAR(clear_module_state->__pyx_n_s_ConcurrentRpcLimiter___setstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_ConcurrentRpcLimiter__decrease);
  Py_CLEAR(clear_module_state->__pyx_n_s_ConcurrentRpcLimiter_check_befo);
  Py_CLEAR(clear_module_state->__pyx_n_s_ConcurrentRpcLimiter_decrease_o);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Concurrent_RPC_limit_exceeded);
  Py_CLEAR(clear_module_state->__pyx_n_s_Condition);
  Py_CLEAR(clear_module_state->__pyx_n_s_ConnectivityEvent);
  Py_CLEAR(clear_module_state->__pyx_n_s_ConnectivityEvent___reduce_cytho);
  Py_CLEAR(clear_module_state->__pyx_n_s_ConnectivityEvent___setstate_cyt);
  Py_CLEAR(clear_module_state->__pyx_n_s_ConnectivityState);
  Py_CLEAR(clear_module_state->__pyx_n_s_ConnectivityTag);
  Py_CLEAR(clear_module_state->__pyx_n_s_ConnectivityTag___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_ConnectivityTag___setstate_cyth);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Core_should_not_return_GRPC_QUEU);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Credentials_couldn_t_have_been_s);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Dedicated_exception_class_for_wa);
  Py_CLEAR(clear_module_state->__pyx_n_s_DeprecationWarning);
  Py_CLEAR(clear_module_state->__pyx_n_s_EMPTY_FLAGS);
  Py_CLEAR(clear_module_state->__pyx_n_s_EMPTY_MASK);
  Py_CLEAR(clear_module_state->__pyx_n_s_EOF);
  Py_CLEAR(clear_module_state->__pyx_n_s_EOF_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_EOF___bool);
  Py_CLEAR(clear_module_state->__pyx_n_s_EOF___len);
  Py_CLEAR(clear_module_state->__pyx_n_s_EOF___repr);
  Py_CLEAR(clear_module_state->__pyx_n_s_EOF___str);
  Py_CLEAR(clear_module_state->__pyx_n_s_EOF__repr);
  Py_CLEAR(clear_module_state->__pyx_n_s_EX_USAGE);
  Py_CLEAR(clear_module_state->__pyx_n_s_Enum);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Error_fetching_certificate_confi);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Error_fetching_certificate_confi_2);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Error_in_callback_for_method_s);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Error_in_grpc_server_request_cal);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Error_in_grpc_server_request_reg);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Exception_not_handled_by__handle);
  Py_CLEAR(clear_module_state->__pyx_n_s_ExecuteBatchError);
  Py_CLEAR(clear_module_state->__pyx_kp_s_ExecuteBatchError_raised_in_core);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Exiting_child_due_to_raised_exce);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Expected_bytes_str_or_unicode_no);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Expected_int_bytes_or_behavior_g);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Expected_str_not);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Expecting_non_ok_status_code);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Failed_grpc_call_start_batch_wit);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Failed_s_s);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Failed_sending_error_status_from);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Failed_to_get_server_sockets_ple);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Failed_to_get_servers_please_ens);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Failed_to_get_the_channel_please);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Failed_to_get_the_server_please);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Failed_to_get_the_socket_please);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Failed_to_get_the_subchannel_ple);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Failed_to_get_top_channels_pleas);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Failed_to_receive_any_message_fr);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Failed_to_shutdown_gRPC_Core_aft);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Failed_to_shutdown_gRPC_Python_t);
  Py_CLEAR(clear_module_state->__pyx_n_s_ForkManagedThread);
  Py_CLEAR(clear_module_state->__pyx_n_s_ForkManagedThread___init);
  Py_CLEAR(clear_module_state->__pyx_n_s_ForkManagedThread___init___local);
  Py_CLEAR(clear_module_state->__pyx_n_s_ForkManagedThread_join);
  Py_CLEAR(clear_module_state->__pyx_n_s_ForkManagedThread_setDaemon);
  Py_CLEAR(clear_module_state->__pyx_n_s_ForkManagedThread_start);
  Py_CLEAR(clear_module_state->__pyx_n_s_ForkState);
  Py_CLEAR(clear_module_state->__pyx_n_s_ForkState___init);
  Py_CLEAR(clear_module_state->__pyx_n_s_GRPC_ASYNCIO_ENGINE);
  Py_CLEAR(clear_module_state->__pyx_n_s_GRPC_COMPRESSION_CHANNEL_DEFAULT);
  Py_CLEAR(clear_module_state->__pyx_n_s_GRPC_COMPRESSION_REQUEST_ALGORIT);
  Py_CLEAR(clear_module_state->__pyx_n_s_GRPC_ENABLE_FORK_SUPPORT);
  Py_CLEAR(clear_module_state->__pyx_n_s_GRPC_ENABLE_FORK_SUPPORT_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_GRPC_PROPAGATE_CANCELLATION);
  Py_CLEAR(clear_module_state->__pyx_n_s_GRPC_PROPAGATE_CENSUS_STATS_CONT);
  Py_CLEAR(clear_module_state->__pyx_n_s_GRPC_PROPAGATE_CENSUS_TRACING_CO);
  Py_CLEAR(clear_module_state->__pyx_n_s_GRPC_PROPAGATE_DEADLINE);
  Py_CLEAR(clear_module_state->__pyx_n_s_GRPC_PROPAGATE_DEFAULTS);
  Py_CLEAR(clear_module_state->__pyx_n_s_Group);
  Py_CLEAR(clear_module_state->__pyx_n_s_GrpcArgWrapper);
  Py_CLEAR(clear_module_state->__pyx_n_s_GrpcArgWrapper___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_GrpcArgWrapper___setstate_cytho);
  Py_CLEAR(clear_module_state->__pyx_n_s_GrpcCallWrapper);
  Py_CLEAR(clear_module_state->__pyx_kp_s_HandleExceptions_s);
  Py_CLEAR(clear_module_state->__pyx_n_s_HandlerCallDetails);
  Py_CLEAR(clear_module_state->__pyx_n_s_HandlerCallDetails___reduce_cyt);
  Py_CLEAR(clear_module_state->__pyx_n_s_HandlerCallDetails___setstate_c);
  Py_CLEAR(clear_module_state->__pyx_n_s_IMMUTABLE_EMPTY_METADATA);
  Py_CLEAR(clear_module_state->__pyx_n_s_INTERNAL_CALL_ERROR_MESSAGE_FOR);
  Py_CLEAR(clear_module_state->__pyx_n_s_ImportError);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_InitialMetadataFlags);
  Py_CLEAR(clear_module_state->__pyx_n_s_InsecureChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_InsecureChannelCredentials___red);
  Py_CLEAR(clear_module_state->__pyx_n_s_InsecureChannelCredentials___set);
  Py_CLEAR(clear_module_state->__pyx_n_s_IntegratedCall);
  Py_CLEAR(clear_module_state->__pyx_n_s_IntegratedCall___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_IntegratedCall___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_IntegratedCall_cancel);
  Py_CLEAR(clear_module_state->__pyx_n_s_IntegratedCall_operate);
  Py_CLEAR(clear_module_state->__pyx_n_s_InternalError);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Internal_error_from_Core);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Internal_gRPC_call_error_d);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Invalid_encoding_on_s);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Invalid_trailing_metadata_type_e);
  Py_CLEAR(clear_module_state->__pyx_n_s_KeyError);
  Py_CLEAR(clear_module_state->__pyx_n_s_KeyboardInterrupt);
  Py_CLEAR(clear_module_state->__pyx_n_s_LOGGER);
  Py_CLEAR(clear_module_state->__pyx_n_s_LatentEventArg);
  Py_CLEAR(clear_module_state->__pyx_n_s_LocalChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_LocalChannelCredentials___reduce);
  Py_CLEAR(clear_module_state->__pyx_n_s_LocalChannelCredentials___setsta);
  Py_CLEAR(clear_module_state->__pyx_n_s_LocalConnectionType);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Locally_aborted);
  Py_CLEAR(clear_module_state->__pyx_n_s_Lock);
  Py_CLEAR(clear_module_state->__pyx_n_s_MessageReceiver);
  Py_CLEAR(clear_module_state->__pyx_n_s_MessageReceiver___anext);
  Py_CLEAR(clear_module_state->__pyx_n_s_MessageReceiver___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_MessageReceiver___setstate_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_MessageReceiver__async_message);
  Py_CLEAR(clear_module_state->__pyx_n_s_MetadataPluginCallCredentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_MetadataPluginCallCredentials_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_MetadataPluginCallCredentials_3);
  Py_CLEAR(clear_module_state->__pyx_n_s_Metadatum);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Method_not_found);
  Py_CLEAR(clear_module_state->__pyx_n_s_NON_OK_CALL_REPRESENTATION);
  Py_CLEAR(clear_module_state->__pyx_kp_s_No_custom_hooks_are_implemented);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Non_thread_safe_operation);
  Py_CLEAR(clear_module_state->__pyx_n_s_None);
  Py_CLEAR(clear_module_state->__pyx_n_s_NotImplementedError);
  Py_CLEAR(clear_module_state->__pyx_n_s_OK_CALL_REPRESENTATION);
  Py_CLEAR(clear_module_state->__pyx_n_s_Operation);
  Py_CLEAR(clear_module_state->__pyx_n_s_OperationType);
  Py_CLEAR(clear_module_state->__pyx_n_s_Operation___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Operation___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Optional);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Optional_int);
  Py_CLEAR(clear_module_state->__pyx_n_s_POLLER);
  Py_CLEAR(clear_module_state->__pyx_n_s_PickleError);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Please_report_to_https_github_co);
  Py_CLEAR(clear_module_state->__pyx_n_s_PollerCompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_n_s_PollerCompletionQueue___reduce_c);
  Py_CLEAR(clear_module_state->__pyx_n_s_PollerCompletionQueue___setstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_PollerCompletionQueue__handle_ev);
  Py_CLEAR(clear_module_state->__pyx_n_s_PollerCompletionQueue__poll_wrap);
  Py_CLEAR(clear_module_state->__pyx_n_s_PollerCompletionQueue_bind_loop);
  Py_CLEAR(clear_module_state->__pyx_n_s_PropagationConstants);
  Py_CLEAR(clear_module_state->__pyx_n_s_Pyx_CFunc_1f6ebd__4grpc_7_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_Pyx_CFunc_4grpc_7_cython_6cygr);
  Py_CLEAR(clear_module_state->__pyx_n_s_Pyx_CFunc_4grpc_7_cython_6cygr_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_Pyx_CFunc_7f0cf6__4grpc_7_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_Queue);
  Py_CLEAR(clear_module_state->__pyx_n_s_RLock);
  Py_CLEAR(clear_module_state->__pyx_n_s_RPCState);
  Py_CLEAR(clear_module_state->__pyx_n_s_RPCState___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_RPCState___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_kp_s_RPC_already_finished);
  Py_CLEAR(clear_module_state->__pyx_kp_s_RPC_cancelled_for_servicer_metho);
  Py_CLEAR(clear_module_state->__pyx_kp_s_RPC_cancelled_for_unknown_reason);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Raised_if_the_server_is_stopped);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Raised_upon_unexpected_errors_in);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Raised_when_calling_abort_in_ser);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Raised_when_execute_batch_return);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Raised_when_the_usage_of_API_by);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveCloseOnServerOperation);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveCloseOnServerOperation_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveCloseOnServerOperation_3);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveCloseOnServerOperation_ca);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveCloseOnServerOperation_ty);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveInitialMetadataOperation);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveInitialMetadataOperation_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveInitialMetadataOperation_3);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveInitialMetadataOperation_4);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveInitialMetadataOperation_5);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveMessageOperation);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveMessageOperation___reduce);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveMessageOperation___setsta);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveMessageOperation_message);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveMessageOperation_type);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveStatusOnClientOperation);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveStatusOnClientOperation_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveStatusOnClientOperation_3);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveStatusOnClientOperation_c);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveStatusOnClientOperation_d);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveStatusOnClientOperation_e);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveStatusOnClientOperation_t);
  Py_CLEAR(clear_module_state->__pyx_n_s_ReceiveStatusOnClientOperation_t_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_RegisteredMethod);
  Py_CLEAR(clear_module_state->__pyx_n_s_RegisteredMethod___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_RegisteredMethod___setstate_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_RequestCallError);
  Py_CLEAR(clear_module_state->__pyx_n_s_RequestCallEvent);
  Py_CLEAR(clear_module_state->__pyx_n_s_RequestCallEvent___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_RequestCallEvent___setstate_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_RequestCallTag);
  Py_CLEAR(clear_module_state->__pyx_n_s_RequestCallTag___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_RequestCallTag___setstate_cytho);
  Py_CLEAR(clear_module_state->__pyx_n_s_RuntimeError);
  Py_CLEAR(clear_module_state->__pyx_n_s_SERVICES_TO_EXCLUDE);
  Py_CLEAR(clear_module_state->__pyx_n_s_SSLChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_SSLChannelCredentials___reduce_c);
  Py_CLEAR(clear_module_state->__pyx_n_s_SSLChannelCredentials___setstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_SSLSessionCacheLRU);
  Py_CLEAR(clear_module_state->__pyx_n_s_SSLSessionCacheLRU___reduce_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_SSLSessionCacheLRU___setstate_cy);
  Py_CLEAR(clear_module_state->__pyx_n_s_SegregatedCall);
  Py_CLEAR(clear_module_state->__pyx_n_s_SegregatedCall___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_SegregatedCall___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_SegregatedCall_cancel);
  Py_CLEAR(clear_module_state->__pyx_n_s_SegregatedCall_next_event);
  Py_CLEAR(clear_module_state->__pyx_n_s_SegregatedCall_operate);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendCloseFromClientOperation);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendCloseFromClientOperation___r);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendCloseFromClientOperation___s);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendCloseFromClientOperation_typ);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendInitialMetadataOperation);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendInitialMetadataOperation___r);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendInitialMetadataOperation___s);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendInitialMetadataOperation_typ);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendMessageOperation);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendMessageOperation___reduce_cy);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendMessageOperation___setstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendMessageOperation_type);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendStatusFromServerOperation);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendStatusFromServerOperation_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendStatusFromServerOperation_3);
  Py_CLEAR(clear_module_state->__pyx_n_s_SendStatusFromServerOperation_ty);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Send_initial_metadata_failed_alr);
  Py_CLEAR(clear_module_state->__pyx_n_s_Server);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServerCertificateConfig);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServerCertificateConfig___reduce);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServerCertificateConfig___setsta);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServerCertificateConfiguration);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServerCredentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServerCredentials___reduce_cytho);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServerCredentials___setstate_cyt);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServerShutdownEvent);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServerShutdownEvent___reduce_cyt);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServerShutdownEvent___setstate_c);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServerShutdownTag);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServerShutdownTag___reduce_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServerShutdownTag___setstate_cy);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServerStoppedError);
  Py_CLEAR(clear_module_state->__pyx_n_s_Server___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Server___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Server_add_http2_port);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Server_already_stopped);
  Py_CLEAR(clear_module_state->__pyx_n_s_Server_cancel_all_calls);
  Py_CLEAR(clear_module_state->__pyx_n_s_Server_destroy);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Server_not_in_ready_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_Server_register_completion_queue);
  Py_CLEAR(clear_module_state->__pyx_n_s_Server_register_method);
  Py_CLEAR(clear_module_state->__pyx_n_s_Server_request_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_Server_request_registered_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_Server_shutdown);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Server_shutdown_failed_no_comple);
  Py_CLEAR(clear_module_state->__pyx_n_s_Server_start);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext___setstate_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_abort);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_abort_with_stat);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_add_done_callba);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_auth_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_cancelled);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_code);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_details);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_disable_next_me);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_done);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_invocation_meta);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_peer);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_peer_identities);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_peer_identity_k);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_read);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_send_initial_me);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_set_code);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_set_compression);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_set_details);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_set_trailing_me);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_time_remaining);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_trailing_metada);
  Py_CLEAR(clear_module_state->__pyx_n_s_ServicerContext_write);
  Py_CLEAR(clear_module_state->__pyx_n_s_SslPemKeyCertPair);
  Py_CLEAR(clear_module_state->__pyx_n_s_SslPemKeyCertPair___reduce_cytho);
  Py_CLEAR(clear_module_state->__pyx_n_s_SslPemKeyCertPair___setstate_cyt);
  Py_CLEAR(clear_module_state->__pyx_n_s_StatusCode);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext___reduce_cy);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext___setstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext_abort);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext_add_callbac);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext_auth_contex);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext_disable_nex);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext_invocation);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext_peer);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext_peer_identi);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext_peer_identi_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext_send_initia);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext_set_code);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext_set_compres);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext_set_details);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext_set_trailin);
  Py_CLEAR(clear_module_state->__pyx_n_s_SyncServicerContext_time_remain);
  Py_CLEAR(clear_module_state->__pyx_n_s_SystemExit);
  Py_CLEAR(clear_module_state->__pyx_n_s_TRUE);
  Py_CLEAR(clear_module_state->__pyx_n_s_TRUE_VALUES);
  Py_CLEAR(clear_module_state->__pyx_n_s_TYPE_METADATA_STRING);
  Py_CLEAR(clear_module_state->__pyx_n_s_Tag);
  Py_CLEAR(clear_module_state->__pyx_n_s_Tag___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Tag___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_kp_s_The_base_class_for_exceptions_ge);
  Py_CLEAR(clear_module_state->__pyx_n_s_Thread);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Timed_out);
  Py_CLEAR(clear_module_state->__pyx_n_s_TimeoutError);
  Py_CLEAR(clear_module_state->__pyx_n_s_True);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Tuple_Tuple_str_Union_str_bytes);
  Py_CLEAR(clear_module_state->__pyx_n_s_TypeError);
  Py_CLEAR(clear_module_state->__pyx_n_s_UNKNOWN_CANCELLATION_DETAILS);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Unexpected_s_raised_by_servicer);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Unexpected_s_s);
  Py_CLEAR(clear_module_state->__pyx_n_s_UnicodeDecodeError);
  Py_CLEAR(clear_module_state->__pyx_n_s_Unknown);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Unsupported_engine_type_s);
  Py_CLEAR(clear_module_state->__pyx_n_s_UsageError);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Using_s_as_I_O_engine);
  Py_CLEAR(clear_module_state->__pyx_n_s_ValueError);
  Py_CLEAR(clear_module_state->__pyx_n_s_WatchConnectivityFailed);
  Py_CLEAR(clear_module_state->__pyx_n_s_WriteFlag);
  Py_CLEAR(clear_module_state->__pyx_n_s_XDSChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_XDSChannelCredentials___reduce_c);
  Py_CLEAR(clear_module_state->__pyx_n_s_XDSChannelCredentials___setstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_YES);
  Py_CLEAR(clear_module_state->__pyx_n_s_Yes);
  Py_CLEAR(clear_module_state->__pyx_n_s__107);
  Py_CLEAR(clear_module_state->__pyx_n_s__38);
  Py_CLEAR(clear_module_state->__pyx_kp_u__49);
  Py_CLEAR(clear_module_state->__pyx_n_s__57);
  Py_CLEAR(clear_module_state->__pyx_kp_u__58);
  Py_CLEAR(clear_module_state->__pyx_kp_u__69);
  Py_CLEAR(clear_module_state->__pyx_kp_b__7);
  Py_CLEAR(clear_module_state->__pyx_kp_s__7);
  Py_CLEAR(clear_module_state->__pyx_kp_u__70);
  Py_CLEAR(clear_module_state->__pyx_kp_u__71);
  Py_CLEAR(clear_module_state->__pyx_n_s_abort);
  Py_CLEAR(clear_module_state->__pyx_n_s_abort_with_status);
  Py_CLEAR(clear_module_state->__pyx_n_s_aborted);
  Py_CLEAR(clear_module_state->__pyx_n_s_active_thread_count);
  Py_CLEAR(clear_module_state->__pyx_n_s_actual_code);
  Py_CLEAR(clear_module_state->__pyx_n_s_add);
  Py_CLEAR(clear_module_state->__pyx_n_s_add_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_add_callback_handler_locals_han);
  Py_CLEAR(clear_module_state->__pyx_n_s_add_done_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_add_generic_rpc_handlers);
  Py_CLEAR(clear_module_state->__pyx_n_s_add_http2_port);
  Py_CLEAR(clear_module_state->__pyx_n_s_add_insecure_port);
  Py_CLEAR(clear_module_state->__pyx_n_s_add_reader);
  Py_CLEAR(clear_module_state->__pyx_n_s_add_secure_port);
  Py_CLEAR(clear_module_state->__pyx_n_s_address);
  Py_CLEAR(clear_module_state->__pyx_n_s_address_c_string);
  Py_CLEAR(clear_module_state->__pyx_n_s_aenter);
  Py_CLEAR(clear_module_state->__pyx_n_s_aexit);
  Py_CLEAR(clear_module_state->__pyx_n_s_after_in_child);
  Py_CLEAR(clear_module_state->__pyx_n_s_after_in_parent);
  Py_CLEAR(clear_module_state->__pyx_n_s_agen);
  Py_CLEAR(clear_module_state->__pyx_n_s_aiter);
  Py_CLEAR(clear_module_state->__pyx_n_s_algorithm);
  Py_CLEAR(clear_module_state->__pyx_n_s_already_accepted);
  Py_CLEAR(clear_module_state->__pyx_n_s_already_exists);
  Py_CLEAR(clear_module_state->__pyx_n_s_already_finished);
  Py_CLEAR(clear_module_state->__pyx_n_s_already_invoked);
  Py_CLEAR(clear_module_state->__pyx_n_s_anext);
  Py_CLEAR(clear_module_state->__pyx_n_s_append);
  Py_CLEAR(clear_module_state->__pyx_n_s_apply);
  Py_CLEAR(clear_module_state->__pyx_n_s_args);
  Py_CLEAR(clear_module_state->__pyx_n_s_arguments);
  Py_CLEAR(clear_module_state->__pyx_n_s_ascii);
  Py_CLEAR(clear_module_state->__pyx_n_s_async_callback_func);
  Py_CLEAR(clear_module_state->__pyx_n_s_async_generator_to_generator);
  Py_CLEAR(clear_module_state->__pyx_n_s_async_message_receiver);
  Py_CLEAR(clear_module_state->__pyx_n_s_async_response_generator);
  Py_CLEAR(clear_module_state->__pyx_n_s_asyncio);
  Py_CLEAR(clear_module_state->__pyx_n_s_asyncio_coroutines);
  Py_CLEAR(clear_module_state->__pyx_n_s_asyncio_tasks);
  Py_CLEAR(clear_module_state->__pyx_n_s_atexit);
  Py_CLEAR(clear_module_state->__pyx_n_s_auth_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_await);
  Py_CLEAR(clear_module_state->__pyx_n_s_await_zero_threads);
  Py_CLEAR(clear_module_state->__pyx_n_s_backup_queue);
  Py_CLEAR(clear_module_state->__pyx_n_s_batch_error);
  Py_CLEAR(clear_module_state->__pyx_n_s_batch_operation_tag);
  Py_CLEAR(clear_module_state->__pyx_n_s_batch_operations);
  Py_CLEAR(clear_module_state->__pyx_n_s_before);
  Py_CLEAR(clear_module_state->__pyx_kp_b_bin);
  Py_CLEAR(clear_module_state->__pyx_n_s_bind_loop);
  Py_CLEAR(clear_module_state->__pyx_n_s_block_if_fork_in_progress);
  Py_CLEAR(clear_module_state->__pyx_n_s_bool);
  Py_CLEAR(clear_module_state->__pyx_n_s_buffer_hint);
  Py_CLEAR(clear_module_state->__pyx_n_s_build_census_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_bytes_ctx);
  Py_CLEAR(clear_module_state->__pyx_n_s_c_call_credentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_c_call_error);
  Py_CLEAR(clear_module_state->__pyx_n_s_c_cert_config);
  Py_CLEAR(clear_module_state->__pyx_n_s_c_deadline);
  Py_CLEAR(clear_module_state->__pyx_n_s_c_details);
  Py_CLEAR(clear_module_state->__pyx_n_s_c_error_details);
  Py_CLEAR(clear_module_state->__pyx_n_s_c_event);
  Py_CLEAR(clear_module_state->__pyx_n_s_c_key);
  Py_CLEAR(clear_module_state->__pyx_n_s_c_options);
  Py_CLEAR(clear_module_state->__pyx_n_s_c_peer);
  Py_CLEAR(clear_module_state->__pyx_n_s_c_pem_root_certs);
  Py_CLEAR(clear_module_state->__pyx_n_s_c_returned_str);
  Py_CLEAR(clear_module_state->__pyx_n_s_c_target);
  Py_CLEAR(clear_module_state->__pyx_n_s_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_call_credentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_call_credentialses);
  Py_CLEAR(clear_module_state->__pyx_n_s_call_creds);
  Py_CLEAR(clear_module_state->__pyx_n_s_call_details);
  Py_CLEAR(clear_module_state->__pyx_n_s_call_error);
  Py_CLEAR(clear_module_state->__pyx_n_s_call_handle);
  Py_CLEAR(clear_module_state->__pyx_n_s_call_queue);
  Py_CLEAR(clear_module_state->__pyx_n_s_call_soon_threadsafe);
  Py_CLEAR(clear_module_state->__pyx_n_s_call_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_callback_func);
  Py_CLEAR(clear_module_state->__pyx_n_s_callback_wrapper);
  Py_CLEAR(clear_module_state->__pyx_n_s_cancel);
  Py_CLEAR(clear_module_state->__pyx_n_s_cancel_all_calls);
  Py_CLEAR(clear_module_state->__pyx_n_s_cancelled);
  Py_CLEAR(clear_module_state->__pyx_kp_s_cannot_register_completion_queue);
  Py_CLEAR(clear_module_state->__pyx_n_s_capacity);
  Py_CLEAR(clear_module_state->__pyx_n_s_capsule);
  Py_CLEAR(clear_module_state->__pyx_n_s_capsule_ptr);
  Py_CLEAR(clear_module_state->__pyx_n_s_catch_warnings);
  Py_CLEAR(clear_module_state->__pyx_n_s_cb);
  Py_CLEAR(clear_module_state->__pyx_n_s_cb_func);
  Py_CLEAR(clear_module_state->__pyx_n_s_census_ctx);
  Py_CLEAR(clear_module_state->__pyx_n_s_cert_config);
  Py_CLEAR(clear_module_state->__pyx_n_s_cert_config_fetcher);
  Py_CLEAR(clear_module_state->__pyx_kp_s_cert_config_fetcher_must_be_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_certificate_chain);
  Py_CLEAR(clear_module_state->__pyx_n_s_certificate_configuration);
  Py_CLEAR(clear_module_state->__pyx_n_s_cfunc_to_py);
  Py_CLEAR(clear_module_state->__pyx_n_s_channel);
  Py_CLEAR(clear_module_state->__pyx_n_s_channel_credentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_channel_credentials_alts);
  Py_CLEAR(clear_module_state->__pyx_n_s_channel_credentials_compute_engi);
  Py_CLEAR(clear_module_state->__pyx_n_s_channel_credentials_insecure);
  Py_CLEAR(clear_module_state->__pyx_n_s_channel_credentials_local);
  Py_CLEAR(clear_module_state->__pyx_n_s_channel_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_channel_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_channels);
  Py_CLEAR(clear_module_state->__pyx_n_s_channelz_get_channel);
  Py_CLEAR(clear_module_state->__pyx_n_s_channelz_get_server);
  Py_CLEAR(clear_module_state->__pyx_n_s_channelz_get_server_sockets);
  Py_CLEAR(clear_module_state->__pyx_n_s_channelz_get_servers);
  Py_CLEAR(clear_module_state->__pyx_n_s_channelz_get_socket);
  Py_CLEAR(clear_module_state->__pyx_n_s_channelz_get_subchannel);
  Py_CLEAR(clear_module_state->__pyx_n_s_channelz_get_top_channels);
  Py_CLEAR(clear_module_state->__pyx_n_s_check_before_request_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_check_connectivity_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_class);
  Py_CLEAR(clear_module_state->__pyx_n_s_class_getitem);
  Py_CLEAR(clear_module_state->__pyx_n_s_clear);
  Py_CLEAR(clear_module_state->__pyx_n_s_clear_server_call_tracer_factory);
  Py_CLEAR(clear_module_state->__pyx_n_s_client_config_in_slice);
  Py_CLEAR(clear_module_state->__pyx_n_s_cline_in_traceback);
  Py_CLEAR(clear_module_state->__pyx_n_s_close);
  Py_CLEAR(clear_module_state->__pyx_n_s_close_on_fork);
  Py_CLEAR(clear_module_state->__pyx_n_s_close_on_fork_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_closed);
  Py_CLEAR(clear_module_state->__pyx_n_s_closing);
  Py_CLEAR(clear_module_state->__pyx_n_s_code);
  Py_CLEAR(clear_module_state->__pyx_n_s_codecs);
  Py_CLEAR(clear_module_state->__pyx_n_s_collections);
  Py_CLEAR(clear_module_state->__pyx_n_s_common);
  Py_CLEAR(clear_module_state->__pyx_n_s_completion_type);
  Py_CLEAR(clear_module_state->__pyx_n_s_compression);
  Py_CLEAR(clear_module_state->__pyx_n_s_compression_algorithm_name);
  Py_CLEAR(clear_module_state->__pyx_n_s_concurrency_exceeded);
  Py_CLEAR(clear_module_state->__pyx_n_s_condition);
  Py_CLEAR(clear_module_state->__pyx_n_s_connecting);
  Py_CLEAR(clear_module_state->__pyx_n_s_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_context_loop);
  Py_CLEAR(clear_module_state->__pyx_n_s_contextvars);
  Py_CLEAR(clear_module_state->__pyx_n_s_contextvars_supported);
  Py_CLEAR(clear_module_state->__pyx_n_s_continuation);
  Py_CLEAR(clear_module_state->__pyx_n_s_copy);
  Py_CLEAR(clear_module_state->__pyx_n_s_copy_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_core_function_name);
  Py_CLEAR(clear_module_state->__pyx_n_s_coro);
  Py_CLEAR(clear_module_state->__pyx_n_s_create_client_call_tracer);
  Py_CLEAR(clear_module_state->__pyx_n_s_create_future);
  Py_CLEAR(clear_module_state->__pyx_n_s_create_server_call_tracer_factor);
  Py_CLEAR(clear_module_state->__pyx_n_s_create_task);
  Py_CLEAR(clear_module_state->__pyx_n_s_credentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_credentials_2);
  Py_CLEAR(clear_module_state->__pyx_kp_s_credentials_roots_pem);
  Py_CLEAR(clear_module_state->__pyx_n_s_creds);
  Py_CLEAR(clear_module_state->__pyx_n_s_ctx);
  Py_CLEAR(clear_module_state->__pyx_n_s_custom_io_manager);
  Py_CLEAR(clear_module_state->__pyx_n_s_custom_op_on_c_call);
  Py_CLEAR(clear_module_state->__pyx_kp_s_cygrpc);
  Py_CLEAR(clear_module_state->__pyx_n_s_cython_call_credentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_daemon);
  Py_CLEAR(clear_module_state->__pyx_n_s_daemonic);
  Py_CLEAR(clear_module_state->__pyx_n_s_data);
  Py_CLEAR(clear_module_state->__pyx_n_s_data_loss);
  Py_CLEAR(clear_module_state->__pyx_n_s_deadline);
  Py_CLEAR(clear_module_state->__pyx_n_s_deadline_exceeded);
  Py_CLEAR(clear_module_state->__pyx_kp_s_dealloc___called_on_running_se);
  Py_CLEAR(clear_module_state->__pyx_n_s_debug);
  Py_CLEAR(clear_module_state->__pyx_n_s_debug_error_string);
  Py_CLEAR(clear_module_state->__pyx_n_s_decode);
  Py_CLEAR(clear_module_state->__pyx_n_s_decrease_active_rpcs_count);
  Py_CLEAR(clear_module_state->__pyx_n_s_decrease_once_finished);
  Py_CLEAR(clear_module_state->__pyx_n_s_decrement);
  Py_CLEAR(clear_module_state->__pyx_n_s_default_authority);
  Py_CLEAR(clear_module_state->__pyx_n_s_default_vtable);
  Py_CLEAR(clear_module_state->__pyx_n_s_deflate);
  Py_CLEAR(clear_module_state->__pyx_n_s_destroy);
  Py_CLEAR(clear_module_state->__pyx_n_s_details);
  Py_CLEAR(clear_module_state->__pyx_n_s_details_bytes);
  Py_CLEAR(clear_module_state->__pyx_n_s_dict);
  Py_CLEAR(clear_module_state->__pyx_n_s_dict_2);
  Py_CLEAR(clear_module_state->__pyx_kp_u_disable);
  Py_CLEAR(clear_module_state->__pyx_n_s_disable_algorithm);
  Py_CLEAR(clear_module_state->__pyx_n_s_disable_next_message_compression);
  Py_CLEAR(clear_module_state->__pyx_n_s_discard);
  Py_CLEAR(clear_module_state->__pyx_n_s_doc);
  Py_CLEAR(clear_module_state->__pyx_n_s_done);
  Py_CLEAR(clear_module_state->__pyx_n_s_dump_xds_configs);
  Py_CLEAR(clear_module_state->__pyx_n_s_e);
  Py_CLEAR(clear_module_state->__pyx_kp_u_enable);
  Py_CLEAR(clear_module_state->__pyx_n_s_enable_algorithm);
  Py_CLEAR(clear_module_state->__pyx_n_s_enable_census);
  Py_CLEAR(clear_module_state->__pyx_n_s_encode);
  Py_CLEAR(clear_module_state->__pyx_n_s_end_time);
  Py_CLEAR(clear_module_state->__pyx_n_s_endswith);
  Py_CLEAR(clear_module_state->__pyx_n_s_enter);
  Py_CLEAR(clear_module_state->__pyx_n_s_enter_user_request_generator);
  Py_CLEAR(clear_module_state->__pyx_n_s_enum);
  Py_CLEAR(clear_module_state->__pyx_n_s_enumerate);
  Py_CLEAR(clear_module_state->__pyx_n_s_environ);
  Py_CLEAR(clear_module_state->__pyx_n_s_errno);
  Py_CLEAR(clear_module_state->__pyx_n_s_error);
  Py_CLEAR(clear_module_state->__pyx_n_s_error_code);
  Py_CLEAR(clear_module_state->__pyx_n_s_error_details);
  Py_CLEAR(clear_module_state->__pyx_n_s_error_str);
  Py_CLEAR(clear_module_state->__pyx_n_s_error_string);
  Py_CLEAR(clear_module_state->__pyx_n_s_event);
  Py_CLEAR(clear_module_state->__pyx_n_s_exc_info);
  Py_CLEAR(clear_module_state->__pyx_n_s_exception);
  Py_CLEAR(clear_module_state->__pyx_n_s_exception_type);
  Py_CLEAR(clear_module_state->__pyx_n_s_execute_batch);
  Py_CLEAR(clear_module_state->__pyx_n_s_exit);
  Py_CLEAR(clear_module_state->__pyx_n_s_exit_2);
  Py_CLEAR(clear_module_state->__pyx_kp_s_expected_certificate_to_be_bytes);
  Py_CLEAR(clear_module_state->__pyx_kp_s_expected_pem_key_cert_pairs_to_b);
  Py_CLEAR(clear_module_state->__pyx_kp_s_expected_registered_completion_q);
  Py_CLEAR(clear_module_state->__pyx_n_s_failed_precondition);
  Py_CLEAR(clear_module_state->__pyx_n_s_failure_handler);
  Py_CLEAR(clear_module_state->__pyx_n_s_fallback_credentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_fileno);
  Py_CLEAR(clear_module_state->__pyx_n_s_find_method_handler);
  Py_CLEAR(clear_module_state->__pyx_n_s_find_method_handler_locals_quer);
  Py_CLEAR(clear_module_state->__pyx_n_s_finish_handler_with_stream_resp);
  Py_CLEAR(clear_module_state->__pyx_n_s_finish_handler_with_unary_respo);
  Py_CLEAR(clear_module_state->__pyx_n_s_finish_ops);
  Py_CLEAR(clear_module_state->__pyx_n_s_flags);
  Py_CLEAR(clear_module_state->__pyx_n_s_fn);
  Py_CLEAR(clear_module_state->__pyx_n_s_force_client_auth);
  Py_CLEAR(clear_module_state->__pyx_n_s_fork_epoch);
  Py_CLEAR(clear_module_state->__pyx_n_s_fork_handler_failed);
  Py_CLEAR(clear_module_state->__pyx_n_s_fork_handler_registered);
  Py_CLEAR(clear_module_state->__pyx_n_s_fork_handler_registered_lock);
  Py_CLEAR(clear_module_state->__pyx_n_s_fork_handlers_and_grpc_init);
  Py_CLEAR(clear_module_state->__pyx_n_s_fork_in_progress);
  Py_CLEAR(clear_module_state->__pyx_n_s_fork_in_progress_condition);
  Py_CLEAR(clear_module_state->__pyx_n_s_fork_register_channel);
  Py_CLEAR(clear_module_state->__pyx_n_s_fork_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_fork_unregister_channel);
  Py_CLEAR(clear_module_state->__pyx_n_s_format);
  Py_CLEAR(clear_module_state->__pyx_n_s_format_exception);
  Py_CLEAR(clear_module_state->__pyx_n_s_fully_qualified_method);
  Py_CLEAR(clear_module_state->__pyx_n_s_functools);
  Py_CLEAR(clear_module_state->__pyx_n_s_future);
  Py_CLEAR(clear_module_state->__pyx_n_s_g_gevent_activated);
  Py_CLEAR(clear_module_state->__pyx_n_s_g_gevent_pool);
  Py_CLEAR(clear_module_state->__pyx_n_s_g_gevent_threadpool);
  Py_CLEAR(clear_module_state->__pyx_n_s_g_interrupt_check_period_ms);
  Py_CLEAR(clear_module_state->__pyx_kp_u_gc);
  Py_CLEAR(clear_module_state->__pyx_n_s_gen);
  Py_CLEAR(clear_module_state->__pyx_n_s_generator_to_async_generator);
  Py_CLEAR(clear_module_state->__pyx_n_s_generator_to_async_generator_loc);
  Py_CLEAR(clear_module_state->__pyx_n_s_generic_handler);
  Py_CLEAR(clear_module_state->__pyx_n_s_generic_handlers);
  Py_CLEAR(clear_module_state->__pyx_n_s_generic_rpc_handlers);
  Py_CLEAR(clear_module_state->__pyx_n_s_genexpr);
  Py_CLEAR(clear_module_state->__pyx_n_s_get);
  Py_CLEAR(clear_module_state->__pyx_n_s_getLogger);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_data);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_deadline_from_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_event_loop);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_event_loop_policy);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_fork_epoch);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_hub);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_metadata_locals_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_plugin);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_registered_call_handle);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_running_loop);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_server_call_tracer_factory_a);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_working_loop);
  Py_CLEAR(clear_module_state->__pyx_n_s_getstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_gevent);
  Py_CLEAR(clear_module_state->__pyx_n_s_gevent_decrement_channel_count);
  Py_CLEAR(clear_module_state->__pyx_n_s_gevent_hub);
  Py_CLEAR(clear_module_state->__pyx_n_s_gevent_increment_channel_count);
  Py_CLEAR(clear_module_state->__pyx_n_s_gevent_pool);
  Py_CLEAR(clear_module_state->__pyx_n_s_grace);
  Py_CLEAR(clear_module_state->__pyx_n_s_grpc);
  Py_CLEAR(clear_module_state->__pyx_n_s_grpc__cython_cygrpc);
  Py_CLEAR(clear_module_state->__pyx_kp_s_grpc_aio_EOF);
  Py_CLEAR(clear_module_state->__pyx_n_s_grpc_call_error_string);
  Py_CLEAR(clear_module_state->__pyx_n_s_grpc_call_wrapper);
  Py_CLEAR(clear_module_state->__pyx_n_s_grpc_completion_queue_shutdown);
  Py_CLEAR(clear_module_state->__pyx_kp_s_grpc_python__cygrpc__GrpcArgWrap);
  Py_CLEAR(clear_module_state->__pyx_n_s_grpc_server_request_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_grpc_server_shutdown_and_notify);
  Py_CLEAR(clear_module_state->__pyx_n_s_grpc_shutdown_wrapper);
  Py_CLEAR(clear_module_state->__pyx_n_s_gzip);
  Py_CLEAR(clear_module_state->__pyx_n_s_handle_callback_wrapper);
  Py_CLEAR(clear_module_state->__pyx_n_s_handle_callbacks);
  Py_CLEAR(clear_module_state->__pyx_n_s_handle_cancellation_from_core);
  Py_CLEAR(clear_module_state->__pyx_n_s_handle_events);
  Py_CLEAR(clear_module_state->__pyx_n_s_handle_exceptions);
  Py_CLEAR(clear_module_state->__pyx_n_s_handle_rpc);
  Py_CLEAR(clear_module_state->__pyx_n_s_handle_status_once_received);
  Py_CLEAR(clear_module_state->__pyx_n_s_handle_stream_stream_rpc);
  Py_CLEAR(clear_module_state->__pyx_n_s_handle_stream_unary_rpc);
  Py_CLEAR(clear_module_state->__pyx_n_s_handle_unary_stream_rpc);
  Py_CLEAR(clear_module_state->__pyx_n_s_handle_unary_unary_rpc);
  Py_CLEAR(clear_module_state->__pyx_n_s_handler);
  Py_CLEAR(clear_module_state->__pyx_n_s_handler_call_details);
  Py_CLEAR(clear_module_state->__pyx_n_s_hex_codec);
  Py_CLEAR(clear_module_state->__pyx_n_s_high);
  Py_CLEAR(clear_module_state->__pyx_n_s_host);
  Py_CLEAR(clear_module_state->__pyx_n_s_http2_initial_sequence_number);
  Py_CLEAR(clear_module_state->__pyx_n_s_hub);
  Py_CLEAR(clear_module_state->__pyx_n_s_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_identities);
  Py_CLEAR(clear_module_state->__pyx_n_s_identity);
  Py_CLEAR(clear_module_state->__pyx_n_s_identity_key);
  Py_CLEAR(clear_module_state->__pyx_n_s_idle);
  Py_CLEAR(clear_module_state->__pyx_kp_s_if_error_code_is_specified_so_mu);
  Py_CLEAR(clear_module_state->__pyx_n_s_import);
  Py_CLEAR(clear_module_state->__pyx_n_s_inbound_ops);
  Py_CLEAR(clear_module_state->__pyx_n_s_increment);
  Py_CLEAR(clear_module_state->__pyx_n_s_init);
  Py_CLEAR(clear_module_state->__pyx_n_s_init_grpc_aio);
  Py_CLEAR(clear_module_state->__pyx_n_s_init_grpc_gevent);
  Py_CLEAR(clear_module_state->__pyx_n_s_init_subclass);
  Py_CLEAR(clear_module_state->__pyx_n_s_initial_cert_config);
  Py_CLEAR(clear_module_state->__pyx_kp_s_initial_cert_config_must_be_a_gr);
  Py_CLEAR(clear_module_state->__pyx_n_s_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_n_s_initial_metadata_op);
  Py_CLEAR(clear_module_state->__pyx_n_s_initializing);
  Py_CLEAR(clear_module_state->__pyx_n_s_initiate_stream_stream);
  Py_CLEAR(clear_module_state->__pyx_n_s_initiate_unary_stream);
  Py_CLEAR(clear_module_state->__pyx_n_s_insecure_server_credentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_inspect);
  Py_CLEAR(clear_module_state->__pyx_n_s_install_context_from_request_cal);
  Py_CLEAR(clear_module_state->__pyx_n_s_install_context_from_request_cal_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_int);
  Py_CLEAR(clear_module_state->__pyx_n_s_integrated_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_integrated_call_locals_on_succe);
  Py_CLEAR(clear_module_state->__pyx_n_s_intercept_service);
  Py_CLEAR(clear_module_state->__pyx_n_s_interceptor);
  Py_CLEAR(clear_module_state->__pyx_n_s_interceptors);
  Py_CLEAR(clear_module_state->__pyx_n_s_internal);
  Py_CLEAR(clear_module_state->__pyx_kp_s_internal_error_user_data_must_be);
  Py_CLEAR(clear_module_state->__pyx_n_s_internal_poll);
  Py_CLEAR(clear_module_state->__pyx_n_s_invalid_argument);
  Py_CLEAR(clear_module_state->__pyx_kp_s_invalid_call_object_cannot_be_us);
  Py_CLEAR(clear_module_state->__pyx_n_s_invalid_flags);
  Py_CLEAR(clear_module_state->__pyx_n_s_invalid_metadata);
  Py_CLEAR(clear_module_state->__pyx_n_s_invocation_metadata);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_algorithm_enabled);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_async_handler);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_coroutine);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_fork_support_enabled);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_locally_cancelled);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_ok);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_running);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_sampled);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_valid);
  Py_CLEAR(clear_module_state->__pyx_n_s_isasyncgenfunction);
  Py_CLEAR(clear_module_state->__pyx_n_s_isawaitable);
  Py_CLEAR(clear_module_state->__pyx_n_s_iscoroutinefunction);
  Py_CLEAR(clear_module_state->__pyx_kp_u_isenabled);
  Py_CLEAR(clear_module_state->__pyx_n_s_item);
  Py_CLEAR(clear_module_state->__pyx_n_s_iter);
  Py_CLEAR(clear_module_state->__pyx_n_s_join);
  Py_CLEAR(clear_module_state->__pyx_n_s_key);
  Py_CLEAR(clear_module_state->__pyx_n_s_keys);
  Py_CLEAR(clear_module_state->__pyx_n_s_last_observed_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_latent_event_arg);
  Py_CLEAR(clear_module_state->__pyx_n_s_len);
  Py_CLEAR(clear_module_state->__pyx_n_s_lk);
  Py_CLEAR(clear_module_state->__pyx_n_s_local_connect_type);
  Py_CLEAR(clear_module_state->__pyx_n_s_local_tcp);
  Py_CLEAR(clear_module_state->__pyx_n_s_logging);
  Py_CLEAR(clear_module_state->__pyx_n_s_loop);
  Py_CLEAR(clear_module_state->__pyx_n_s_low);
  Py_CLEAR(clear_module_state->__pyx_n_s_lower);
  Py_CLEAR(clear_module_state->__pyx_n_s_main);
  Py_CLEAR(clear_module_state->__pyx_n_s_managed_target);
  Py_CLEAR(clear_module_state->__pyx_n_s_max_concurrent_streams);
  Py_CLEAR(clear_module_state->__pyx_n_s_max_receive_message_length);
  Py_CLEAR(clear_module_state->__pyx_n_s_max_results);
  Py_CLEAR(clear_module_state->__pyx_n_s_max_send_message_length);
  Py_CLEAR(clear_module_state->__pyx_n_s_maximum_concurrent_rpcs);
  Py_CLEAR(clear_module_state->__pyx_kp_s_maximum_concurrent_rpcs_should_b);
  Py_CLEAR(clear_module_state->__pyx_n_s_maxsize);
  Py_CLEAR(clear_module_state->__pyx_n_s_maybe_save_server_trace_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_medium);
  Py_CLEAR(clear_module_state->__pyx_n_s_members);
  Py_CLEAR(clear_module_state->__pyx_n_s_message);
  Py_CLEAR(clear_module_state->__pyx_n_s_metaclass);
  Py_CLEAR(clear_module_state->__pyx_n_s_metadata);
  Py_CLEAR(clear_module_state->__pyx_n_s_metadata_locals_genexpr);
  Py_CLEAR(clear_module_state->__pyx_n_s_metadata_plugin);
  Py_CLEAR(clear_module_state->__pyx_n_s_metadata_sent_observer);
  Py_CLEAR(clear_module_state->__pyx_kp_s_metadata_was_invalid_s);
  Py_CLEAR(clear_module_state->__pyx_n_s_method);
  Py_CLEAR(clear_module_state->__pyx_n_s_method_bytes);
  Py_CLEAR(clear_module_state->__pyx_n_s_method_handler);
  Py_CLEAR(clear_module_state->__pyx_n_s_module);
  Py_CLEAR(clear_module_state->__pyx_n_s_mro_entries);
  Py_CLEAR(clear_module_state->__pyx_n_s_name);
  Py_CLEAR(clear_module_state->__pyx_n_s_name_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_namedtuple);
  Py_CLEAR(clear_module_state->__pyx_n_s_new);
  Py_CLEAR(clear_module_state->__pyx_n_s_new_event_loop);
  Py_CLEAR(clear_module_state->__pyx_n_s_next_call_event);
  Py_CLEAR(clear_module_state->__pyx_n_s_next_call_event_locals_on_succes);
  Py_CLEAR(clear_module_state->__pyx_n_s_next_event);
  Py_CLEAR(clear_module_state->__pyx_n_s_next_event_locals_on_failure);
  Py_CLEAR(clear_module_state->__pyx_n_s_next_event_locals_on_success);
  Py_CLEAR(clear_module_state->__pyx_n_s_no_compress);
  Py_CLEAR(clear_module_state->__pyx_kp_s_no_default___reduce___due_to_non);
  Py_CLEAR(clear_module_state->__pyx_n_s_none);
  Py_CLEAR(clear_module_state->__pyx_n_s_not_found);
  Py_CLEAR(clear_module_state->__pyx_n_s_not_invoked);
  Py_CLEAR(clear_module_state->__pyx_n_s_not_on_client);
  Py_CLEAR(clear_module_state->__pyx_n_s_not_on_server);
  Py_CLEAR(clear_module_state->__pyx_n_s_notify_all);
  Py_CLEAR(clear_module_state->__pyx_n_s_num_active_threads);
  Py_CLEAR(clear_module_state->__pyx_n_s_object);
  Py_CLEAR(clear_module_state->__pyx_kp_s_object_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_observability);
  Py_CLEAR(clear_module_state->__pyx_n_s_observability_enabled);
  Py_CLEAR(clear_module_state->__pyx_n_s_observability_plugin);
  Py_CLEAR(clear_module_state->__pyx_kp_s_of_RPC_that_terminated_with_sta);
  Py_CLEAR(clear_module_state->__pyx_kp_s_of_RPC_that_terminated_with_sta_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_ok);
  Py_CLEAR(clear_module_state->__pyx_n_s_on_failure);
  Py_CLEAR(clear_module_state->__pyx_n_s_on_success);
  Py_CLEAR(clear_module_state->__pyx_n_s_op);
  Py_CLEAR(clear_module_state->__pyx_n_s_operate);
  Py_CLEAR(clear_module_state->__pyx_n_s_operation_complete);
  Py_CLEAR(clear_module_state->__pyx_n_s_operations);
  Py_CLEAR(clear_module_state->__pyx_n_s_operationses_and_tags);
  Py_CLEAR(clear_module_state->__pyx_n_s_ops);
  Py_CLEAR(clear_module_state->__pyx_n_s_options);
  Py_CLEAR(clear_module_state->__pyx_n_s_os);
  Py_CLEAR(clear_module_state->__pyx_n_s_out_of_range);
  Py_CLEAR(clear_module_state->__pyx_n_s_outbound_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_n_s_outbound_ops);
  Py_CLEAR(clear_module_state->__pyx_n_s_partial);
  Py_CLEAR(clear_module_state->__pyx_n_s_peer);
  Py_CLEAR(clear_module_state->__pyx_n_s_peer_identities);
  Py_CLEAR(clear_module_state->__pyx_n_s_peer_identity_key);
  Py_CLEAR(clear_module_state->__pyx_n_s_pem_key_cert_pairs);
  Py_CLEAR(clear_module_state->__pyx_n_s_pem_root_certificates);
  Py_CLEAR(clear_module_state->__pyx_n_s_pem_root_certs);
  Py_CLEAR(clear_module_state->__pyx_n_s_permission_denied);
  Py_CLEAR(clear_module_state->__pyx_n_s_pickle);
  Py_CLEAR(clear_module_state->__pyx_n_s_pkgutil);
  Py_CLEAR(clear_module_state->__pyx_n_s_plugin);
  Py_CLEAR(clear_module_state->__pyx_n_s_poll);
  Py_CLEAR(clear_module_state->__pyx_n_s_poll_wrapper);
  Py_CLEAR(clear_module_state->__pyx_n_s_poller);
  Py_CLEAR(clear_module_state->__pyx_n_s_pool);
  Py_CLEAR(clear_module_state->__pyx_n_s_pop);
  Py_CLEAR(clear_module_state->__pyx_n_s_postfork_state_to_reset);
  Py_CLEAR(clear_module_state->__pyx_n_s_postfork_states_to_reset);
  Py_CLEAR(clear_module_state->__pyx_n_s_prepare);
  Py_CLEAR(clear_module_state->__pyx_n_s_primary_user_agent_string);
  Py_CLEAR(clear_module_state->__pyx_n_s_print_exc);
  Py_CLEAR(clear_module_state->__pyx_n_s_private_key);
  Py_CLEAR(clear_module_state->__pyx_n_s_properties);
  Py_CLEAR(clear_module_state->__pyx_n_s_property);
  Py_CLEAR(clear_module_state->__pyx_n_s_put);
  Py_CLEAR(clear_module_state->__pyx_n_s_py_auth_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_python_call_credentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_PickleError);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_capi);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_checksum);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_result);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_type);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_AioServer);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_CensusContext);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_ChannelCredential);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_InsecureChannelCr);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle__Tag);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_vtable);
  Py_CLEAR(clear_module_state->__pyx_n_s_qualname);
  Py_CLEAR(clear_module_state->__pyx_n_s_query_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_query_handler);
  Py_CLEAR(clear_module_state->__pyx_n_s_query_handlers);
  Py_CLEAR(clear_module_state->__pyx_n_s_queue);
  Py_CLEAR(clear_module_state->__pyx_n_s_queue_deadline);
  Py_CLEAR(clear_module_state->__pyx_kp_s_queue_must_be_live);
  Py_CLEAR(clear_module_state->__pyx_kp_s_queue_must_be_shutting_down_to_b);
  Py_CLEAR(clear_module_state->__pyx_n_s_queue_shutdown);
  Py_CLEAR(clear_module_state->__pyx_n_s_queue_timeout);
  Py_CLEAR(clear_module_state->__pyx_n_s_raise_if_not_valid_trailing_meta);
  Py_CLEAR(clear_module_state->__pyx_n_s_range);
  Py_CLEAR(clear_module_state->__pyx_n_s_raw_message);
  Py_CLEAR(clear_module_state->__pyx_n_s_read);
  Py_CLEAR(clear_module_state->__pyx_n_s_read_socket);
  Py_CLEAR(clear_module_state->__pyx_n_s_ready);
  Py_CLEAR(clear_module_state->__pyx_n_s_receive_close_on_server);
  Py_CLEAR(clear_module_state->__pyx_n_s_receive_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_n_s_receive_initial_metadata_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_receive_initial_metadata_op);
  Py_CLEAR(clear_module_state->__pyx_n_s_receive_message);
  Py_CLEAR(clear_module_state->__pyx_n_s_receive_message_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_receive_message_op);
  Py_CLEAR(clear_module_state->__pyx_n_s_receive_op);
  Py_CLEAR(clear_module_state->__pyx_n_s_receive_serialized_message);
  Py_CLEAR(clear_module_state->__pyx_n_s_receive_status_on_client);
  Py_CLEAR(clear_module_state->__pyx_n_s_receive_status_on_client_op);
  Py_CLEAR(clear_module_state->__pyx_n_s_received_message);
  Py_CLEAR(clear_module_state->__pyx_n_s_recv);
  Py_CLEAR(clear_module_state->__pyx_n_s_reduce);
  Py_CLEAR(clear_module_state->__pyx_n_s_reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_reduce_ex);
  Py_CLEAR(clear_module_state->__pyx_n_s_register);
  Py_CLEAR(clear_module_state->__pyx_n_s_register_at_fork);
  Py_CLEAR(clear_module_state->__pyx_n_s_register_completion_queue);
  Py_CLEAR(clear_module_state->__pyx_n_s_register_method);
  Py_CLEAR(clear_module_state->__pyx_n_s_registered_call_handle);
  Py_CLEAR(clear_module_state->__pyx_n_s_registered_method);
  Py_CLEAR(clear_module_state->__pyx_n_s_remove_reader);
  Py_CLEAR(clear_module_state->__pyx_n_s_repr);
  Py_CLEAR(clear_module_state->__pyx_n_s_repr_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_request);
  Py_CLEAR(clear_module_state->__pyx_n_s_request_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_request_call_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_request_call_tag);
  Py_CLEAR(clear_module_state->__pyx_n_s_request_deserializer);
  Py_CLEAR(clear_module_state->__pyx_n_s_request_iterator);
  Py_CLEAR(clear_module_state->__pyx_n_s_request_message);
  Py_CLEAR(clear_module_state->__pyx_n_s_request_raw);
  Py_CLEAR(clear_module_state->__pyx_n_s_request_registered_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_request_streaming);
  Py_CLEAR(clear_module_state->__pyx_n_s_reset_grpc_config_vars);
  Py_CLEAR(clear_module_state->__pyx_n_s_reset_postfork_child);
  Py_CLEAR(clear_module_state->__pyx_n_s_resource_exhausted);
  Py_CLEAR(clear_module_state->__pyx_n_s_response);
  Py_CLEAR(clear_module_state->__pyx_n_s_response_message);
  Py_CLEAR(clear_module_state->__pyx_n_s_response_raw);
  Py_CLEAR(clear_module_state->__pyx_n_s_response_serializer);
  Py_CLEAR(clear_module_state->__pyx_n_s_response_streaming);
  Py_CLEAR(clear_module_state->__pyx_n_s_result);
  Py_CLEAR(clear_module_state->__pyx_n_s_retain_self);
  Py_CLEAR(clear_module_state->__pyx_n_s_return);
  Py_CLEAR(clear_module_state->__pyx_n_s_return_from_user_request_generat);
  Py_CLEAR(clear_module_state->__pyx_n_s_rpc_coro);
  Py_CLEAR(clear_module_state->__pyx_n_s_rpc_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_rpc_task);
  Py_CLEAR(clear_module_state->__pyx_n_s_rpc_tasks);
  Py_CLEAR(clear_module_state->__pyx_n_s_run);
  Py_CLEAR(clear_module_state->__pyx_n_s_run_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_run_coroutine_threadsafe);
  Py_CLEAR(clear_module_state->__pyx_n_s_run_in_executor);
  Py_CLEAR(clear_module_state->__pyx_n_s_run_interceptor);
  Py_CLEAR(clear_module_state->__pyx_n_s_run_spawn_greenlets);
  Py_CLEAR(clear_module_state->__pyx_n_s_run_with_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_run_with_context_locals__run);
  Py_CLEAR(clear_module_state->__pyx_n_s_runtime_error);
  Py_CLEAR(clear_module_state->__pyx_n_s_save_registered_method);
  Py_CLEAR(clear_module_state->__pyx_n_s_save_trace_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_schedule_coro_threadsafe);
  Py_CLEAR(clear_module_state->__pyx_n_s_schedule_rpc_coro);
  Py_CLEAR(clear_module_state->__pyx_n_s_secondary_user_agent_string);
  Py_CLEAR(clear_module_state->__pyx_n_s_segregated_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_segregated_call_locals_on_succe);
  Py_CLEAR(clear_module_state->__pyx_n_s_self);
  Py_CLEAR(clear_module_state->__pyx_kp_s_self__cq_cannot_be_converted_to);
  Py_CLEAR(clear_module_state->__pyx_kp_s_self_arg_cannot_be_converted_to);
  Py_CLEAR(clear_module_state->__pyx_kp_s_self_c_argument_cannot_be_conver);
  Py_CLEAR(clear_module_state->__pyx_kp_s_self_c_credentials_cannot_be_con);
  Py_CLEAR(clear_module_state->__pyx_kp_s_self_c_op_cannot_be_converted_to);
  Py_CLEAR(clear_module_state->__pyx_n_s_send);
  Py_CLEAR(clear_module_state->__pyx_n_s_send_close_from_client);
  Py_CLEAR(clear_module_state->__pyx_n_s_send_close_op);
  Py_CLEAR(clear_module_state->__pyx_n_s_send_error_status_from_server);
  Py_CLEAR(clear_module_state->__pyx_n_s_send_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_n_s_send_initial_metadata_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_send_initial_metadata_op);
  Py_CLEAR(clear_module_state->__pyx_n_s_send_message);
  Py_CLEAR(clear_module_state->__pyx_n_s_send_message_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_send_message_op);
  Py_CLEAR(clear_module_state->__pyx_n_s_send_receive_close);
  Py_CLEAR(clear_module_state->__pyx_n_s_send_serialized_message);
  Py_CLEAR(clear_module_state->__pyx_n_s_send_status_from_server);
  Py_CLEAR(clear_module_state->__pyx_n_s_server);
  Py_CLEAR(clear_module_state->__pyx_n_s_server_call_tracer);
  Py_CLEAR(clear_module_state->__pyx_n_s_server_certificate_config_ssl);
  Py_CLEAR(clear_module_state->__pyx_n_s_server_credentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_server_credentials_alts);
  Py_CLEAR(clear_module_state->__pyx_n_s_server_credentials_local);
  Py_CLEAR(clear_module_state->__pyx_n_s_server_credentials_ssl);
  Py_CLEAR(clear_module_state->__pyx_n_s_server_credentials_ssl_dynamic_c);
  Py_CLEAR(clear_module_state->__pyx_n_s_server_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_server_main_loop);
  Py_CLEAR(clear_module_state->__pyx_kp_s_server_must_be_started_and_not_s);
  Py_CLEAR(clear_module_state->__pyx_n_s_server_queue);
  Py_CLEAR(clear_module_state->__pyx_kp_s_server_queue_must_be_a_registere);
  Py_CLEAR(clear_module_state->__pyx_n_s_server_started);
  Py_CLEAR(clear_module_state->__pyx_n_s_service);
  Py_CLEAR(clear_module_state->__pyx_n_s_service_accounts);
  Py_CLEAR(clear_module_state->__pyx_n_s_servicer_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_serving_task_crash_handler);
  Py_CLEAR(clear_module_state->__pyx_n_s_setDaemon);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_async_callback_func);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_census_context_on_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_code);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_compression);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_credentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_details);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_exception);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_instrumentation_context_on_c);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_internal_error);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_name);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_result);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_trailing_metadata);
  Py_CLEAR(clear_module_state->__pyx_n_s_setblocking);
  Py_CLEAR(clear_module_state->__pyx_n_s_setstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_shield);
  Py_CLEAR(clear_module_state->__pyx_n_s_shutdown);
  Py_CLEAR(clear_module_state->__pyx_n_s_shutdown_await_next_greenlet);
  Py_CLEAR(clear_module_state->__pyx_n_s_shutdown_cq);
  Py_CLEAR(clear_module_state->__pyx_n_s_shutdown_grpc_aio);
  Py_CLEAR(clear_module_state->__pyx_n_s_shutting_down_server);
  Py_CLEAR(clear_module_state->__pyx_n_s_simplefilter);
  Py_CLEAR(clear_module_state->__pyx_n_s_sleep);
  Py_CLEAR(clear_module_state->__pyx_n_s_socket);
  Py_CLEAR(clear_module_state->__pyx_n_s_socket_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_socketpair);
  Py_CLEAR(clear_module_state->__pyx_n_s_span_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_spawn);
  Py_CLEAR(clear_module_state->__pyx_n_s_spawn_callback_async);
  Py_CLEAR(clear_module_state->__pyx_n_s_spawn_callback_in_thread);
  Py_CLEAR(clear_module_state->__pyx_n_s_spawn_greenlets);
  Py_CLEAR(clear_module_state->__pyx_n_s_spec);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_10);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_11);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_12);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_13);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_14);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_15);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_16);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_17);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_18);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_19);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_2);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_20);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_21);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_22);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_23);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_3);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_4);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_5);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_6);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_7);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_8);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_9);
  Py_CLEAR(clear_module_state->__pyx_n_s_ssl_session_cache);
  Py_CLEAR(clear_module_state->__pyx_n_s_ssl_target_name_override);
  Py_CLEAR(clear_module_state->__pyx_n_s_start);
  Py_CLEAR(clear_module_state->__pyx_n_s_start_batch);
  Py_CLEAR(clear_module_state->__pyx_n_s_start_channel_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_start_client_batch);
  Py_CLEAR(clear_module_state->__pyx_n_s_start_server_batch);
  Py_CLEAR(clear_module_state->__pyx_n_s_start_server_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_start_shutting_down);
  Py_CLEAR(clear_module_state->__pyx_n_s_start_socket_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_started_tag);
  Py_CLEAR(clear_module_state->__pyx_n_s_started_tags);
  Py_CLEAR(clear_module_state->__pyx_n_s_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_status);
  Py_CLEAR(clear_module_state->__pyx_n_s_status_code);
  Py_CLEAR(clear_module_state->__pyx_n_s_status_task);
  Py_CLEAR(clear_module_state->__pyx_n_s_stored_ctx);
  Py_CLEAR(clear_module_state->__pyx_n_s_str);
  Py_CLEAR(clear_module_state->__pyx_n_s_str_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_stream_handler);
  Py_CLEAR(clear_module_state->__pyx_n_s_stream_stream);
  Py_CLEAR(clear_module_state->__pyx_n_s_stream_unary);
  Py_CLEAR(clear_module_state->__pyx_kp_s_stringsource);
  Py_CLEAR(clear_module_state->__pyx_n_s_subchannel_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_success);
  Py_CLEAR(clear_module_state->__pyx_n_s_super);
  Py_CLEAR(clear_module_state->__pyx_n_s_sync_servicer_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_sys);
  Py_CLEAR(clear_module_state->__pyx_n_s_t);
  Py_CLEAR(clear_module_state->__pyx_n_s_tag);
  Py_CLEAR(clear_module_state->__pyx_n_s_target);
  Py_CLEAR(clear_module_state->__pyx_n_s_task);
  Py_CLEAR(clear_module_state->__pyx_n_s_test);
  Py_CLEAR(clear_module_state->__pyx_kp_s_the_server_has_already_started);
  Py_CLEAR(clear_module_state->__pyx_kp_s_the_server_hasn_t_started_yet);
  Py_CLEAR(clear_module_state->__pyx_kp_s_the_server_must_be_shutting_down);
  Py_CLEAR(clear_module_state->__pyx_n_s_thread);
  Py_CLEAR(clear_module_state->__pyx_n_s_thread_pool);
  Py_CLEAR(clear_module_state->__pyx_n_s_threading);
  Py_CLEAR(clear_module_state->__pyx_n_s_threadpool);
  Py_CLEAR(clear_module_state->__pyx_n_s_throw);
  Py_CLEAR(clear_module_state->__pyx_n_s_time);
  Py_CLEAR(clear_module_state->__pyx_n_s_time_remaining);
  Py_CLEAR(clear_module_state->__pyx_n_s_timeout);
  Py_CLEAR(clear_module_state->__pyx_n_s_timeout_secs);
  Py_CLEAR(clear_module_state->__pyx_n_s_to_call);
  Py_CLEAR(clear_module_state->__pyx_n_s_to_channel_arg);
  Py_CLEAR(clear_module_state->__pyx_n_s_too_many_operations);
  Py_CLEAR(clear_module_state->__pyx_n_s_trace_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_traceback);
  Py_CLEAR(clear_module_state->__pyx_n_s_tracing_enabled);
  Py_CLEAR(clear_module_state->__pyx_n_s_trailing_metadata);
  Py_CLEAR(clear_module_state->__pyx_n_s_transient_failure);
  Py_CLEAR(clear_module_state->__pyx_n_s_true);
  Py_CLEAR(clear_module_state->__pyx_n_s_try_to_connect);
  Py_CLEAR(clear_module_state->__pyx_n_s_type);
  Py_CLEAR(clear_module_state->__pyx_n_s_typing);
  Py_CLEAR(clear_module_state->__pyx_n_s_uds);
  Py_CLEAR(clear_module_state->__pyx_n_s_unary_handler);
  Py_CLEAR(clear_module_state->__pyx_n_s_unary_stream);
  Py_CLEAR(clear_module_state->__pyx_n_s_unary_unary);
  Py_CLEAR(clear_module_state->__pyx_n_s_unauthenticated);
  Py_CLEAR(clear_module_state->__pyx_n_s_unavailable);
  Py_CLEAR(clear_module_state->__pyx_n_s_unimplemented);
  Py_CLEAR(clear_module_state->__pyx_n_s_uninstall_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_unknown);
  Py_CLEAR(clear_module_state->__pyx_n_s_unused_future);
  Py_CLEAR(clear_module_state->__pyx_n_s_unused_task);
  Py_CLEAR(clear_module_state->__pyx_n_s_update);
  Py_CLEAR(clear_module_state->__pyx_n_s_upper);
  Py_CLEAR(clear_module_state->__pyx_n_s_use_setstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_used_mask);
  Py_CLEAR(clear_module_state->__pyx_n_s_user_tag);
  Py_CLEAR(clear_module_state->__pyx_n_s_utf8);
  Py_CLEAR(clear_module_state->__pyx_kp_s_utf_8);
  Py_CLEAR(clear_module_state->__pyx_n_s_value);
  Py_CLEAR(clear_module_state->__pyx_n_s_values);
  Py_CLEAR(clear_module_state->__pyx_n_s_wait);
  Py_CLEAR(clear_module_state->__pyx_n_s_wait_for);
  Py_CLEAR(clear_module_state->__pyx_n_s_wait_for_ready);
  Py_CLEAR(clear_module_state->__pyx_n_s_wait_for_ready_explicitly_set);
  Py_CLEAR(clear_module_state->__pyx_n_s_wait_for_termination);
  Py_CLEAR(clear_module_state->__pyx_n_s_wait_time);
  Py_CLEAR(clear_module_state->__pyx_n_s_warning);
  Py_CLEAR(clear_module_state->__pyx_n_s_warnings);
  Py_CLEAR(clear_module_state->__pyx_n_s_watch_connectivity_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_wrap);
  Py_CLEAR(clear_module_state->__pyx_n_s_wrapper);
  Py_CLEAR(clear_module_state->__pyx_n_s_write);
  Py_CLEAR(clear_module_state->__pyx_n_s_write_flag);
  Py_CLEAR(clear_module_state->__pyx_n_s_xds);
  Py_CLEAR(clear_module_state->__pyx_n_s_xds_server_credentials);
  Py_CLEAR(clear_module_state->__pyx_n_s_yes);
  Py_CLEAR(clear_module_state->__pyx_n_s_yield_to_queue);
  Py_CLEAR(clear_module_state->__pyx_float_1_0);
  Py_CLEAR(clear_module_state->__pyx_int_0);
  Py_CLEAR(clear_module_state->__pyx_int_1);
  Py_CLEAR(clear_module_state->__pyx_int_2);
  Py_CLEAR(clear_module_state->__pyx_int_5);
  Py_CLEAR(clear_module_state->__pyx_int_10);
  Py_CLEAR(clear_module_state->__pyx_int_1000);
  Py_CLEAR(clear_module_state->__pyx_int_1500);
  Py_CLEAR(clear_module_state->__pyx_int_118587260);
  Py_CLEAR(clear_module_state->__pyx_int_171381981);
  Py_CLEAR(clear_module_state->__pyx_int_171651213);
  Py_CLEAR(clear_module_state->__pyx_int_222419149);
  Py_CLEAR(clear_module_state->__pyx_int_228825662);
  Py_CLEAR(clear_module_state->__pyx_int_238750788);
  Py_CLEAR(clear_module_state->__pyx_k__76);
  Py_CLEAR(clear_module_state->__pyx_k__80);
  Py_CLEAR(clear_module_state->__pyx_tuple_);
  Py_CLEAR(clear_module_state->__pyx_tuple__4);
  Py_CLEAR(clear_module_state->__pyx_tuple__8);
  Py_CLEAR(clear_module_state->__pyx_slice__37);
  Py_CLEAR(clear_module_state->__pyx_tuple__10);
  Py_CLEAR(clear_module_state->__pyx_tuple__11);
  Py_CLEAR(clear_module_state->__pyx_tuple__12);
  Py_CLEAR(clear_module_state->__pyx_tuple__14);
  Py_CLEAR(clear_module_state->__pyx_tuple__17);
  Py_CLEAR(clear_module_state->__pyx_tuple__19);
  Py_CLEAR(clear_module_state->__pyx_tuple__21);
  Py_CLEAR(clear_module_state->__pyx_tuple__23);
  Py_CLEAR(clear_module_state->__pyx_tuple__24);
  Py_CLEAR(clear_module_state->__pyx_tuple__25);
  Py_CLEAR(clear_module_state->__pyx_tuple__26);
  Py_CLEAR(clear_module_state->__pyx_tuple__27);
  Py_CLEAR(clear_module_state->__pyx_tuple__28);
  Py_CLEAR(clear_module_state->__pyx_tuple__29);
  Py_CLEAR(clear_module_state->__pyx_tuple__30);
  Py_CLEAR(clear_module_state->__pyx_tuple__31);
  Py_CLEAR(clear_module_state->__pyx_tuple__32);
  Py_CLEAR(clear_module_state->__pyx_tuple__33);
  Py_CLEAR(clear_module_state->__pyx_tuple__34);
  Py_CLEAR(clear_module_state->__pyx_tuple__35);
  Py_CLEAR(clear_module_state->__pyx_tuple__36);
  Py_CLEAR(clear_module_state->__pyx_tuple__39);
  Py_CLEAR(clear_module_state->__pyx_tuple__40);
  Py_CLEAR(clear_module_state->__pyx_tuple__46);
  Py_CLEAR(clear_module_state->__pyx_tuple__48);
  Py_CLEAR(clear_module_state->__pyx_tuple__50);
  Py_CLEAR(clear_module_state->__pyx_tuple__79);
  Py_CLEAR(clear_module_state->__pyx_tuple__83);
  Py_CLEAR(clear_module_state->__pyx_tuple__93);
  Py_CLEAR(clear_module_state->__pyx_tuple__98);
  Py_CLEAR(clear_module_state->__pyx_codeobj__2);
  Py_CLEAR(clear_module_state->__pyx_codeobj__3);
  Py_CLEAR(clear_module_state->__pyx_codeobj__5);
  Py_CLEAR(clear_module_state->__pyx_codeobj__6);
  Py_CLEAR(clear_module_state->__pyx_tuple__105);
  Py_CLEAR(clear_module_state->__pyx_tuple__106);
  Py_CLEAR(clear_module_state->__pyx_tuple__108);
  Py_CLEAR(clear_module_state->__pyx_tuple__110);
  Py_CLEAR(clear_module_state->__pyx_tuple__116);
  Py_CLEAR(clear_module_state->__pyx_tuple__118);
  Py_CLEAR(clear_module_state->__pyx_tuple__121);
  Py_CLEAR(clear_module_state->__pyx_tuple__123);
  Py_CLEAR(clear_module_state->__pyx_tuple__125);
  Py_CLEAR(clear_module_state->__pyx_tuple__127);
  Py_CLEAR(clear_module_state->__pyx_tuple__138);
  Py_CLEAR(clear_module_state->__pyx_tuple__144);
  Py_CLEAR(clear_module_state->__pyx_tuple__148);
  Py_CLEAR(clear_module_state->__pyx_tuple__150);
  Py_CLEAR(clear_module_state->__pyx_tuple__152);
  Py_CLEAR(clear_module_state->__pyx_tuple__153);
  Py_CLEAR(clear_module_state->__pyx_tuple__156);
  Py_CLEAR(clear_module_state->__pyx_tuple__158);
  Py_CLEAR(clear_module_state->__pyx_tuple__162);
  Py_CLEAR(clear_module_state->__pyx_tuple__166);
  Py_CLEAR(clear_module_state->__pyx_tuple__168);
  Py_CLEAR(clear_module_state->__pyx_tuple__170);
  Py_CLEAR(clear_module_state->__pyx_tuple__172);
  Py_CLEAR(clear_module_state->__pyx_tuple__174);
  Py_CLEAR(clear_module_state->__pyx_tuple__176);
  Py_CLEAR(clear_module_state->__pyx_tuple__178);
  Py_CLEAR(clear_module_state->__pyx_tuple__180);
  Py_CLEAR(clear_module_state->__pyx_tuple__182);
  Py_CLEAR(clear_module_state->__pyx_tuple__184);
  Py_CLEAR(clear_module_state->__pyx_tuple__186);
  Py_CLEAR(clear_module_state->__pyx_tuple__194);
  Py_CLEAR(clear_module_state->__pyx_tuple__209);
  Py_CLEAR(clear_module_state->__pyx_tuple__211);
  Py_CLEAR(clear_module_state->__pyx_tuple__213);
  Py_CLEAR(clear_module_state->__pyx_tuple__217);
  Py_CLEAR(clear_module_state->__pyx_tuple__222);
  Py_CLEAR(clear_module_state->__pyx_tuple__224);
  Py_CLEAR(clear_module_state->__pyx_tuple__226);
  Py_CLEAR(clear_module_state->__pyx_tuple__230);
  Py_CLEAR(clear_module_state->__pyx_tuple__232);
  Py_CLEAR(clear_module_state->__pyx_tuple__236);
  Py_CLEAR(clear_module_state->__pyx_tuple__238);
  Py_CLEAR(clear_module_state->__pyx_tuple__241);
  Py_CLEAR(clear_module_state->__pyx_tuple__254);
  Py_CLEAR(clear_module_state->__pyx_tuple__255);
  Py_CLEAR(clear_module_state->__pyx_tuple__293);
  Py_CLEAR(clear_module_state->__pyx_tuple__296);
  Py_CLEAR(clear_module_state->__pyx_tuple__301);
  Py_CLEAR(clear_module_state->__pyx_tuple__304);
  Py_CLEAR(clear_module_state->__pyx_tuple__306);
  Py_CLEAR(clear_module_state->__pyx_tuple__308);
  Py_CLEAR(clear_module_state->__pyx_tuple__312);
  Py_CLEAR(clear_module_state->__pyx_tuple__314);
  Py_CLEAR(clear_module_state->__pyx_tuple__316);
  Py_CLEAR(clear_module_state->__pyx_tuple__318);
  Py_CLEAR(clear_module_state->__pyx_tuple__320);
  Py_CLEAR(clear_module_state->__pyx_tuple__322);
  Py_CLEAR(clear_module_state->__pyx_tuple__323);
  Py_CLEAR(clear_module_state->__pyx_tuple__325);
  Py_CLEAR(clear_module_state->__pyx_tuple__341);
  Py_CLEAR(clear_module_state->__pyx_tuple__348);
  Py_CLEAR(clear_module_state->__pyx_tuple__352);
  Py_CLEAR(clear_module_state->__pyx_tuple__355);
  Py_CLEAR(clear_module_state->__pyx_tuple__359);
  Py_CLEAR(clear_module_state->__pyx_tuple__362);
  Py_CLEAR(clear_module_state->__pyx_tuple__364);
  Py_CLEAR(clear_module_state->__pyx_tuple__366);
  Py_CLEAR(clear_module_state->__pyx_tuple__368);
  Py_CLEAR(clear_module_state->__pyx_tuple__370);
  Py_CLEAR(clear_module_state->__pyx_tuple__372);
  Py_CLEAR(clear_module_state->__pyx_tuple__374);
  Py_CLEAR(clear_module_state->__pyx_tuple__376);
  Py_CLEAR(clear_module_state->__pyx_tuple__377);
  Py_CLEAR(clear_module_state->__pyx_tuple__378);
  Py_CLEAR(clear_module_state->__pyx_tuple__380);
  Py_CLEAR(clear_module_state->__pyx_tuple__381);
  Py_CLEAR(clear_module_state->__pyx_tuple__385);
  Py_CLEAR(clear_module_state->__pyx_tuple__391);
  Py_CLEAR(clear_module_state->__pyx_tuple__394);
  Py_CLEAR(clear_module_state->__pyx_tuple__395);
  Py_CLEAR(clear_module_state->__pyx_tuple__399);
  Py_CLEAR(clear_module_state->__pyx_tuple__401);
  Py_CLEAR(clear_module_state->__pyx_tuple__402);
  Py_CLEAR(clear_module_state->__pyx_tuple__409);
  Py_CLEAR(clear_module_state->__pyx_tuple__411);
  Py_CLEAR(clear_module_state->__pyx_tuple__412);
  Py_CLEAR(clear_module_state->__pyx_tuple__415);
  Py_CLEAR(clear_module_state->__pyx_tuple__423);
  Py_CLEAR(clear_module_state->__pyx_tuple__430);
  Py_CLEAR(clear_module_state->__pyx_tuple__433);
  Py_CLEAR(clear_module_state->__pyx_tuple__441);
  Py_CLEAR(clear_module_state->__pyx_tuple__442);
  Py_CLEAR(clear_module_state->__pyx_tuple__443);
  Py_CLEAR(clear_module_state->__pyx_tuple__444);
  Py_CLEAR(clear_module_state->__pyx_tuple__445);
  Py_CLEAR(clear_module_state->__pyx_tuple__446);
  Py_CLEAR(clear_module_state->__pyx_tuple__447);
  Py_CLEAR(clear_module_state->__pyx_tuple__450);
  Py_CLEAR(clear_module_state->__pyx_tuple__454);
  Py_CLEAR(clear_module_state->__pyx_tuple__456);
  Py_CLEAR(clear_module_state->__pyx_tuple__459);
  Py_CLEAR(clear_module_state->__pyx_tuple__463);
  Py_CLEAR(clear_module_state->__pyx_tuple__466);
  Py_CLEAR(clear_module_state->__pyx_tuple__468);
  Py_CLEAR(clear_module_state->__pyx_tuple__469);
  Py_CLEAR(clear_module_state->__pyx_tuple__470);
  Py_CLEAR(clear_module_state->__pyx_tuple__471);
  Py_CLEAR(clear_module_state->__pyx_tuple__472);
  Py_CLEAR(clear_module_state->__pyx_tuple__473);
  Py_CLEAR(clear_module_state->__pyx_tuple__474);
  Py_CLEAR(clear_module_state->__pyx_tuple__478);
  Py_CLEAR(clear_module_state->__pyx_tuple__482);
  Py_CLEAR(clear_module_state->__pyx_tuple__490);
  Py_CLEAR(clear_module_state->__pyx_tuple__491);
  Py_CLEAR(clear_module_state->__pyx_tuple__492);
  Py_CLEAR(clear_module_state->__pyx_tuple__493);
  Py_CLEAR(clear_module_state->__pyx_tuple__497);
  Py_CLEAR(clear_module_state->__pyx_tuple__500);
  Py_CLEAR(clear_module_state->__pyx_tuple__503);
  Py_CLEAR(clear_module_state->__pyx_tuple__506);
  Py_CLEAR(clear_module_state->__pyx_tuple__508);
  Py_CLEAR(clear_module_state->__pyx_tuple__510);
  Py_CLEAR(clear_module_state->__pyx_tuple__512);
  Py_CLEAR(clear_module_state->__pyx_tuple__515);
  Py_CLEAR(clear_module_state->__pyx_tuple__521);
  Py_CLEAR(clear_module_state->__pyx_tuple__523);
  Py_CLEAR(clear_module_state->__pyx_tuple__539);
  Py_CLEAR(clear_module_state->__pyx_tuple__540);
  Py_CLEAR(clear_module_state->__pyx_tuple__542);
  Py_CLEAR(clear_module_state->__pyx_tuple__543);
  Py_CLEAR(clear_module_state->__pyx_tuple__544);
  Py_CLEAR(clear_module_state->__pyx_tuple__545);
  Py_CLEAR(clear_module_state->__pyx_tuple__548);
  Py_CLEAR(clear_module_state->__pyx_tuple__549);
  Py_CLEAR(clear_module_state->__pyx_tuple__550);
  Py_CLEAR(clear_module_state->__pyx_tuple__551);
  Py_CLEAR(clear_module_state->__pyx_tuple__552);
  Py_CLEAR(clear_module_state->__pyx_tuple__554);
  Py_CLEAR(clear_module_state->__pyx_tuple__556);
  Py_CLEAR(clear_module_state->__pyx_tuple__560);
  Py_CLEAR(clear_module_state->__pyx_tuple__562);
  Py_CLEAR(clear_module_state->__pyx_tuple__564);
  Py_CLEAR(clear_module_state->__pyx_tuple__566);
  Py_CLEAR(clear_module_state->__pyx_tuple__567);
  Py_CLEAR(clear_module_state->__pyx_tuple__568);
  Py_CLEAR(clear_module_state->__pyx_tuple__570);
  Py_CLEAR(clear_module_state->__pyx_tuple__571);
  Py_CLEAR(clear_module_state->__pyx_tuple__572);
  Py_CLEAR(clear_module_state->__pyx_tuple__576);
  Py_CLEAR(clear_module_state->__pyx_codeobj__13);
  Py_CLEAR(clear_module_state->__pyx_codeobj__15);
  Py_CLEAR(clear_module_state->__pyx_codeobj__16);
  Py_CLEAR(clear_module_state->__pyx_codeobj__18);
  Py_CLEAR(clear_module_state->__pyx_codeobj__20);
  Py_CLEAR(clear_module_state->__pyx_codeobj__22);
  Py_CLEAR(clear_module_state->__pyx_codeobj__41);
  Py_CLEAR(clear_module_state->__pyx_codeobj__42);
  Py_CLEAR(clear_module_state->__pyx_codeobj__43);
  Py_CLEAR(clear_module_state->__pyx_codeobj__44);
  Py_CLEAR(clear_module_state->__pyx_codeobj__45);
  Py_CLEAR(clear_module_state->__pyx_codeobj__47);
  Py_CLEAR(clear_module_state->__pyx_codeobj__51);
  Py_CLEAR(clear_module_state->__pyx_codeobj__52);
  Py_CLEAR(clear_module_state->__pyx_codeobj__53);
  Py_CLEAR(clear_module_state->__pyx_codeobj__54);
  Py_CLEAR(clear_module_state->__pyx_codeobj__55);
  Py_CLEAR(clear_module_state->__pyx_codeobj__56);
  Py_CLEAR(clear_module_state->__pyx_codeobj__59);
  Py_CLEAR(clear_module_state->__pyx_codeobj__60);
  Py_CLEAR(clear_module_state->__pyx_codeobj__61);
  Py_CLEAR(clear_module_state->__pyx_codeobj__62);
  Py_CLEAR(clear_module_state->__pyx_codeobj__63);
  Py_CLEAR(clear_module_state->__pyx_codeobj__64);
  Py_CLEAR(clear_module_state->__pyx_codeobj__65);
  Py_CLEAR(clear_module_state->__pyx_codeobj__66);
  Py_CLEAR(clear_module_state->__pyx_codeobj__67);
  Py_CLEAR(clear_module_state->__pyx_codeobj__68);
  Py_CLEAR(clear_module_state->__pyx_codeobj__72);
  Py_CLEAR(clear_module_state->__pyx_codeobj__73);
  Py_CLEAR(clear_module_state->__pyx_codeobj__74);
  Py_CLEAR(clear_module_state->__pyx_codeobj__75);
  Py_CLEAR(clear_module_state->__pyx_codeobj__77);
  Py_CLEAR(clear_module_state->__pyx_codeobj__78);
  Py_CLEAR(clear_module_state->__pyx_codeobj__81);
  Py_CLEAR(clear_module_state->__pyx_codeobj__82);
  Py_CLEAR(clear_module_state->__pyx_codeobj__84);
  Py_CLEAR(clear_module_state->__pyx_codeobj__85);
  Py_CLEAR(clear_module_state->__pyx_codeobj__86);
  Py_CLEAR(clear_module_state->__pyx_codeobj__87);
  Py_CLEAR(clear_module_state->__pyx_codeobj__88);
  Py_CLEAR(clear_module_state->__pyx_codeobj__89);
  Py_CLEAR(clear_module_state->__pyx_codeobj__90);
  Py_CLEAR(clear_module_state->__pyx_codeobj__91);
  Py_CLEAR(clear_module_state->__pyx_codeobj__92);
  Py_CLEAR(clear_module_state->__pyx_codeobj__94);
  Py_CLEAR(clear_module_state->__pyx_codeobj__95);
  Py_CLEAR(clear_module_state->__pyx_codeobj__96);
  Py_CLEAR(clear_module_state->__pyx_codeobj__97);
  Py_CLEAR(clear_module_state->__pyx_codeobj__99);
  Py_CLEAR(clear_module_state->__pyx_codeobj__100);
  Py_CLEAR(clear_module_state->__pyx_codeobj__101);
  Py_CLEAR(clear_module_state->__pyx_codeobj__102);
  Py_CLEAR(clear_module_state->__pyx_codeobj__103);
  Py_CLEAR(clear_module_state->__pyx_codeobj__104);
  Py_CLEAR(clear_module_state->__pyx_codeobj__109);
  Py_CLEAR(clear_module_state->__pyx_codeobj__111);
  Py_CLEAR(clear_module_state->__pyx_codeobj__112);
  Py_CLEAR(clear_module_state->__pyx_codeobj__113);
  Py_CLEAR(clear_module_state->__pyx_codeobj__114);
  Py_CLEAR(clear_module_state->__pyx_codeobj__115);
  Py_CLEAR(clear_module_state->__pyx_codeobj__117);
  Py_CLEAR(clear_module_state->__pyx_codeobj__119);
  Py_CLEAR(clear_module_state->__pyx_codeobj__120);
  Py_CLEAR(clear_module_state->__pyx_codeobj__122);
  Py_CLEAR(clear_module_state->__pyx_codeobj__124);
  Py_CLEAR(clear_module_state->__pyx_codeobj__126);
  Py_CLEAR(clear_module_state->__pyx_codeobj__128);
  Py_CLEAR(clear_module_state->__pyx_codeobj__129);
  Py_CLEAR(clear_module_state->__pyx_codeobj__130);
  Py_CLEAR(clear_module_state->__pyx_codeobj__131);
  Py_CLEAR(clear_module_state->__pyx_codeobj__132);
  Py_CLEAR(clear_module_state->__pyx_codeobj__133);
  Py_CLEAR(clear_module_state->__pyx_codeobj__134);
  Py_CLEAR(clear_module_state->__pyx_codeobj__135);
  Py_CLEAR(clear_module_state->__pyx_codeobj__136);
  Py_CLEAR(clear_module_state->__pyx_codeobj__137);
  Py_CLEAR(clear_module_state->__pyx_codeobj__139);
  Py_CLEAR(clear_module_state->__pyx_codeobj__140);
  Py_CLEAR(clear_module_state->__pyx_codeobj__141);
  Py_CLEAR(clear_module_state->__pyx_codeobj__142);
  Py_CLEAR(clear_module_state->__pyx_codeobj__143);
  Py_CLEAR(clear_module_state->__pyx_codeobj__145);
  Py_CLEAR(clear_module_state->__pyx_codeobj__146);
  Py_CLEAR(clear_module_state->__pyx_codeobj__147);
  Py_CLEAR(clear_module_state->__pyx_codeobj__149);
  Py_CLEAR(clear_module_state->__pyx_codeobj__151);
  Py_CLEAR(clear_module_state->__pyx_codeobj__154);
  Py_CLEAR(clear_module_state->__pyx_codeobj__155);
  Py_CLEAR(clear_module_state->__pyx_codeobj__157);
  Py_CLEAR(clear_module_state->__pyx_codeobj__159);
  Py_CLEAR(clear_module_state->__pyx_codeobj__160);
  Py_CLEAR(clear_module_state->__pyx_codeobj__161);
  Py_CLEAR(clear_module_state->__pyx_codeobj__163);
  Py_CLEAR(clear_module_state->__pyx_codeobj__164);
  Py_CLEAR(clear_module_state->__pyx_codeobj__165);
  Py_CLEAR(clear_module_state->__pyx_codeobj__167);
  Py_CLEAR(clear_module_state->__pyx_codeobj__169);
  Py_CLEAR(clear_module_state->__pyx_codeobj__171);
  Py_CLEAR(clear_module_state->__pyx_codeobj__173);
  Py_CLEAR(clear_module_state->__pyx_codeobj__175);
  Py_CLEAR(clear_module_state->__pyx_codeobj__177);
  Py_CLEAR(clear_module_state->__pyx_codeobj__179);
  Py_CLEAR(clear_module_state->__pyx_codeobj__181);
  Py_CLEAR(clear_module_state->__pyx_codeobj__183);
  Py_CLEAR(clear_module_state->__pyx_codeobj__185);
  Py_CLEAR(clear_module_state->__pyx_codeobj__187);
  Py_CLEAR(clear_module_state->__pyx_codeobj__188);
  Py_CLEAR(clear_module_state->__pyx_codeobj__189);
  Py_CLEAR(clear_module_state->__pyx_codeobj__190);
  Py_CLEAR(clear_module_state->__pyx_codeobj__191);
  Py_CLEAR(clear_module_state->__pyx_codeobj__192);
  Py_CLEAR(clear_module_state->__pyx_codeobj__193);
  Py_CLEAR(clear_module_state->__pyx_codeobj__195);
  Py_CLEAR(clear_module_state->__pyx_codeobj__196);
  Py_CLEAR(clear_module_state->__pyx_codeobj__197);
  Py_CLEAR(clear_module_state->__pyx_codeobj__198);
  Py_CLEAR(clear_module_state->__pyx_codeobj__199);
  Py_CLEAR(clear_module_state->__pyx_codeobj__200);
  Py_CLEAR(clear_module_state->__pyx_codeobj__201);
  Py_CLEAR(clear_module_state->__pyx_codeobj__202);
  Py_CLEAR(clear_module_state->__pyx_codeobj__203);
  Py_CLEAR(clear_module_state->__pyx_codeobj__204);
  Py_CLEAR(clear_module_state->__pyx_codeobj__205);
  Py_CLEAR(clear_module_state->__pyx_codeobj__206);
  Py_CLEAR(clear_module_state->__pyx_codeobj__207);
  Py_CLEAR(clear_module_state->__pyx_codeobj__208);
  Py_CLEAR(clear_module_state->__pyx_codeobj__210);
  Py_CLEAR(clear_module_state->__pyx_codeobj__212);
  Py_CLEAR(clear_module_state->__pyx_codeobj__214);
  Py_CLEAR(clear_module_state->__pyx_codeobj__215);
  Py_CLEAR(clear_module_state->__pyx_codeobj__216);
  Py_CLEAR(clear_module_state->__pyx_codeobj__218);
  Py_CLEAR(clear_module_state->__pyx_codeobj__219);
  Py_CLEAR(clear_module_state->__pyx_codeobj__220);
  Py_CLEAR(clear_module_state->__pyx_codeobj__221);
  Py_CLEAR(clear_module_state->__pyx_codeobj__223);
  Py_CLEAR(clear_module_state->__pyx_codeobj__225);
  Py_CLEAR(clear_module_state->__pyx_codeobj__227);
  Py_CLEAR(clear_module_state->__pyx_codeobj__228);
  Py_CLEAR(clear_module_state->__pyx_codeobj__229);
  Py_CLEAR(clear_module_state->__pyx_codeobj__231);
  Py_CLEAR(clear_module_state->__pyx_codeobj__233);
  Py_CLEAR(clear_module_state->__pyx_codeobj__234);
  Py_CLEAR(clear_module_state->__pyx_codeobj__235);
  Py_CLEAR(clear_module_state->__pyx_codeobj__237);
  Py_CLEAR(clear_module_state->__pyx_codeobj__239);
  Py_CLEAR(clear_module_state->__pyx_codeobj__240);
  Py_CLEAR(clear_module_state->__pyx_codeobj__242);
  Py_CLEAR(clear_module_state->__pyx_codeobj__243);
  Py_CLEAR(clear_module_state->__pyx_codeobj__244);
  Py_CLEAR(clear_module_state->__pyx_codeobj__245);
  Py_CLEAR(clear_module_state->__pyx_codeobj__246);
  Py_CLEAR(clear_module_state->__pyx_codeobj__247);
  Py_CLEAR(clear_module_state->__pyx_codeobj__248);
  Py_CLEAR(clear_module_state->__pyx_codeobj__249);
  Py_CLEAR(clear_module_state->__pyx_codeobj__250);
  Py_CLEAR(clear_module_state->__pyx_codeobj__251);
  Py_CLEAR(clear_module_state->__pyx_codeobj__252);
  Py_CLEAR(clear_module_state->__pyx_codeobj__253);
  Py_CLEAR(clear_module_state->__pyx_codeobj__256);
  Py_CLEAR(clear_module_state->__pyx_codeobj__257);
  Py_CLEAR(clear_module_state->__pyx_codeobj__258);
  Py_CLEAR(clear_module_state->__pyx_codeobj__259);
  Py_CLEAR(clear_module_state->__pyx_codeobj__260);
  Py_CLEAR(clear_module_state->__pyx_codeobj__261);
  Py_CLEAR(clear_module_state->__pyx_codeobj__262);
  Py_CLEAR(clear_module_state->__pyx_codeobj__263);
  Py_CLEAR(clear_module_state->__pyx_codeobj__264);
  Py_CLEAR(clear_module_state->__pyx_codeobj__265);
  Py_CLEAR(clear_module_state->__pyx_codeobj__266);
  Py_CLEAR(clear_module_state->__pyx_codeobj__267);
  Py_CLEAR(clear_module_state->__pyx_codeobj__268);
  Py_CLEAR(clear_module_state->__pyx_codeobj__269);
  Py_CLEAR(clear_module_state->__pyx_codeobj__270);
  Py_CLEAR(clear_module_state->__pyx_codeobj__271);
  Py_CLEAR(clear_module_state->__pyx_codeobj__272);
  Py_CLEAR(clear_module_state->__pyx_codeobj__273);
  Py_CLEAR(clear_module_state->__pyx_codeobj__274);
  Py_CLEAR(clear_module_state->__pyx_codeobj__275);
  Py_CLEAR(clear_module_state->__pyx_codeobj__276);
  Py_CLEAR(clear_module_state->__pyx_codeobj__277);
  Py_CLEAR(clear_module_state->__pyx_codeobj__278);
  Py_CLEAR(clear_module_state->__pyx_codeobj__279);
  Py_CLEAR(clear_module_state->__pyx_codeobj__280);
  Py_CLEAR(clear_module_state->__pyx_codeobj__281);
  Py_CLEAR(clear_module_state->__pyx_codeobj__282);
  Py_CLEAR(clear_module_state->__pyx_codeobj__283);
  Py_CLEAR(clear_module_state->__pyx_codeobj__284);
  Py_CLEAR(clear_module_state->__pyx_codeobj__285);
  Py_CLEAR(clear_module_state->__pyx_codeobj__286);
  Py_CLEAR(clear_module_state->__pyx_codeobj__287);
  Py_CLEAR(clear_module_state->__pyx_codeobj__288);
  Py_CLEAR(clear_module_state->__pyx_codeobj__289);
  Py_CLEAR(clear_module_state->__pyx_codeobj__290);
  Py_CLEAR(clear_module_state->__pyx_codeobj__291);
  Py_CLEAR(clear_module_state->__pyx_codeobj__292);
  Py_CLEAR(clear_module_state->__pyx_codeobj__294);
  Py_CLEAR(clear_module_state->__pyx_codeobj__295);
  Py_CLEAR(clear_module_state->__pyx_codeobj__297);
  Py_CLEAR(clear_module_state->__pyx_codeobj__298);
  Py_CLEAR(clear_module_state->__pyx_codeobj__299);
  Py_CLEAR(clear_module_state->__pyx_codeobj__300);
  Py_CLEAR(clear_module_state->__pyx_codeobj__302);
  Py_CLEAR(clear_module_state->__pyx_codeobj__303);
  Py_CLEAR(clear_module_state->__pyx_codeobj__305);
  Py_CLEAR(clear_module_state->__pyx_codeobj__307);
  Py_CLEAR(clear_module_state->__pyx_codeobj__309);
  Py_CLEAR(clear_module_state->__pyx_codeobj__310);
  Py_CLEAR(clear_module_state->__pyx_codeobj__311);
  Py_CLEAR(clear_module_state->__pyx_codeobj__313);
  Py_CLEAR(clear_module_state->__pyx_codeobj__315);
  Py_CLEAR(clear_module_state->__pyx_codeobj__317);
  Py_CLEAR(clear_module_state->__pyx_codeobj__319);
  Py_CLEAR(clear_module_state->__pyx_codeobj__321);
  Py_CLEAR(clear_module_state->__pyx_codeobj__324);
  Py_CLEAR(clear_module_state->__pyx_codeobj__326);
  Py_CLEAR(clear_module_state->__pyx_codeobj__327);
  Py_CLEAR(clear_module_state->__pyx_codeobj__328);
  Py_CLEAR(clear_module_state->__pyx_codeobj__329);
  Py_CLEAR(clear_module_state->__pyx_codeobj__330);
  Py_CLEAR(clear_module_state->__pyx_codeobj__331);
  Py_CLEAR(clear_module_state->__pyx_codeobj__332);
  Py_CLEAR(clear_module_state->__pyx_codeobj__333);
  Py_CLEAR(clear_module_state->__pyx_codeobj__334);
  Py_CLEAR(clear_module_state->__pyx_codeobj__335);
  Py_CLEAR(clear_module_state->__pyx_codeobj__336);
  Py_CLEAR(clear_module_state->__pyx_codeobj__337);
  Py_CLEAR(clear_module_state->__pyx_codeobj__338);
  Py_CLEAR(clear_module_state->__pyx_codeobj__339);
  Py_CLEAR(clear_module_state->__pyx_codeobj__340);
  Py_CLEAR(clear_module_state->__pyx_codeobj__342);
  Py_CLEAR(clear_module_state->__pyx_codeobj__343);
  Py_CLEAR(clear_module_state->__pyx_codeobj__344);
  Py_CLEAR(clear_module_state->__pyx_codeobj__345);
  Py_CLEAR(clear_module_state->__pyx_codeobj__346);
  Py_CLEAR(clear_module_state->__pyx_codeobj__347);
  Py_CLEAR(clear_module_state->__pyx_codeobj__349);
  Py_CLEAR(clear_module_state->__pyx_codeobj__350);
  Py_CLEAR(clear_module_state->__pyx_codeobj__351);
  Py_CLEAR(clear_module_state->__pyx_codeobj__353);
  Py_CLEAR(clear_module_state->__pyx_codeobj__354);
  Py_CLEAR(clear_module_state->__pyx_codeobj__356);
  Py_CLEAR(clear_module_state->__pyx_codeobj__357);
  Py_CLEAR(clear_module_state->__pyx_codeobj__358);
  Py_CLEAR(clear_module_state->__pyx_codeobj__360);
  Py_CLEAR(clear_module_state->__pyx_codeobj__361);
  Py_CLEAR(clear_module_state->__pyx_codeobj__363);
  Py_CLEAR(clear_module_state->__pyx_codeobj__365);
  Py_CLEAR(clear_module_state->__pyx_codeobj__367);
  Py_CLEAR(clear_module_state->__pyx_codeobj__369);
  Py_CLEAR(clear_module_state->__pyx_codeobj__371);
  Py_CLEAR(clear_module_state->__pyx_codeobj__373);
  Py_CLEAR(clear_module_state->__pyx_codeobj__375);
  Py_CLEAR(clear_module_state->__pyx_codeobj__379);
  Py_CLEAR(clear_module_state->__pyx_codeobj__382);
  Py_CLEAR(clear_module_state->__pyx_codeobj__383);
  Py_CLEAR(clear_module_state->__pyx_codeobj__384);
  Py_CLEAR(clear_module_state->__pyx_codeobj__386);
  Py_CLEAR(clear_module_state->__pyx_codeobj__387);
  Py_CLEAR(clear_module_state->__pyx_codeobj__388);
  Py_CLEAR(clear_module_state->__pyx_codeobj__389);
  Py_CLEAR(clear_module_state->__pyx_codeobj__390);
  Py_CLEAR(clear_module_state->__pyx_codeobj__392);
  Py_CLEAR(clear_module_state->__pyx_codeobj__393);
  Py_CLEAR(clear_module_state->__pyx_codeobj__396);
  Py_CLEAR(clear_module_state->__pyx_codeobj__397);
  Py_CLEAR(clear_module_state->__pyx_codeobj__398);
  Py_CLEAR(clear_module_state->__pyx_codeobj__400);
  Py_CLEAR(clear_module_state->__pyx_codeobj__403);
  Py_CLEAR(clear_module_state->__pyx_codeobj__404);
  Py_CLEAR(clear_module_state->__pyx_codeobj__405);
  Py_CLEAR(clear_module_state->__pyx_codeobj__406);
  Py_CLEAR(clear_module_state->__pyx_codeobj__407);
  Py_CLEAR(clear_module_state->__pyx_codeobj__408);
  Py_CLEAR(clear_module_state->__pyx_codeobj__410);
  Py_CLEAR(clear_module_state->__pyx_codeobj__413);
  Py_CLEAR(clear_module_state->__pyx_codeobj__414);
  Py_CLEAR(clear_module_state->__pyx_codeobj__416);
  Py_CLEAR(clear_module_state->__pyx_codeobj__417);
  Py_CLEAR(clear_module_state->__pyx_codeobj__418);
  Py_CLEAR(clear_module_state->__pyx_codeobj__419);
  Py_CLEAR(clear_module_state->__pyx_codeobj__420);
  Py_CLEAR(clear_module_state->__pyx_codeobj__421);
  Py_CLEAR(clear_module_state->__pyx_codeobj__422);
  Py_CLEAR(clear_module_state->__pyx_codeobj__424);
  Py_CLEAR(clear_module_state->__pyx_codeobj__425);
  Py_CLEAR(clear_module_state->__pyx_codeobj__426);
  Py_CLEAR(clear_module_state->__pyx_codeobj__427);
  Py_CLEAR(clear_module_state->__pyx_codeobj__428);
  Py_CLEAR(clear_module_state->__pyx_codeobj__429);
  Py_CLEAR(clear_module_state->__pyx_codeobj__431);
  Py_CLEAR(clear_module_state->__pyx_codeobj__432);
  Py_CLEAR(clear_module_state->__pyx_codeobj__434);
  Py_CLEAR(clear_module_state->__pyx_codeobj__435);
  Py_CLEAR(clear_module_state->__pyx_codeobj__436);
  Py_CLEAR(clear_module_state->__pyx_codeobj__437);
  Py_CLEAR(clear_module_state->__pyx_codeobj__438);
  Py_CLEAR(clear_module_state->__pyx_codeobj__439);
  Py_CLEAR(clear_module_state->__pyx_codeobj__440);
  Py_CLEAR(clear_module_state->__pyx_codeobj__448);
  Py_CLEAR(clear_module_state->__pyx_codeobj__449);
  Py_CLEAR(clear_module_state->__pyx_codeobj__451);
  Py_CLEAR(clear_module_state->__pyx_codeobj__452);
  Py_CLEAR(clear_module_state->__pyx_codeobj__453);
  Py_CLEAR(clear_module_state->__pyx_codeobj__455);
  Py_CLEAR(clear_module_state->__pyx_codeobj__457);
  Py_CLEAR(clear_module_state->__pyx_codeobj__458);
  Py_CLEAR(clear_module_state->__pyx_codeobj__460);
  Py_CLEAR(clear_module_state->__pyx_codeobj__461);
  Py_CLEAR(clear_module_state->__pyx_codeobj__462);
  Py_CLEAR(clear_module_state->__pyx_codeobj__464);
  Py_CLEAR(clear_module_state->__pyx_codeobj__465);
  Py_CLEAR(clear_module_state->__pyx_codeobj__467);
  Py_CLEAR(clear_module_state->__pyx_codeobj__475);
  Py_CLEAR(clear_module_state->__pyx_codeobj__476);
  Py_CLEAR(clear_module_state->__pyx_codeobj__477);
  Py_CLEAR(clear_module_state->__pyx_codeobj__479);
  Py_CLEAR(clear_module_state->__pyx_codeobj__480);
  Py_CLEAR(clear_module_state->__pyx_codeobj__481);
  Py_CLEAR(clear_module_state->__pyx_codeobj__483);
  Py_CLEAR(clear_module_state->__pyx_codeobj__484);
  Py_CLEAR(clear_module_state->__pyx_codeobj__485);
  Py_CLEAR(clear_module_state->__pyx_codeobj__486);
  Py_CLEAR(clear_module_state->__pyx_codeobj__487);
  Py_CLEAR(clear_module_state->__pyx_codeobj__488);
  Py_CLEAR(clear_module_state->__pyx_codeobj__489);
  Py_CLEAR(clear_module_state->__pyx_codeobj__494);
  Py_CLEAR(clear_module_state->__pyx_codeobj__495);
  Py_CLEAR(clear_module_state->__pyx_codeobj__496);
  Py_CLEAR(clear_module_state->__pyx_codeobj__498);
  Py_CLEAR(clear_module_state->__pyx_codeobj__499);
  Py_CLEAR(clear_module_state->__pyx_codeobj__501);
  Py_CLEAR(clear_module_state->__pyx_codeobj__502);
  Py_CLEAR(clear_module_state->__pyx_codeobj__504);
  Py_CLEAR(clear_module_state->__pyx_codeobj__505);
  Py_CLEAR(clear_module_state->__pyx_codeobj__507);
  Py_CLEAR(clear_module_state->__pyx_codeobj__509);
  Py_CLEAR(clear_module_state->__pyx_codeobj__511);
  Py_CLEAR(clear_module_state->__pyx_codeobj__513);
  Py_CLEAR(clear_module_state->__pyx_codeobj__514);
  Py_CLEAR(clear_module_state->__pyx_codeobj__516);
  Py_CLEAR(clear_module_state->__pyx_codeobj__517);
  Py_CLEAR(clear_module_state->__pyx_codeobj__518);
  Py_CLEAR(clear_module_state->__pyx_codeobj__519);
  Py_CLEAR(clear_module_state->__pyx_codeobj__520);
  Py_CLEAR(clear_module_state->__pyx_codeobj__522);
  Py_CLEAR(clear_module_state->__pyx_codeobj__524);
  Py_CLEAR(clear_module_state->__pyx_codeobj__525);
  Py_CLEAR(clear_module_state->__pyx_codeobj__526);
  Py_CLEAR(clear_module_state->__pyx_codeobj__527);
  Py_CLEAR(clear_module_state->__pyx_codeobj__528);
  Py_CLEAR(clear_module_state->__pyx_codeobj__529);
  Py_CLEAR(clear_module_state->__pyx_codeobj__530);
  Py_CLEAR(clear_module_state->__pyx_codeobj__531);
  Py_CLEAR(clear_module_state->__pyx_codeobj__532);
  Py_CLEAR(clear_module_state->__pyx_codeobj__533);
  Py_CLEAR(clear_module_state->__pyx_codeobj__534);
  Py_CLEAR(clear_module_state->__pyx_codeobj__535);
  Py_CLEAR(clear_module_state->__pyx_codeobj__536);
  Py_CLEAR(clear_module_state->__pyx_codeobj__537);
  Py_CLEAR(clear_module_state->__pyx_codeobj__538);
  Py_CLEAR(clear_module_state->__pyx_codeobj__541);
  Py_CLEAR(clear_module_state->__pyx_codeobj__546);
  Py_CLEAR(clear_module_state->__pyx_codeobj__547);
  Py_CLEAR(clear_module_state->__pyx_codeobj__553);
  Py_CLEAR(clear_module_state->__pyx_codeobj__555);
  Py_CLEAR(clear_module_state->__pyx_codeobj__557);
  Py_CLEAR(clear_module_state->__pyx_codeobj__558);
  Py_CLEAR(clear_module_state->__pyx_codeobj__559);
  Py_CLEAR(clear_module_state->__pyx_codeobj__561);
  Py_CLEAR(clear_module_state->__pyx_codeobj__563);
  Py_CLEAR(clear_module_state->__pyx_codeobj__565);
  Py_CLEAR(clear_module_state->__pyx_codeobj__569);
  Py_CLEAR(clear_module_state->__pyx_codeobj__573);
  Py_CLEAR(clear_module_state->__pyx_codeobj__574);
  Py_CLEAR(clear_module_state->__pyx_codeobj__575);
  Py_CLEAR(clear_module_state->__pyx_codeobj__577);
  Py_CLEAR(clear_module_state->__pyx_codeobj__578);
  Py_CLEAR(clear_module_state->__pyx_codeobj__579);
  Py_CLEAR(clear_module_state->__pyx_codeobj__580);
  Py_CLEAR(clear_module_state->__pyx_codeobj__581);
  return 0;
}
#endif
/* #### Code section: module_state_traverse ### */
#if CYTHON_USE_MODULE_STATE
static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
  __pyx_mstate *traverse_module_state = __pyx_mstate(m);
  if (!traverse_module_state) return 0;
  Py_VISIT(traverse_module_state->__pyx_d);
  Py_VISIT(traverse_module_state->__pyx_b);
  Py_VISIT(traverse_module_state->__pyx_cython_runtime);
  Py_VISIT(traverse_module_state->__pyx_empty_tuple);
  Py_VISIT(traverse_module_state->__pyx_empty_bytes);
  Py_VISIT(traverse_module_state->__pyx_empty_unicode);
  #ifdef __Pyx_CyFunction_USED
  Py_VISIT(traverse_module_state->__pyx_CyFunctionType);
  #endif
  #ifdef __Pyx_FusedFunction_USED
  Py_VISIT(traverse_module_state->__pyx_FusedFunctionType);
  #endif
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type);
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4bool_bool);
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_7complex_complex);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ChannelArg);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Call);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Call);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__CallState);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ChannelState);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Channel);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallHandle);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_BaseEvent);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Operation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallDetails);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Server);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Server);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__Tag);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__AioState);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__AioCall);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_AioChannel);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_RPCState);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ServicerContext);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_AioServer);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CensusContext);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination);
  Py_VISIT(traverse_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg);
  Py_VISIT(traverse_module_state->__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg);
  Py_VISIT(traverse_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_);
  Py_VISIT(traverse_module_state->__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_);
  Py_VISIT(traverse_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args);
  Py_VISIT(traverse_module_state->__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args);
  Py_VISIT(traverse_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_);
  Py_VISIT(traverse_module_state->__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_);
  Py_VISIT(traverse_module_state->__pyx_kp_s_0);
  Py_VISIT(traverse_module_state->__pyx_kp_s_1);
  Py_VISIT(traverse_module_state->__pyx_n_s_ALTSChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_ALTSChannelCredentials___reduce);
  Py_VISIT(traverse_module_state->__pyx_n_s_ALTSChannelCredentials___setstat);
  Py_VISIT(traverse_module_state->__pyx_n_s_AWAIT_THREADS_TIMEOUT_SECONDS);
  Py_VISIT(traverse_module_state->__pyx_n_s_AbortError);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Abort_already_called);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Abort_error_has_been_replaced);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Abort_error_unexpectedly_suppres);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Aborting_method_s_due_to_server);
  Py_VISIT(traverse_module_state->__pyx_n_s_ActiveThreadCount);
  Py_VISIT(traverse_module_state->__pyx_n_s_ActiveThreadCount___init);
  Py_VISIT(traverse_module_state->__pyx_n_s_ActiveThreadCount_await_zero_th);
  Py_VISIT(traverse_module_state->__pyx_n_s_ActiveThreadCount_decrement);
  Py_VISIT(traverse_module_state->__pyx_n_s_ActiveThreadCount_increment);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall__handle_status_once_rec);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall__repr);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_add_done_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_cancel);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_cancelled);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_done);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_initiate_stream_stream);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_initiate_unary_stream);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_is_locally_cancelled);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_is_ok);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_receive_serialized_mess);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_send_receive_close);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_send_serialized_message);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_set_internal_error);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_status);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_stream_unary);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_time_remaining);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioCall_unary_unary);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioChannel);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioChannel___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioChannel___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioChannel_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioChannel_check_connectivity_st);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioChannel_close);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioChannel_closed);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioChannel_closing);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioChannel_watch_connectivity_st);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioRpcStatus);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioRpcStatus___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioRpcStatus___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioRpcStatus_code);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioRpcStatus_debug_error_string);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioRpcStatus_details);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioRpcStatus_trailing_metadata);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioServer);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioServer___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioServer___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioServer__request_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioServer__server_main_loop);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioServer__serving_task_crash_ha);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioServer__start_shutting_down);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioServer_add_generic_rpc_handle);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioServer_add_insecure_port);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioServer_add_secure_port);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioServer_is_running);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioServer_shutdown);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioServer_start);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioServer_wait_for_termination);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioState);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioState___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_AioState___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_AssertionError);
  Py_VISIT(traverse_module_state->__pyx_n_s_AsyncIOEngine);
  Py_VISIT(traverse_module_state->__pyx_n_s_AttributeError);
  Py_VISIT(traverse_module_state->__pyx_n_s_BaseCompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_n_s_BaseCompletionQueue___reduce_cyt);
  Py_VISIT(traverse_module_state->__pyx_n_s_BaseCompletionQueue___setstate_c);
  Py_VISIT(traverse_module_state->__pyx_n_s_BaseError);
  Py_VISIT(traverse_module_state->__pyx_n_s_BaseEvent);
  Py_VISIT(traverse_module_state->__pyx_n_s_BatchOperationEvent);
  Py_VISIT(traverse_module_state->__pyx_n_s_BatchOperationEvent___reduce_cyt);
  Py_VISIT(traverse_module_state->__pyx_n_s_BatchOperationEvent___setstate_c);
  Py_VISIT(traverse_module_state->__pyx_n_s_BatchOperationTag);
  Py_VISIT(traverse_module_state->__pyx_n_s_BatchOperationTag___reduce_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_BatchOperationTag___setstate_cy);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Binary_metadata_key_s_expected_b);
  Py_VISIT(traverse_module_state->__pyx_n_s_BoundEventLoop);
  Py_VISIT(traverse_module_state->__pyx_n_s_BoundEventLoop___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_BoundEventLoop___setstate_cytho);
  Py_VISIT(traverse_module_state->__pyx_n_s_BoundEventLoop_close);
  Py_VISIT(traverse_module_state->__pyx_n_s_COMPRESSION_METADATA_STRING_MAP);
  Py_VISIT(traverse_module_state->__pyx_n_s_CUSTOM_IO_MANAGER);
  Py_VISIT(traverse_module_state->__pyx_n_s_CYGRPC_STATUS_CODE_TO_STATUS_COD);
  Py_VISIT(traverse_module_state->__pyx_n_s_Call);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallCredentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallCredentials___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallCredentials___setstate_cytho);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallDetails);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallDetails___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallDetails___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallError);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallHandle);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallHandle___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallHandle___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallState);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallState___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallState___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Call___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Call___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Call__custom_op_on_c_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_Call__start_batch);
  Py_VISIT(traverse_module_state->__pyx_n_s_Call_cancel);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Call_credentials_are_only_valid);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Call_credentials_may_not_be_NULL);
  Py_VISIT(traverse_module_state->__pyx_n_s_Call_peer);
  Py_VISIT(traverse_module_state->__pyx_n_s_Call_set_credentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_Call_start_client_batch);
  Py_VISIT(traverse_module_state->__pyx_n_s_Call_start_server_batch);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallbackFailureHandler);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallbackFailureHandler___reduce);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallbackFailureHandler___setstat);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallbackWrapper);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallbackWrapper___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_CallbackWrapper___setstate_cytho);
  Py_VISIT(traverse_module_state->__pyx_n_s_CancelledError);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Cannot_invoke_RPC_on_closed_chan);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Cannot_invoke_RPC_s);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Cannot_monitor_channel_state_s);
  Py_VISIT(traverse_module_state->__pyx_n_s_CensusContext);
  Py_VISIT(traverse_module_state->__pyx_n_s_CensusContext___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_CensusContext___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Channel);
  Py_VISIT(traverse_module_state->__pyx_n_s_ChannelArg);
  Py_VISIT(traverse_module_state->__pyx_n_s_ChannelArgKey);
  Py_VISIT(traverse_module_state->__pyx_n_s_ChannelArg___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_ChannelArg___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_ChannelArgs);
  Py_VISIT(traverse_module_state->__pyx_n_s_ChannelArgs___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_ChannelArgs___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_ChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_ChannelCredentials___reduce_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_ChannelCredentials___setstate_cy);
  Py_VISIT(traverse_module_state->__pyx_n_s_ChannelState);
  Py_VISIT(traverse_module_state->__pyx_n_s_ChannelState___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_ChannelState___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Channel___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Channel___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Channel_check_connectivity_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_Channel_close);
  Py_VISIT(traverse_module_state->__pyx_n_s_Channel_close_on_fork);
  Py_VISIT(traverse_module_state->__pyx_n_s_Channel_get_registered_call_hand);
  Py_VISIT(traverse_module_state->__pyx_n_s_Channel_integrated_call);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Channel_is_closed);
  Py_VISIT(traverse_module_state->__pyx_n_s_Channel_next_call_event);
  Py_VISIT(traverse_module_state->__pyx_n_s_Channel_segregated_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_Channel_target);
  Py_VISIT(traverse_module_state->__pyx_n_s_Channel_watch_connectivity_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompletionQueue___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompletionQueue___setstate_cytho);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompletionQueue__internal_poll);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompletionQueue_clear);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompletionQueue_poll);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompletionQueue_shutdown);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompletionType);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompositeCallCredentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompositeCallCredentials___reduc);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompositeCallCredentials___setst);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompositeChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompositeChannelCredentials___re);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompositeChannelCredentials___se);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompressionAlgorithm);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompressionLevel);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompressionOptions);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompressionOptions___reduce_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompressionOptions___setstate_cy);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompressionOptions_disable_algor);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompressionOptions_enable_algori);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompressionOptions_is_algorithm);
  Py_VISIT(traverse_module_state->__pyx_n_s_CompressionOptions_to_channel_ar);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Compression_setting_must_be_spec);
  Py_VISIT(traverse_module_state->__pyx_n_s_ComputeEngineChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_ComputeEngineChannelCredentials_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_ComputeEngineChannelCredentials_3);
  Py_VISIT(traverse_module_state->__pyx_n_s_ConcurrentRpcLimiter);
  Py_VISIT(traverse_module_state->__pyx_n_s_ConcurrentRpcLimiter___reduce_c);
  Py_VISIT(traverse_module_state->__pyx_n_s_ConcurrentRpcLimiter___setstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_ConcurrentRpcLimiter__decrease);
  Py_VISIT(traverse_module_state->__pyx_n_s_ConcurrentRpcLimiter_check_befo);
  Py_VISIT(traverse_module_state->__pyx_n_s_ConcurrentRpcLimiter_decrease_o);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Concurrent_RPC_limit_exceeded);
  Py_VISIT(traverse_module_state->__pyx_n_s_Condition);
  Py_VISIT(traverse_module_state->__pyx_n_s_ConnectivityEvent);
  Py_VISIT(traverse_module_state->__pyx_n_s_ConnectivityEvent___reduce_cytho);
  Py_VISIT(traverse_module_state->__pyx_n_s_ConnectivityEvent___setstate_cyt);
  Py_VISIT(traverse_module_state->__pyx_n_s_ConnectivityState);
  Py_VISIT(traverse_module_state->__pyx_n_s_ConnectivityTag);
  Py_VISIT(traverse_module_state->__pyx_n_s_ConnectivityTag___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_ConnectivityTag___setstate_cyth);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Core_should_not_return_GRPC_QUEU);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Credentials_couldn_t_have_been_s);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Dedicated_exception_class_for_wa);
  Py_VISIT(traverse_module_state->__pyx_n_s_DeprecationWarning);
  Py_VISIT(traverse_module_state->__pyx_n_s_EMPTY_FLAGS);
  Py_VISIT(traverse_module_state->__pyx_n_s_EMPTY_MASK);
  Py_VISIT(traverse_module_state->__pyx_n_s_EOF);
  Py_VISIT(traverse_module_state->__pyx_n_s_EOF_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_EOF___bool);
  Py_VISIT(traverse_module_state->__pyx_n_s_EOF___len);
  Py_VISIT(traverse_module_state->__pyx_n_s_EOF___repr);
  Py_VISIT(traverse_module_state->__pyx_n_s_EOF___str);
  Py_VISIT(traverse_module_state->__pyx_n_s_EOF__repr);
  Py_VISIT(traverse_module_state->__pyx_n_s_EX_USAGE);
  Py_VISIT(traverse_module_state->__pyx_n_s_Enum);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Error_fetching_certificate_confi);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Error_fetching_certificate_confi_2);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Error_in_callback_for_method_s);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Error_in_grpc_server_request_cal);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Error_in_grpc_server_request_reg);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Exception_not_handled_by__handle);
  Py_VISIT(traverse_module_state->__pyx_n_s_ExecuteBatchError);
  Py_VISIT(traverse_module_state->__pyx_kp_s_ExecuteBatchError_raised_in_core);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Exiting_child_due_to_raised_exce);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Expected_bytes_str_or_unicode_no);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Expected_int_bytes_or_behavior_g);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Expected_str_not);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Expecting_non_ok_status_code);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Failed_grpc_call_start_batch_wit);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Failed_s_s);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Failed_sending_error_status_from);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Failed_to_get_server_sockets_ple);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Failed_to_get_servers_please_ens);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Failed_to_get_the_channel_please);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Failed_to_get_the_server_please);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Failed_to_get_the_socket_please);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Failed_to_get_the_subchannel_ple);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Failed_to_get_top_channels_pleas);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Failed_to_receive_any_message_fr);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Failed_to_shutdown_gRPC_Core_aft);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Failed_to_shutdown_gRPC_Python_t);
  Py_VISIT(traverse_module_state->__pyx_n_s_ForkManagedThread);
  Py_VISIT(traverse_module_state->__pyx_n_s_ForkManagedThread___init);
  Py_VISIT(traverse_module_state->__pyx_n_s_ForkManagedThread___init___local);
  Py_VISIT(traverse_module_state->__pyx_n_s_ForkManagedThread_join);
  Py_VISIT(traverse_module_state->__pyx_n_s_ForkManagedThread_setDaemon);
  Py_VISIT(traverse_module_state->__pyx_n_s_ForkManagedThread_start);
  Py_VISIT(traverse_module_state->__pyx_n_s_ForkState);
  Py_VISIT(traverse_module_state->__pyx_n_s_ForkState___init);
  Py_VISIT(traverse_module_state->__pyx_n_s_GRPC_ASYNCIO_ENGINE);
  Py_VISIT(traverse_module_state->__pyx_n_s_GRPC_COMPRESSION_CHANNEL_DEFAULT);
  Py_VISIT(traverse_module_state->__pyx_n_s_GRPC_COMPRESSION_REQUEST_ALGORIT);
  Py_VISIT(traverse_module_state->__pyx_n_s_GRPC_ENABLE_FORK_SUPPORT);
  Py_VISIT(traverse_module_state->__pyx_n_s_GRPC_ENABLE_FORK_SUPPORT_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_GRPC_PROPAGATE_CANCELLATION);
  Py_VISIT(traverse_module_state->__pyx_n_s_GRPC_PROPAGATE_CENSUS_STATS_CONT);
  Py_VISIT(traverse_module_state->__pyx_n_s_GRPC_PROPAGATE_CENSUS_TRACING_CO);
  Py_VISIT(traverse_module_state->__pyx_n_s_GRPC_PROPAGATE_DEADLINE);
  Py_VISIT(traverse_module_state->__pyx_n_s_GRPC_PROPAGATE_DEFAULTS);
  Py_VISIT(traverse_module_state->__pyx_n_s_Group);
  Py_VISIT(traverse_module_state->__pyx_n_s_GrpcArgWrapper);
  Py_VISIT(traverse_module_state->__pyx_n_s_GrpcArgWrapper___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_GrpcArgWrapper___setstate_cytho);
  Py_VISIT(traverse_module_state->__pyx_n_s_GrpcCallWrapper);
  Py_VISIT(traverse_module_state->__pyx_kp_s_HandleExceptions_s);
  Py_VISIT(traverse_module_state->__pyx_n_s_HandlerCallDetails);
  Py_VISIT(traverse_module_state->__pyx_n_s_HandlerCallDetails___reduce_cyt);
  Py_VISIT(traverse_module_state->__pyx_n_s_HandlerCallDetails___setstate_c);
  Py_VISIT(traverse_module_state->__pyx_n_s_IMMUTABLE_EMPTY_METADATA);
  Py_VISIT(traverse_module_state->__pyx_n_s_INTERNAL_CALL_ERROR_MESSAGE_FOR);
  Py_VISIT(traverse_module_state->__pyx_n_s_ImportError);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_InitialMetadataFlags);
  Py_VISIT(traverse_module_state->__pyx_n_s_InsecureChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_InsecureChannelCredentials___red);
  Py_VISIT(traverse_module_state->__pyx_n_s_InsecureChannelCredentials___set);
  Py_VISIT(traverse_module_state->__pyx_n_s_IntegratedCall);
  Py_VISIT(traverse_module_state->__pyx_n_s_IntegratedCall___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_IntegratedCall___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_IntegratedCall_cancel);
  Py_VISIT(traverse_module_state->__pyx_n_s_IntegratedCall_operate);
  Py_VISIT(traverse_module_state->__pyx_n_s_InternalError);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Internal_error_from_Core);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Internal_gRPC_call_error_d);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Invalid_encoding_on_s);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Invalid_trailing_metadata_type_e);
  Py_VISIT(traverse_module_state->__pyx_n_s_KeyError);
  Py_VISIT(traverse_module_state->__pyx_n_s_KeyboardInterrupt);
  Py_VISIT(traverse_module_state->__pyx_n_s_LOGGER);
  Py_VISIT(traverse_module_state->__pyx_n_s_LatentEventArg);
  Py_VISIT(traverse_module_state->__pyx_n_s_LocalChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_LocalChannelCredentials___reduce);
  Py_VISIT(traverse_module_state->__pyx_n_s_LocalChannelCredentials___setsta);
  Py_VISIT(traverse_module_state->__pyx_n_s_LocalConnectionType);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Locally_aborted);
  Py_VISIT(traverse_module_state->__pyx_n_s_Lock);
  Py_VISIT(traverse_module_state->__pyx_n_s_MessageReceiver);
  Py_VISIT(traverse_module_state->__pyx_n_s_MessageReceiver___anext);
  Py_VISIT(traverse_module_state->__pyx_n_s_MessageReceiver___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_MessageReceiver___setstate_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_MessageReceiver__async_message);
  Py_VISIT(traverse_module_state->__pyx_n_s_MetadataPluginCallCredentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_MetadataPluginCallCredentials_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_MetadataPluginCallCredentials_3);
  Py_VISIT(traverse_module_state->__pyx_n_s_Metadatum);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Method_not_found);
  Py_VISIT(traverse_module_state->__pyx_n_s_NON_OK_CALL_REPRESENTATION);
  Py_VISIT(traverse_module_state->__pyx_kp_s_No_custom_hooks_are_implemented);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Non_thread_safe_operation);
  Py_VISIT(traverse_module_state->__pyx_n_s_None);
  Py_VISIT(traverse_module_state->__pyx_n_s_NotImplementedError);
  Py_VISIT(traverse_module_state->__pyx_n_s_OK_CALL_REPRESENTATION);
  Py_VISIT(traverse_module_state->__pyx_n_s_Operation);
  Py_VISIT(traverse_module_state->__pyx_n_s_OperationType);
  Py_VISIT(traverse_module_state->__pyx_n_s_Operation___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Operation___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Optional);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Optional_int);
  Py_VISIT(traverse_module_state->__pyx_n_s_POLLER);
  Py_VISIT(traverse_module_state->__pyx_n_s_PickleError);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Please_report_to_https_github_co);
  Py_VISIT(traverse_module_state->__pyx_n_s_PollerCompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_n_s_PollerCompletionQueue___reduce_c);
  Py_VISIT(traverse_module_state->__pyx_n_s_PollerCompletionQueue___setstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_PollerCompletionQueue__handle_ev);
  Py_VISIT(traverse_module_state->__pyx_n_s_PollerCompletionQueue__poll_wrap);
  Py_VISIT(traverse_module_state->__pyx_n_s_PollerCompletionQueue_bind_loop);
  Py_VISIT(traverse_module_state->__pyx_n_s_PropagationConstants);
  Py_VISIT(traverse_module_state->__pyx_n_s_Pyx_CFunc_1f6ebd__4grpc_7_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_Pyx_CFunc_4grpc_7_cython_6cygr);
  Py_VISIT(traverse_module_state->__pyx_n_s_Pyx_CFunc_4grpc_7_cython_6cygr_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_Pyx_CFunc_7f0cf6__4grpc_7_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_Queue);
  Py_VISIT(traverse_module_state->__pyx_n_s_RLock);
  Py_VISIT(traverse_module_state->__pyx_n_s_RPCState);
  Py_VISIT(traverse_module_state->__pyx_n_s_RPCState___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_RPCState___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_kp_s_RPC_already_finished);
  Py_VISIT(traverse_module_state->__pyx_kp_s_RPC_cancelled_for_servicer_metho);
  Py_VISIT(traverse_module_state->__pyx_kp_s_RPC_cancelled_for_unknown_reason);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Raised_if_the_server_is_stopped);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Raised_upon_unexpected_errors_in);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Raised_when_calling_abort_in_ser);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Raised_when_execute_batch_return);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Raised_when_the_usage_of_API_by);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveCloseOnServerOperation);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveCloseOnServerOperation_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveCloseOnServerOperation_3);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveCloseOnServerOperation_ca);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveCloseOnServerOperation_ty);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveInitialMetadataOperation);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveInitialMetadataOperation_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveInitialMetadataOperation_3);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveInitialMetadataOperation_4);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveInitialMetadataOperation_5);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveMessageOperation);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveMessageOperation___reduce);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveMessageOperation___setsta);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveMessageOperation_message);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveMessageOperation_type);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveStatusOnClientOperation);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveStatusOnClientOperation_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveStatusOnClientOperation_3);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveStatusOnClientOperation_c);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveStatusOnClientOperation_d);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveStatusOnClientOperation_e);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveStatusOnClientOperation_t);
  Py_VISIT(traverse_module_state->__pyx_n_s_ReceiveStatusOnClientOperation_t_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_RegisteredMethod);
  Py_VISIT(traverse_module_state->__pyx_n_s_RegisteredMethod___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_RegisteredMethod___setstate_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_RequestCallError);
  Py_VISIT(traverse_module_state->__pyx_n_s_RequestCallEvent);
  Py_VISIT(traverse_module_state->__pyx_n_s_RequestCallEvent___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_RequestCallEvent___setstate_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_RequestCallTag);
  Py_VISIT(traverse_module_state->__pyx_n_s_RequestCallTag___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_RequestCallTag___setstate_cytho);
  Py_VISIT(traverse_module_state->__pyx_n_s_RuntimeError);
  Py_VISIT(traverse_module_state->__pyx_n_s_SERVICES_TO_EXCLUDE);
  Py_VISIT(traverse_module_state->__pyx_n_s_SSLChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_SSLChannelCredentials___reduce_c);
  Py_VISIT(traverse_module_state->__pyx_n_s_SSLChannelCredentials___setstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_SSLSessionCacheLRU);
  Py_VISIT(traverse_module_state->__pyx_n_s_SSLSessionCacheLRU___reduce_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_SSLSessionCacheLRU___setstate_cy);
  Py_VISIT(traverse_module_state->__pyx_n_s_SegregatedCall);
  Py_VISIT(traverse_module_state->__pyx_n_s_SegregatedCall___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_SegregatedCall___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_SegregatedCall_cancel);
  Py_VISIT(traverse_module_state->__pyx_n_s_SegregatedCall_next_event);
  Py_VISIT(traverse_module_state->__pyx_n_s_SegregatedCall_operate);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendCloseFromClientOperation);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendCloseFromClientOperation___r);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendCloseFromClientOperation___s);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendCloseFromClientOperation_typ);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendInitialMetadataOperation);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendInitialMetadataOperation___r);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendInitialMetadataOperation___s);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendInitialMetadataOperation_typ);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendMessageOperation);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendMessageOperation___reduce_cy);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendMessageOperation___setstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendMessageOperation_type);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendStatusFromServerOperation);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendStatusFromServerOperation_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendStatusFromServerOperation_3);
  Py_VISIT(traverse_module_state->__pyx_n_s_SendStatusFromServerOperation_ty);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Send_initial_metadata_failed_alr);
  Py_VISIT(traverse_module_state->__pyx_n_s_Server);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServerCertificateConfig);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServerCertificateConfig___reduce);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServerCertificateConfig___setsta);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServerCertificateConfiguration);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServerCredentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServerCredentials___reduce_cytho);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServerCredentials___setstate_cyt);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServerShutdownEvent);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServerShutdownEvent___reduce_cyt);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServerShutdownEvent___setstate_c);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServerShutdownTag);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServerShutdownTag___reduce_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServerShutdownTag___setstate_cy);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServerStoppedError);
  Py_VISIT(traverse_module_state->__pyx_n_s_Server___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Server___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Server_add_http2_port);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Server_already_stopped);
  Py_VISIT(traverse_module_state->__pyx_n_s_Server_cancel_all_calls);
  Py_VISIT(traverse_module_state->__pyx_n_s_Server_destroy);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Server_not_in_ready_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_Server_register_completion_queue);
  Py_VISIT(traverse_module_state->__pyx_n_s_Server_register_method);
  Py_VISIT(traverse_module_state->__pyx_n_s_Server_request_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_Server_request_registered_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_Server_shutdown);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Server_shutdown_failed_no_comple);
  Py_VISIT(traverse_module_state->__pyx_n_s_Server_start);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext___setstate_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_abort);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_abort_with_stat);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_add_done_callba);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_auth_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_cancelled);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_code);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_details);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_disable_next_me);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_done);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_invocation_meta);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_peer);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_peer_identities);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_peer_identity_k);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_read);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_send_initial_me);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_set_code);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_set_compression);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_set_details);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_set_trailing_me);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_time_remaining);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_trailing_metada);
  Py_VISIT(traverse_module_state->__pyx_n_s_ServicerContext_write);
  Py_VISIT(traverse_module_state->__pyx_n_s_SslPemKeyCertPair);
  Py_VISIT(traverse_module_state->__pyx_n_s_SslPemKeyCertPair___reduce_cytho);
  Py_VISIT(traverse_module_state->__pyx_n_s_SslPemKeyCertPair___setstate_cyt);
  Py_VISIT(traverse_module_state->__pyx_n_s_StatusCode);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext___reduce_cy);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext___setstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext_abort);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext_add_callbac);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext_auth_contex);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext_disable_nex);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext_invocation);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext_peer);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext_peer_identi);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext_peer_identi_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext_send_initia);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext_set_code);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext_set_compres);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext_set_details);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext_set_trailin);
  Py_VISIT(traverse_module_state->__pyx_n_s_SyncServicerContext_time_remain);
  Py_VISIT(traverse_module_state->__pyx_n_s_SystemExit);
  Py_VISIT(traverse_module_state->__pyx_n_s_TRUE);
  Py_VISIT(traverse_module_state->__pyx_n_s_TRUE_VALUES);
  Py_VISIT(traverse_module_state->__pyx_n_s_TYPE_METADATA_STRING);
  Py_VISIT(traverse_module_state->__pyx_n_s_Tag);
  Py_VISIT(traverse_module_state->__pyx_n_s_Tag___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Tag___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_kp_s_The_base_class_for_exceptions_ge);
  Py_VISIT(traverse_module_state->__pyx_n_s_Thread);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Timed_out);
  Py_VISIT(traverse_module_state->__pyx_n_s_TimeoutError);
  Py_VISIT(traverse_module_state->__pyx_n_s_True);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Tuple_Tuple_str_Union_str_bytes);
  Py_VISIT(traverse_module_state->__pyx_n_s_TypeError);
  Py_VISIT(traverse_module_state->__pyx_n_s_UNKNOWN_CANCELLATION_DETAILS);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Unexpected_s_raised_by_servicer);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Unexpected_s_s);
  Py_VISIT(traverse_module_state->__pyx_n_s_UnicodeDecodeError);
  Py_VISIT(traverse_module_state->__pyx_n_s_Unknown);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Unsupported_engine_type_s);
  Py_VISIT(traverse_module_state->__pyx_n_s_UsageError);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Using_s_as_I_O_engine);
  Py_VISIT(traverse_module_state->__pyx_n_s_ValueError);
  Py_VISIT(traverse_module_state->__pyx_n_s_WatchConnectivityFailed);
  Py_VISIT(traverse_module_state->__pyx_n_s_WriteFlag);
  Py_VISIT(traverse_module_state->__pyx_n_s_XDSChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_XDSChannelCredentials___reduce_c);
  Py_VISIT(traverse_module_state->__pyx_n_s_XDSChannelCredentials___setstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_YES);
  Py_VISIT(traverse_module_state->__pyx_n_s_Yes);
  Py_VISIT(traverse_module_state->__pyx_n_s__107);
  Py_VISIT(traverse_module_state->__pyx_n_s__38);
  Py_VISIT(traverse_module_state->__pyx_kp_u__49);
  Py_VISIT(traverse_module_state->__pyx_n_s__57);
  Py_VISIT(traverse_module_state->__pyx_kp_u__58);
  Py_VISIT(traverse_module_state->__pyx_kp_u__69);
  Py_VISIT(traverse_module_state->__pyx_kp_b__7);
  Py_VISIT(traverse_module_state->__pyx_kp_s__7);
  Py_VISIT(traverse_module_state->__pyx_kp_u__70);
  Py_VISIT(traverse_module_state->__pyx_kp_u__71);
  Py_VISIT(traverse_module_state->__pyx_n_s_abort);
  Py_VISIT(traverse_module_state->__pyx_n_s_abort_with_status);
  Py_VISIT(traverse_module_state->__pyx_n_s_aborted);
  Py_VISIT(traverse_module_state->__pyx_n_s_active_thread_count);
  Py_VISIT(traverse_module_state->__pyx_n_s_actual_code);
  Py_VISIT(traverse_module_state->__pyx_n_s_add);
  Py_VISIT(traverse_module_state->__pyx_n_s_add_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_add_callback_handler_locals_han);
  Py_VISIT(traverse_module_state->__pyx_n_s_add_done_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_add_generic_rpc_handlers);
  Py_VISIT(traverse_module_state->__pyx_n_s_add_http2_port);
  Py_VISIT(traverse_module_state->__pyx_n_s_add_insecure_port);
  Py_VISIT(traverse_module_state->__pyx_n_s_add_reader);
  Py_VISIT(traverse_module_state->__pyx_n_s_add_secure_port);
  Py_VISIT(traverse_module_state->__pyx_n_s_address);
  Py_VISIT(traverse_module_state->__pyx_n_s_address_c_string);
  Py_VISIT(traverse_module_state->__pyx_n_s_aenter);
  Py_VISIT(traverse_module_state->__pyx_n_s_aexit);
  Py_VISIT(traverse_module_state->__pyx_n_s_after_in_child);
  Py_VISIT(traverse_module_state->__pyx_n_s_after_in_parent);
  Py_VISIT(traverse_module_state->__pyx_n_s_agen);
  Py_VISIT(traverse_module_state->__pyx_n_s_aiter);
  Py_VISIT(traverse_module_state->__pyx_n_s_algorithm);
  Py_VISIT(traverse_module_state->__pyx_n_s_already_accepted);
  Py_VISIT(traverse_module_state->__pyx_n_s_already_exists);
  Py_VISIT(traverse_module_state->__pyx_n_s_already_finished);
  Py_VISIT(traverse_module_state->__pyx_n_s_already_invoked);
  Py_VISIT(traverse_module_state->__pyx_n_s_anext);
  Py_VISIT(traverse_module_state->__pyx_n_s_append);
  Py_VISIT(traverse_module_state->__pyx_n_s_apply);
  Py_VISIT(traverse_module_state->__pyx_n_s_args);
  Py_VISIT(traverse_module_state->__pyx_n_s_arguments);
  Py_VISIT(traverse_module_state->__pyx_n_s_ascii);
  Py_VISIT(traverse_module_state->__pyx_n_s_async_callback_func);
  Py_VISIT(traverse_module_state->__pyx_n_s_async_generator_to_generator);
  Py_VISIT(traverse_module_state->__pyx_n_s_async_message_receiver);
  Py_VISIT(traverse_module_state->__pyx_n_s_async_response_generator);
  Py_VISIT(traverse_module_state->__pyx_n_s_asyncio);
  Py_VISIT(traverse_module_state->__pyx_n_s_asyncio_coroutines);
  Py_VISIT(traverse_module_state->__pyx_n_s_asyncio_tasks);
  Py_VISIT(traverse_module_state->__pyx_n_s_atexit);
  Py_VISIT(traverse_module_state->__pyx_n_s_auth_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_await);
  Py_VISIT(traverse_module_state->__pyx_n_s_await_zero_threads);
  Py_VISIT(traverse_module_state->__pyx_n_s_backup_queue);
  Py_VISIT(traverse_module_state->__pyx_n_s_batch_error);
  Py_VISIT(traverse_module_state->__pyx_n_s_batch_operation_tag);
  Py_VISIT(traverse_module_state->__pyx_n_s_batch_operations);
  Py_VISIT(traverse_module_state->__pyx_n_s_before);
  Py_VISIT(traverse_module_state->__pyx_kp_b_bin);
  Py_VISIT(traverse_module_state->__pyx_n_s_bind_loop);
  Py_VISIT(traverse_module_state->__pyx_n_s_block_if_fork_in_progress);
  Py_VISIT(traverse_module_state->__pyx_n_s_bool);
  Py_VISIT(traverse_module_state->__pyx_n_s_buffer_hint);
  Py_VISIT(traverse_module_state->__pyx_n_s_build_census_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_bytes_ctx);
  Py_VISIT(traverse_module_state->__pyx_n_s_c_call_credentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_c_call_error);
  Py_VISIT(traverse_module_state->__pyx_n_s_c_cert_config);
  Py_VISIT(traverse_module_state->__pyx_n_s_c_deadline);
  Py_VISIT(traverse_module_state->__pyx_n_s_c_details);
  Py_VISIT(traverse_module_state->__pyx_n_s_c_error_details);
  Py_VISIT(traverse_module_state->__pyx_n_s_c_event);
  Py_VISIT(traverse_module_state->__pyx_n_s_c_key);
  Py_VISIT(traverse_module_state->__pyx_n_s_c_options);
  Py_VISIT(traverse_module_state->__pyx_n_s_c_peer);
  Py_VISIT(traverse_module_state->__pyx_n_s_c_pem_root_certs);
  Py_VISIT(traverse_module_state->__pyx_n_s_c_returned_str);
  Py_VISIT(traverse_module_state->__pyx_n_s_c_target);
  Py_VISIT(traverse_module_state->__pyx_n_s_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_call_credentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_call_credentialses);
  Py_VISIT(traverse_module_state->__pyx_n_s_call_creds);
  Py_VISIT(traverse_module_state->__pyx_n_s_call_details);
  Py_VISIT(traverse_module_state->__pyx_n_s_call_error);
  Py_VISIT(traverse_module_state->__pyx_n_s_call_handle);
  Py_VISIT(traverse_module_state->__pyx_n_s_call_queue);
  Py_VISIT(traverse_module_state->__pyx_n_s_call_soon_threadsafe);
  Py_VISIT(traverse_module_state->__pyx_n_s_call_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_callback_func);
  Py_VISIT(traverse_module_state->__pyx_n_s_callback_wrapper);
  Py_VISIT(traverse_module_state->__pyx_n_s_cancel);
  Py_VISIT(traverse_module_state->__pyx_n_s_cancel_all_calls);
  Py_VISIT(traverse_module_state->__pyx_n_s_cancelled);
  Py_VISIT(traverse_module_state->__pyx_kp_s_cannot_register_completion_queue);
  Py_VISIT(traverse_module_state->__pyx_n_s_capacity);
  Py_VISIT(traverse_module_state->__pyx_n_s_capsule);
  Py_VISIT(traverse_module_state->__pyx_n_s_capsule_ptr);
  Py_VISIT(traverse_module_state->__pyx_n_s_catch_warnings);
  Py_VISIT(traverse_module_state->__pyx_n_s_cb);
  Py_VISIT(traverse_module_state->__pyx_n_s_cb_func);
  Py_VISIT(traverse_module_state->__pyx_n_s_census_ctx);
  Py_VISIT(traverse_module_state->__pyx_n_s_cert_config);
  Py_VISIT(traverse_module_state->__pyx_n_s_cert_config_fetcher);
  Py_VISIT(traverse_module_state->__pyx_kp_s_cert_config_fetcher_must_be_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_certificate_chain);
  Py_VISIT(traverse_module_state->__pyx_n_s_certificate_configuration);
  Py_VISIT(traverse_module_state->__pyx_n_s_cfunc_to_py);
  Py_VISIT(traverse_module_state->__pyx_n_s_channel);
  Py_VISIT(traverse_module_state->__pyx_n_s_channel_credentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_channel_credentials_alts);
  Py_VISIT(traverse_module_state->__pyx_n_s_channel_credentials_compute_engi);
  Py_VISIT(traverse_module_state->__pyx_n_s_channel_credentials_insecure);
  Py_VISIT(traverse_module_state->__pyx_n_s_channel_credentials_local);
  Py_VISIT(traverse_module_state->__pyx_n_s_channel_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_channel_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_channels);
  Py_VISIT(traverse_module_state->__pyx_n_s_channelz_get_channel);
  Py_VISIT(traverse_module_state->__pyx_n_s_channelz_get_server);
  Py_VISIT(traverse_module_state->__pyx_n_s_channelz_get_server_sockets);
  Py_VISIT(traverse_module_state->__pyx_n_s_channelz_get_servers);
  Py_VISIT(traverse_module_state->__pyx_n_s_channelz_get_socket);
  Py_VISIT(traverse_module_state->__pyx_n_s_channelz_get_subchannel);
  Py_VISIT(traverse_module_state->__pyx_n_s_channelz_get_top_channels);
  Py_VISIT(traverse_module_state->__pyx_n_s_check_before_request_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_check_connectivity_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_class);
  Py_VISIT(traverse_module_state->__pyx_n_s_class_getitem);
  Py_VISIT(traverse_module_state->__pyx_n_s_clear);
  Py_VISIT(traverse_module_state->__pyx_n_s_clear_server_call_tracer_factory);
  Py_VISIT(traverse_module_state->__pyx_n_s_client_config_in_slice);
  Py_VISIT(traverse_module_state->__pyx_n_s_cline_in_traceback);
  Py_VISIT(traverse_module_state->__pyx_n_s_close);
  Py_VISIT(traverse_module_state->__pyx_n_s_close_on_fork);
  Py_VISIT(traverse_module_state->__pyx_n_s_close_on_fork_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_closed);
  Py_VISIT(traverse_module_state->__pyx_n_s_closing);
  Py_VISIT(traverse_module_state->__pyx_n_s_code);
  Py_VISIT(traverse_module_state->__pyx_n_s_codecs);
  Py_VISIT(traverse_module_state->__pyx_n_s_collections);
  Py_VISIT(traverse_module_state->__pyx_n_s_common);
  Py_VISIT(traverse_module_state->__pyx_n_s_completion_type);
  Py_VISIT(traverse_module_state->__pyx_n_s_compression);
  Py_VISIT(traverse_module_state->__pyx_n_s_compression_algorithm_name);
  Py_VISIT(traverse_module_state->__pyx_n_s_concurrency_exceeded);
  Py_VISIT(traverse_module_state->__pyx_n_s_condition);
  Py_VISIT(traverse_module_state->__pyx_n_s_connecting);
  Py_VISIT(traverse_module_state->__pyx_n_s_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_context_loop);
  Py_VISIT(traverse_module_state->__pyx_n_s_contextvars);
  Py_VISIT(traverse_module_state->__pyx_n_s_contextvars_supported);
  Py_VISIT(traverse_module_state->__pyx_n_s_continuation);
  Py_VISIT(traverse_module_state->__pyx_n_s_copy);
  Py_VISIT(traverse_module_state->__pyx_n_s_copy_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_core_function_name);
  Py_VISIT(traverse_module_state->__pyx_n_s_coro);
  Py_VISIT(traverse_module_state->__pyx_n_s_create_client_call_tracer);
  Py_VISIT(traverse_module_state->__pyx_n_s_create_future);
  Py_VISIT(traverse_module_state->__pyx_n_s_create_server_call_tracer_factor);
  Py_VISIT(traverse_module_state->__pyx_n_s_create_task);
  Py_VISIT(traverse_module_state->__pyx_n_s_credentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_credentials_2);
  Py_VISIT(traverse_module_state->__pyx_kp_s_credentials_roots_pem);
  Py_VISIT(traverse_module_state->__pyx_n_s_creds);
  Py_VISIT(traverse_module_state->__pyx_n_s_ctx);
  Py_VISIT(traverse_module_state->__pyx_n_s_custom_io_manager);
  Py_VISIT(traverse_module_state->__pyx_n_s_custom_op_on_c_call);
  Py_VISIT(traverse_module_state->__pyx_kp_s_cygrpc);
  Py_VISIT(traverse_module_state->__pyx_n_s_cython_call_credentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_daemon);
  Py_VISIT(traverse_module_state->__pyx_n_s_daemonic);
  Py_VISIT(traverse_module_state->__pyx_n_s_data);
  Py_VISIT(traverse_module_state->__pyx_n_s_data_loss);
  Py_VISIT(traverse_module_state->__pyx_n_s_deadline);
  Py_VISIT(traverse_module_state->__pyx_n_s_deadline_exceeded);
  Py_VISIT(traverse_module_state->__pyx_kp_s_dealloc___called_on_running_se);
  Py_VISIT(traverse_module_state->__pyx_n_s_debug);
  Py_VISIT(traverse_module_state->__pyx_n_s_debug_error_string);
  Py_VISIT(traverse_module_state->__pyx_n_s_decode);
  Py_VISIT(traverse_module_state->__pyx_n_s_decrease_active_rpcs_count);
  Py_VISIT(traverse_module_state->__pyx_n_s_decrease_once_finished);
  Py_VISIT(traverse_module_state->__pyx_n_s_decrement);
  Py_VISIT(traverse_module_state->__pyx_n_s_default_authority);
  Py_VISIT(traverse_module_state->__pyx_n_s_default_vtable);
  Py_VISIT(traverse_module_state->__pyx_n_s_deflate);
  Py_VISIT(traverse_module_state->__pyx_n_s_destroy);
  Py_VISIT(traverse_module_state->__pyx_n_s_details);
  Py_VISIT(traverse_module_state->__pyx_n_s_details_bytes);
  Py_VISIT(traverse_module_state->__pyx_n_s_dict);
  Py_VISIT(traverse_module_state->__pyx_n_s_dict_2);
  Py_VISIT(traverse_module_state->__pyx_kp_u_disable);
  Py_VISIT(traverse_module_state->__pyx_n_s_disable_algorithm);
  Py_VISIT(traverse_module_state->__pyx_n_s_disable_next_message_compression);
  Py_VISIT(traverse_module_state->__pyx_n_s_discard);
  Py_VISIT(traverse_module_state->__pyx_n_s_doc);
  Py_VISIT(traverse_module_state->__pyx_n_s_done);
  Py_VISIT(traverse_module_state->__pyx_n_s_dump_xds_configs);
  Py_VISIT(traverse_module_state->__pyx_n_s_e);
  Py_VISIT(traverse_module_state->__pyx_kp_u_enable);
  Py_VISIT(traverse_module_state->__pyx_n_s_enable_algorithm);
  Py_VISIT(traverse_module_state->__pyx_n_s_enable_census);
  Py_VISIT(traverse_module_state->__pyx_n_s_encode);
  Py_VISIT(traverse_module_state->__pyx_n_s_end_time);
  Py_VISIT(traverse_module_state->__pyx_n_s_endswith);
  Py_VISIT(traverse_module_state->__pyx_n_s_enter);
  Py_VISIT(traverse_module_state->__pyx_n_s_enter_user_request_generator);
  Py_VISIT(traverse_module_state->__pyx_n_s_enum);
  Py_VISIT(traverse_module_state->__pyx_n_s_enumerate);
  Py_VISIT(traverse_module_state->__pyx_n_s_environ);
  Py_VISIT(traverse_module_state->__pyx_n_s_errno);
  Py_VISIT(traverse_module_state->__pyx_n_s_error);
  Py_VISIT(traverse_module_state->__pyx_n_s_error_code);
  Py_VISIT(traverse_module_state->__pyx_n_s_error_details);
  Py_VISIT(traverse_module_state->__pyx_n_s_error_str);
  Py_VISIT(traverse_module_state->__pyx_n_s_error_string);
  Py_VISIT(traverse_module_state->__pyx_n_s_event);
  Py_VISIT(traverse_module_state->__pyx_n_s_exc_info);
  Py_VISIT(traverse_module_state->__pyx_n_s_exception);
  Py_VISIT(traverse_module_state->__pyx_n_s_exception_type);
  Py_VISIT(traverse_module_state->__pyx_n_s_execute_batch);
  Py_VISIT(traverse_module_state->__pyx_n_s_exit);
  Py_VISIT(traverse_module_state->__pyx_n_s_exit_2);
  Py_VISIT(traverse_module_state->__pyx_kp_s_expected_certificate_to_be_bytes);
  Py_VISIT(traverse_module_state->__pyx_kp_s_expected_pem_key_cert_pairs_to_b);
  Py_VISIT(traverse_module_state->__pyx_kp_s_expected_registered_completion_q);
  Py_VISIT(traverse_module_state->__pyx_n_s_failed_precondition);
  Py_VISIT(traverse_module_state->__pyx_n_s_failure_handler);
  Py_VISIT(traverse_module_state->__pyx_n_s_fallback_credentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_fileno);
  Py_VISIT(traverse_module_state->__pyx_n_s_find_method_handler);
  Py_VISIT(traverse_module_state->__pyx_n_s_find_method_handler_locals_quer);
  Py_VISIT(traverse_module_state->__pyx_n_s_finish_handler_with_stream_resp);
  Py_VISIT(traverse_module_state->__pyx_n_s_finish_handler_with_unary_respo);
  Py_VISIT(traverse_module_state->__pyx_n_s_finish_ops);
  Py_VISIT(traverse_module_state->__pyx_n_s_flags);
  Py_VISIT(traverse_module_state->__pyx_n_s_fn);
  Py_VISIT(traverse_module_state->__pyx_n_s_force_client_auth);
  Py_VISIT(traverse_module_state->__pyx_n_s_fork_epoch);
  Py_VISIT(traverse_module_state->__pyx_n_s_fork_handler_failed);
  Py_VISIT(traverse_module_state->__pyx_n_s_fork_handler_registered);
  Py_VISIT(traverse_module_state->__pyx_n_s_fork_handler_registered_lock);
  Py_VISIT(traverse_module_state->__pyx_n_s_fork_handlers_and_grpc_init);
  Py_VISIT(traverse_module_state->__pyx_n_s_fork_in_progress);
  Py_VISIT(traverse_module_state->__pyx_n_s_fork_in_progress_condition);
  Py_VISIT(traverse_module_state->__pyx_n_s_fork_register_channel);
  Py_VISIT(traverse_module_state->__pyx_n_s_fork_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_fork_unregister_channel);
  Py_VISIT(traverse_module_state->__pyx_n_s_format);
  Py_VISIT(traverse_module_state->__pyx_n_s_format_exception);
  Py_VISIT(traverse_module_state->__pyx_n_s_fully_qualified_method);
  Py_VISIT(traverse_module_state->__pyx_n_s_functools);
  Py_VISIT(traverse_module_state->__pyx_n_s_future);
  Py_VISIT(traverse_module_state->__pyx_n_s_g_gevent_activated);
  Py_VISIT(traverse_module_state->__pyx_n_s_g_gevent_pool);
  Py_VISIT(traverse_module_state->__pyx_n_s_g_gevent_threadpool);
  Py_VISIT(traverse_module_state->__pyx_n_s_g_interrupt_check_period_ms);
  Py_VISIT(traverse_module_state->__pyx_kp_u_gc);
  Py_VISIT(traverse_module_state->__pyx_n_s_gen);
  Py_VISIT(traverse_module_state->__pyx_n_s_generator_to_async_generator);
  Py_VISIT(traverse_module_state->__pyx_n_s_generator_to_async_generator_loc);
  Py_VISIT(traverse_module_state->__pyx_n_s_generic_handler);
  Py_VISIT(traverse_module_state->__pyx_n_s_generic_handlers);
  Py_VISIT(traverse_module_state->__pyx_n_s_generic_rpc_handlers);
  Py_VISIT(traverse_module_state->__pyx_n_s_genexpr);
  Py_VISIT(traverse_module_state->__pyx_n_s_get);
  Py_VISIT(traverse_module_state->__pyx_n_s_getLogger);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_data);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_deadline_from_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_event_loop);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_event_loop_policy);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_fork_epoch);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_hub);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_metadata_locals_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_plugin);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_registered_call_handle);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_running_loop);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_server_call_tracer_factory_a);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_working_loop);
  Py_VISIT(traverse_module_state->__pyx_n_s_getstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_gevent);
  Py_VISIT(traverse_module_state->__pyx_n_s_gevent_decrement_channel_count);
  Py_VISIT(traverse_module_state->__pyx_n_s_gevent_hub);
  Py_VISIT(traverse_module_state->__pyx_n_s_gevent_increment_channel_count);
  Py_VISIT(traverse_module_state->__pyx_n_s_gevent_pool);
  Py_VISIT(traverse_module_state->__pyx_n_s_grace);
  Py_VISIT(traverse_module_state->__pyx_n_s_grpc);
  Py_VISIT(traverse_module_state->__pyx_n_s_grpc__cython_cygrpc);
  Py_VISIT(traverse_module_state->__pyx_kp_s_grpc_aio_EOF);
  Py_VISIT(traverse_module_state->__pyx_n_s_grpc_call_error_string);
  Py_VISIT(traverse_module_state->__pyx_n_s_grpc_call_wrapper);
  Py_VISIT(traverse_module_state->__pyx_n_s_grpc_completion_queue_shutdown);
  Py_VISIT(traverse_module_state->__pyx_kp_s_grpc_python__cygrpc__GrpcArgWrap);
  Py_VISIT(traverse_module_state->__pyx_n_s_grpc_server_request_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_grpc_server_shutdown_and_notify);
  Py_VISIT(traverse_module_state->__pyx_n_s_grpc_shutdown_wrapper);
  Py_VISIT(traverse_module_state->__pyx_n_s_gzip);
  Py_VISIT(traverse_module_state->__pyx_n_s_handle_callback_wrapper);
  Py_VISIT(traverse_module_state->__pyx_n_s_handle_callbacks);
  Py_VISIT(traverse_module_state->__pyx_n_s_handle_cancellation_from_core);
  Py_VISIT(traverse_module_state->__pyx_n_s_handle_events);
  Py_VISIT(traverse_module_state->__pyx_n_s_handle_exceptions);
  Py_VISIT(traverse_module_state->__pyx_n_s_handle_rpc);
  Py_VISIT(traverse_module_state->__pyx_n_s_handle_status_once_received);
  Py_VISIT(traverse_module_state->__pyx_n_s_handle_stream_stream_rpc);
  Py_VISIT(traverse_module_state->__pyx_n_s_handle_stream_unary_rpc);
  Py_VISIT(traverse_module_state->__pyx_n_s_handle_unary_stream_rpc);
  Py_VISIT(traverse_module_state->__pyx_n_s_handle_unary_unary_rpc);
  Py_VISIT(traverse_module_state->__pyx_n_s_handler);
  Py_VISIT(traverse_module_state->__pyx_n_s_handler_call_details);
  Py_VISIT(traverse_module_state->__pyx_n_s_hex_codec);
  Py_VISIT(traverse_module_state->__pyx_n_s_high);
  Py_VISIT(traverse_module_state->__pyx_n_s_host);
  Py_VISIT(traverse_module_state->__pyx_n_s_http2_initial_sequence_number);
  Py_VISIT(traverse_module_state->__pyx_n_s_hub);
  Py_VISIT(traverse_module_state->__pyx_n_s_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_identities);
  Py_VISIT(traverse_module_state->__pyx_n_s_identity);
  Py_VISIT(traverse_module_state->__pyx_n_s_identity_key);
  Py_VISIT(traverse_module_state->__pyx_n_s_idle);
  Py_VISIT(traverse_module_state->__pyx_kp_s_if_error_code_is_specified_so_mu);
  Py_VISIT(traverse_module_state->__pyx_n_s_import);
  Py_VISIT(traverse_module_state->__pyx_n_s_inbound_ops);
  Py_VISIT(traverse_module_state->__pyx_n_s_increment);
  Py_VISIT(traverse_module_state->__pyx_n_s_init);
  Py_VISIT(traverse_module_state->__pyx_n_s_init_grpc_aio);
  Py_VISIT(traverse_module_state->__pyx_n_s_init_grpc_gevent);
  Py_VISIT(traverse_module_state->__pyx_n_s_init_subclass);
  Py_VISIT(traverse_module_state->__pyx_n_s_initial_cert_config);
  Py_VISIT(traverse_module_state->__pyx_kp_s_initial_cert_config_must_be_a_gr);
  Py_VISIT(traverse_module_state->__pyx_n_s_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_n_s_initial_metadata_op);
  Py_VISIT(traverse_module_state->__pyx_n_s_initializing);
  Py_VISIT(traverse_module_state->__pyx_n_s_initiate_stream_stream);
  Py_VISIT(traverse_module_state->__pyx_n_s_initiate_unary_stream);
  Py_VISIT(traverse_module_state->__pyx_n_s_insecure_server_credentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_inspect);
  Py_VISIT(traverse_module_state->__pyx_n_s_install_context_from_request_cal);
  Py_VISIT(traverse_module_state->__pyx_n_s_install_context_from_request_cal_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_int);
  Py_VISIT(traverse_module_state->__pyx_n_s_integrated_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_integrated_call_locals_on_succe);
  Py_VISIT(traverse_module_state->__pyx_n_s_intercept_service);
  Py_VISIT(traverse_module_state->__pyx_n_s_interceptor);
  Py_VISIT(traverse_module_state->__pyx_n_s_interceptors);
  Py_VISIT(traverse_module_state->__pyx_n_s_internal);
  Py_VISIT(traverse_module_state->__pyx_kp_s_internal_error_user_data_must_be);
  Py_VISIT(traverse_module_state->__pyx_n_s_internal_poll);
  Py_VISIT(traverse_module_state->__pyx_n_s_invalid_argument);
  Py_VISIT(traverse_module_state->__pyx_kp_s_invalid_call_object_cannot_be_us);
  Py_VISIT(traverse_module_state->__pyx_n_s_invalid_flags);
  Py_VISIT(traverse_module_state->__pyx_n_s_invalid_metadata);
  Py_VISIT(traverse_module_state->__pyx_n_s_invocation_metadata);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_algorithm_enabled);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_async_handler);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_coroutine);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_fork_support_enabled);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_locally_cancelled);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_ok);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_running);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_sampled);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_valid);
  Py_VISIT(traverse_module_state->__pyx_n_s_isasyncgenfunction);
  Py_VISIT(traverse_module_state->__pyx_n_s_isawaitable);
  Py_VISIT(traverse_module_state->__pyx_n_s_iscoroutinefunction);
  Py_VISIT(traverse_module_state->__pyx_kp_u_isenabled);
  Py_VISIT(traverse_module_state->__pyx_n_s_item);
  Py_VISIT(traverse_module_state->__pyx_n_s_iter);
  Py_VISIT(traverse_module_state->__pyx_n_s_join);
  Py_VISIT(traverse_module_state->__pyx_n_s_key);
  Py_VISIT(traverse_module_state->__pyx_n_s_keys);
  Py_VISIT(traverse_module_state->__pyx_n_s_last_observed_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_latent_event_arg);
  Py_VISIT(traverse_module_state->__pyx_n_s_len);
  Py_VISIT(traverse_module_state->__pyx_n_s_lk);
  Py_VISIT(traverse_module_state->__pyx_n_s_local_connect_type);
  Py_VISIT(traverse_module_state->__pyx_n_s_local_tcp);
  Py_VISIT(traverse_module_state->__pyx_n_s_logging);
  Py_VISIT(traverse_module_state->__pyx_n_s_loop);
  Py_VISIT(traverse_module_state->__pyx_n_s_low);
  Py_VISIT(traverse_module_state->__pyx_n_s_lower);
  Py_VISIT(traverse_module_state->__pyx_n_s_main);
  Py_VISIT(traverse_module_state->__pyx_n_s_managed_target);
  Py_VISIT(traverse_module_state->__pyx_n_s_max_concurrent_streams);
  Py_VISIT(traverse_module_state->__pyx_n_s_max_receive_message_length);
  Py_VISIT(traverse_module_state->__pyx_n_s_max_results);
  Py_VISIT(traverse_module_state->__pyx_n_s_max_send_message_length);
  Py_VISIT(traverse_module_state->__pyx_n_s_maximum_concurrent_rpcs);
  Py_VISIT(traverse_module_state->__pyx_kp_s_maximum_concurrent_rpcs_should_b);
  Py_VISIT(traverse_module_state->__pyx_n_s_maxsize);
  Py_VISIT(traverse_module_state->__pyx_n_s_maybe_save_server_trace_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_medium);
  Py_VISIT(traverse_module_state->__pyx_n_s_members);
  Py_VISIT(traverse_module_state->__pyx_n_s_message);
  Py_VISIT(traverse_module_state->__pyx_n_s_metaclass);
  Py_VISIT(traverse_module_state->__pyx_n_s_metadata);
  Py_VISIT(traverse_module_state->__pyx_n_s_metadata_locals_genexpr);
  Py_VISIT(traverse_module_state->__pyx_n_s_metadata_plugin);
  Py_VISIT(traverse_module_state->__pyx_n_s_metadata_sent_observer);
  Py_VISIT(traverse_module_state->__pyx_kp_s_metadata_was_invalid_s);
  Py_VISIT(traverse_module_state->__pyx_n_s_method);
  Py_VISIT(traverse_module_state->__pyx_n_s_method_bytes);
  Py_VISIT(traverse_module_state->__pyx_n_s_method_handler);
  Py_VISIT(traverse_module_state->__pyx_n_s_module);
  Py_VISIT(traverse_module_state->__pyx_n_s_mro_entries);
  Py_VISIT(traverse_module_state->__pyx_n_s_name);
  Py_VISIT(traverse_module_state->__pyx_n_s_name_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_namedtuple);
  Py_VISIT(traverse_module_state->__pyx_n_s_new);
  Py_VISIT(traverse_module_state->__pyx_n_s_new_event_loop);
  Py_VISIT(traverse_module_state->__pyx_n_s_next_call_event);
  Py_VISIT(traverse_module_state->__pyx_n_s_next_call_event_locals_on_succes);
  Py_VISIT(traverse_module_state->__pyx_n_s_next_event);
  Py_VISIT(traverse_module_state->__pyx_n_s_next_event_locals_on_failure);
  Py_VISIT(traverse_module_state->__pyx_n_s_next_event_locals_on_success);
  Py_VISIT(traverse_module_state->__pyx_n_s_no_compress);
  Py_VISIT(traverse_module_state->__pyx_kp_s_no_default___reduce___due_to_non);
  Py_VISIT(traverse_module_state->__pyx_n_s_none);
  Py_VISIT(traverse_module_state->__pyx_n_s_not_found);
  Py_VISIT(traverse_module_state->__pyx_n_s_not_invoked);
  Py_VISIT(traverse_module_state->__pyx_n_s_not_on_client);
  Py_VISIT(traverse_module_state->__pyx_n_s_not_on_server);
  Py_VISIT(traverse_module_state->__pyx_n_s_notify_all);
  Py_VISIT(traverse_module_state->__pyx_n_s_num_active_threads);
  Py_VISIT(traverse_module_state->__pyx_n_s_object);
  Py_VISIT(traverse_module_state->__pyx_kp_s_object_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_observability);
  Py_VISIT(traverse_module_state->__pyx_n_s_observability_enabled);
  Py_VISIT(traverse_module_state->__pyx_n_s_observability_plugin);
  Py_VISIT(traverse_module_state->__pyx_kp_s_of_RPC_that_terminated_with_sta);
  Py_VISIT(traverse_module_state->__pyx_kp_s_of_RPC_that_terminated_with_sta_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_ok);
  Py_VISIT(traverse_module_state->__pyx_n_s_on_failure);
  Py_VISIT(traverse_module_state->__pyx_n_s_on_success);
  Py_VISIT(traverse_module_state->__pyx_n_s_op);
  Py_VISIT(traverse_module_state->__pyx_n_s_operate);
  Py_VISIT(traverse_module_state->__pyx_n_s_operation_complete);
  Py_VISIT(traverse_module_state->__pyx_n_s_operations);
  Py_VISIT(traverse_module_state->__pyx_n_s_operationses_and_tags);
  Py_VISIT(traverse_module_state->__pyx_n_s_ops);
  Py_VISIT(traverse_module_state->__pyx_n_s_options);
  Py_VISIT(traverse_module_state->__pyx_n_s_os);
  Py_VISIT(traverse_module_state->__pyx_n_s_out_of_range);
  Py_VISIT(traverse_module_state->__pyx_n_s_outbound_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_n_s_outbound_ops);
  Py_VISIT(traverse_module_state->__pyx_n_s_partial);
  Py_VISIT(traverse_module_state->__pyx_n_s_peer);
  Py_VISIT(traverse_module_state->__pyx_n_s_peer_identities);
  Py_VISIT(traverse_module_state->__pyx_n_s_peer_identity_key);
  Py_VISIT(traverse_module_state->__pyx_n_s_pem_key_cert_pairs);
  Py_VISIT(traverse_module_state->__pyx_n_s_pem_root_certificates);
  Py_VISIT(traverse_module_state->__pyx_n_s_pem_root_certs);
  Py_VISIT(traverse_module_state->__pyx_n_s_permission_denied);
  Py_VISIT(traverse_module_state->__pyx_n_s_pickle);
  Py_VISIT(traverse_module_state->__pyx_n_s_pkgutil);
  Py_VISIT(traverse_module_state->__pyx_n_s_plugin);
  Py_VISIT(traverse_module_state->__pyx_n_s_poll);
  Py_VISIT(traverse_module_state->__pyx_n_s_poll_wrapper);
  Py_VISIT(traverse_module_state->__pyx_n_s_poller);
  Py_VISIT(traverse_module_state->__pyx_n_s_pool);
  Py_VISIT(traverse_module_state->__pyx_n_s_pop);
  Py_VISIT(traverse_module_state->__pyx_n_s_postfork_state_to_reset);
  Py_VISIT(traverse_module_state->__pyx_n_s_postfork_states_to_reset);
  Py_VISIT(traverse_module_state->__pyx_n_s_prepare);
  Py_VISIT(traverse_module_state->__pyx_n_s_primary_user_agent_string);
  Py_VISIT(traverse_module_state->__pyx_n_s_print_exc);
  Py_VISIT(traverse_module_state->__pyx_n_s_private_key);
  Py_VISIT(traverse_module_state->__pyx_n_s_properties);
  Py_VISIT(traverse_module_state->__pyx_n_s_property);
  Py_VISIT(traverse_module_state->__pyx_n_s_put);
  Py_VISIT(traverse_module_state->__pyx_n_s_py_auth_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_python_call_credentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_PickleError);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_capi);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_checksum);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_result);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_type);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_AioServer);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_CensusContext);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_ChannelCredential);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_InsecureChannelCr);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle__Tag);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_vtable);
  Py_VISIT(traverse_module_state->__pyx_n_s_qualname);
  Py_VISIT(traverse_module_state->__pyx_n_s_query_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_query_handler);
  Py_VISIT(traverse_module_state->__pyx_n_s_query_handlers);
  Py_VISIT(traverse_module_state->__pyx_n_s_queue);
  Py_VISIT(traverse_module_state->__pyx_n_s_queue_deadline);
  Py_VISIT(traverse_module_state->__pyx_kp_s_queue_must_be_live);
  Py_VISIT(traverse_module_state->__pyx_kp_s_queue_must_be_shutting_down_to_b);
  Py_VISIT(traverse_module_state->__pyx_n_s_queue_shutdown);
  Py_VISIT(traverse_module_state->__pyx_n_s_queue_timeout);
  Py_VISIT(traverse_module_state->__pyx_n_s_raise_if_not_valid_trailing_meta);
  Py_VISIT(traverse_module_state->__pyx_n_s_range);
  Py_VISIT(traverse_module_state->__pyx_n_s_raw_message);
  Py_VISIT(traverse_module_state->__pyx_n_s_read);
  Py_VISIT(traverse_module_state->__pyx_n_s_read_socket);
  Py_VISIT(traverse_module_state->__pyx_n_s_ready);
  Py_VISIT(traverse_module_state->__pyx_n_s_receive_close_on_server);
  Py_VISIT(traverse_module_state->__pyx_n_s_receive_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_n_s_receive_initial_metadata_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_receive_initial_metadata_op);
  Py_VISIT(traverse_module_state->__pyx_n_s_receive_message);
  Py_VISIT(traverse_module_state->__pyx_n_s_receive_message_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_receive_message_op);
  Py_VISIT(traverse_module_state->__pyx_n_s_receive_op);
  Py_VISIT(traverse_module_state->__pyx_n_s_receive_serialized_message);
  Py_VISIT(traverse_module_state->__pyx_n_s_receive_status_on_client);
  Py_VISIT(traverse_module_state->__pyx_n_s_receive_status_on_client_op);
  Py_VISIT(traverse_module_state->__pyx_n_s_received_message);
  Py_VISIT(traverse_module_state->__pyx_n_s_recv);
  Py_VISIT(traverse_module_state->__pyx_n_s_reduce);
  Py_VISIT(traverse_module_state->__pyx_n_s_reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_reduce_ex);
  Py_VISIT(traverse_module_state->__pyx_n_s_register);
  Py_VISIT(traverse_module_state->__pyx_n_s_register_at_fork);
  Py_VISIT(traverse_module_state->__pyx_n_s_register_completion_queue);
  Py_VISIT(traverse_module_state->__pyx_n_s_register_method);
  Py_VISIT(traverse_module_state->__pyx_n_s_registered_call_handle);
  Py_VISIT(traverse_module_state->__pyx_n_s_registered_method);
  Py_VISIT(traverse_module_state->__pyx_n_s_remove_reader);
  Py_VISIT(traverse_module_state->__pyx_n_s_repr);
  Py_VISIT(traverse_module_state->__pyx_n_s_repr_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_request);
  Py_VISIT(traverse_module_state->__pyx_n_s_request_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_request_call_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_request_call_tag);
  Py_VISIT(traverse_module_state->__pyx_n_s_request_deserializer);
  Py_VISIT(traverse_module_state->__pyx_n_s_request_iterator);
  Py_VISIT(traverse_module_state->__pyx_n_s_request_message);
  Py_VISIT(traverse_module_state->__pyx_n_s_request_raw);
  Py_VISIT(traverse_module_state->__pyx_n_s_request_registered_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_request_streaming);
  Py_VISIT(traverse_module_state->__pyx_n_s_reset_grpc_config_vars);
  Py_VISIT(traverse_module_state->__pyx_n_s_reset_postfork_child);
  Py_VISIT(traverse_module_state->__pyx_n_s_resource_exhausted);
  Py_VISIT(traverse_module_state->__pyx_n_s_response);
  Py_VISIT(traverse_module_state->__pyx_n_s_response_message);
  Py_VISIT(traverse_module_state->__pyx_n_s_response_raw);
  Py_VISIT(traverse_module_state->__pyx_n_s_response_serializer);
  Py_VISIT(traverse_module_state->__pyx_n_s_response_streaming);
  Py_VISIT(traverse_module_state->__pyx_n_s_result);
  Py_VISIT(traverse_module_state->__pyx_n_s_retain_self);
  Py_VISIT(traverse_module_state->__pyx_n_s_return);
  Py_VISIT(traverse_module_state->__pyx_n_s_return_from_user_request_generat);
  Py_VISIT(traverse_module_state->__pyx_n_s_rpc_coro);
  Py_VISIT(traverse_module_state->__pyx_n_s_rpc_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_rpc_task);
  Py_VISIT(traverse_module_state->__pyx_n_s_rpc_tasks);
  Py_VISIT(traverse_module_state->__pyx_n_s_run);
  Py_VISIT(traverse_module_state->__pyx_n_s_run_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_run_coroutine_threadsafe);
  Py_VISIT(traverse_module_state->__pyx_n_s_run_in_executor);
  Py_VISIT(traverse_module_state->__pyx_n_s_run_interceptor);
  Py_VISIT(traverse_module_state->__pyx_n_s_run_spawn_greenlets);
  Py_VISIT(traverse_module_state->__pyx_n_s_run_with_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_run_with_context_locals__run);
  Py_VISIT(traverse_module_state->__pyx_n_s_runtime_error);
  Py_VISIT(traverse_module_state->__pyx_n_s_save_registered_method);
  Py_VISIT(traverse_module_state->__pyx_n_s_save_trace_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_schedule_coro_threadsafe);
  Py_VISIT(traverse_module_state->__pyx_n_s_schedule_rpc_coro);
  Py_VISIT(traverse_module_state->__pyx_n_s_secondary_user_agent_string);
  Py_VISIT(traverse_module_state->__pyx_n_s_segregated_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_segregated_call_locals_on_succe);
  Py_VISIT(traverse_module_state->__pyx_n_s_self);
  Py_VISIT(traverse_module_state->__pyx_kp_s_self__cq_cannot_be_converted_to);
  Py_VISIT(traverse_module_state->__pyx_kp_s_self_arg_cannot_be_converted_to);
  Py_VISIT(traverse_module_state->__pyx_kp_s_self_c_argument_cannot_be_conver);
  Py_VISIT(traverse_module_state->__pyx_kp_s_self_c_credentials_cannot_be_con);
  Py_VISIT(traverse_module_state->__pyx_kp_s_self_c_op_cannot_be_converted_to);
  Py_VISIT(traverse_module_state->__pyx_n_s_send);
  Py_VISIT(traverse_module_state->__pyx_n_s_send_close_from_client);
  Py_VISIT(traverse_module_state->__pyx_n_s_send_close_op);
  Py_VISIT(traverse_module_state->__pyx_n_s_send_error_status_from_server);
  Py_VISIT(traverse_module_state->__pyx_n_s_send_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_n_s_send_initial_metadata_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_send_initial_metadata_op);
  Py_VISIT(traverse_module_state->__pyx_n_s_send_message);
  Py_VISIT(traverse_module_state->__pyx_n_s_send_message_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_send_message_op);
  Py_VISIT(traverse_module_state->__pyx_n_s_send_receive_close);
  Py_VISIT(traverse_module_state->__pyx_n_s_send_serialized_message);
  Py_VISIT(traverse_module_state->__pyx_n_s_send_status_from_server);
  Py_VISIT(traverse_module_state->__pyx_n_s_server);
  Py_VISIT(traverse_module_state->__pyx_n_s_server_call_tracer);
  Py_VISIT(traverse_module_state->__pyx_n_s_server_certificate_config_ssl);
  Py_VISIT(traverse_module_state->__pyx_n_s_server_credentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_server_credentials_alts);
  Py_VISIT(traverse_module_state->__pyx_n_s_server_credentials_local);
  Py_VISIT(traverse_module_state->__pyx_n_s_server_credentials_ssl);
  Py_VISIT(traverse_module_state->__pyx_n_s_server_credentials_ssl_dynamic_c);
  Py_VISIT(traverse_module_state->__pyx_n_s_server_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_server_main_loop);
  Py_VISIT(traverse_module_state->__pyx_kp_s_server_must_be_started_and_not_s);
  Py_VISIT(traverse_module_state->__pyx_n_s_server_queue);
  Py_VISIT(traverse_module_state->__pyx_kp_s_server_queue_must_be_a_registere);
  Py_VISIT(traverse_module_state->__pyx_n_s_server_started);
  Py_VISIT(traverse_module_state->__pyx_n_s_service);
  Py_VISIT(traverse_module_state->__pyx_n_s_service_accounts);
  Py_VISIT(traverse_module_state->__pyx_n_s_servicer_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_serving_task_crash_handler);
  Py_VISIT(traverse_module_state->__pyx_n_s_setDaemon);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_async_callback_func);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_census_context_on_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_code);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_compression);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_credentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_details);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_exception);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_instrumentation_context_on_c);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_internal_error);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_name);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_result);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_trailing_metadata);
  Py_VISIT(traverse_module_state->__pyx_n_s_setblocking);
  Py_VISIT(traverse_module_state->__pyx_n_s_setstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_shield);
  Py_VISIT(traverse_module_state->__pyx_n_s_shutdown);
  Py_VISIT(traverse_module_state->__pyx_n_s_shutdown_await_next_greenlet);
  Py_VISIT(traverse_module_state->__pyx_n_s_shutdown_cq);
  Py_VISIT(traverse_module_state->__pyx_n_s_shutdown_grpc_aio);
  Py_VISIT(traverse_module_state->__pyx_n_s_shutting_down_server);
  Py_VISIT(traverse_module_state->__pyx_n_s_simplefilter);
  Py_VISIT(traverse_module_state->__pyx_n_s_sleep);
  Py_VISIT(traverse_module_state->__pyx_n_s_socket);
  Py_VISIT(traverse_module_state->__pyx_n_s_socket_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_socketpair);
  Py_VISIT(traverse_module_state->__pyx_n_s_span_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_spawn);
  Py_VISIT(traverse_module_state->__pyx_n_s_spawn_callback_async);
  Py_VISIT(traverse_module_state->__pyx_n_s_spawn_callback_in_thread);
  Py_VISIT(traverse_module_state->__pyx_n_s_spawn_greenlets);
  Py_VISIT(traverse_module_state->__pyx_n_s_spec);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_10);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_11);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_12);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_13);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_14);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_15);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_16);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_17);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_18);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_19);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_2);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_20);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_21);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_22);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_23);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_3);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_4);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_5);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_6);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_7);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_8);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_python_grpcio_grpc__cython_9);
  Py_VISIT(traverse_module_state->__pyx_n_s_ssl_session_cache);
  Py_VISIT(traverse_module_state->__pyx_n_s_ssl_target_name_override);
  Py_VISIT(traverse_module_state->__pyx_n_s_start);
  Py_VISIT(traverse_module_state->__pyx_n_s_start_batch);
  Py_VISIT(traverse_module_state->__pyx_n_s_start_channel_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_start_client_batch);
  Py_VISIT(traverse_module_state->__pyx_n_s_start_server_batch);
  Py_VISIT(traverse_module_state->__pyx_n_s_start_server_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_start_shutting_down);
  Py_VISIT(traverse_module_state->__pyx_n_s_start_socket_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_started_tag);
  Py_VISIT(traverse_module_state->__pyx_n_s_started_tags);
  Py_VISIT(traverse_module_state->__pyx_n_s_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_status);
  Py_VISIT(traverse_module_state->__pyx_n_s_status_code);
  Py_VISIT(traverse_module_state->__pyx_n_s_status_task);
  Py_VISIT(traverse_module_state->__pyx_n_s_stored_ctx);
  Py_VISIT(traverse_module_state->__pyx_n_s_str);
  Py_VISIT(traverse_module_state->__pyx_n_s_str_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_stream_handler);
  Py_VISIT(traverse_module_state->__pyx_n_s_stream_stream);
  Py_VISIT(traverse_module_state->__pyx_n_s_stream_unary);
  Py_VISIT(traverse_module_state->__pyx_kp_s_stringsource);
  Py_VISIT(traverse_module_state->__pyx_n_s_subchannel_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_success);
  Py_VISIT(traverse_module_state->__pyx_n_s_super);
  Py_VISIT(traverse_module_state->__pyx_n_s_sync_servicer_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_sys);
  Py_VISIT(traverse_module_state->__pyx_n_s_t);
  Py_VISIT(traverse_module_state->__pyx_n_s_tag);
  Py_VISIT(traverse_module_state->__pyx_n_s_target);
  Py_VISIT(traverse_module_state->__pyx_n_s_task);
  Py_VISIT(traverse_module_state->__pyx_n_s_test);
  Py_VISIT(traverse_module_state->__pyx_kp_s_the_server_has_already_started);
  Py_VISIT(traverse_module_state->__pyx_kp_s_the_server_hasn_t_started_yet);
  Py_VISIT(traverse_module_state->__pyx_kp_s_the_server_must_be_shutting_down);
  Py_VISIT(traverse_module_state->__pyx_n_s_thread);
  Py_VISIT(traverse_module_state->__pyx_n_s_thread_pool);
  Py_VISIT(traverse_module_state->__pyx_n_s_threading);
  Py_VISIT(traverse_module_state->__pyx_n_s_threadpool);
  Py_VISIT(traverse_module_state->__pyx_n_s_throw);
  Py_VISIT(traverse_module_state->__pyx_n_s_time);
  Py_VISIT(traverse_module_state->__pyx_n_s_time_remaining);
  Py_VISIT(traverse_module_state->__pyx_n_s_timeout);
  Py_VISIT(traverse_module_state->__pyx_n_s_timeout_secs);
  Py_VISIT(traverse_module_state->__pyx_n_s_to_call);
  Py_VISIT(traverse_module_state->__pyx_n_s_to_channel_arg);
  Py_VISIT(traverse_module_state->__pyx_n_s_too_many_operations);
  Py_VISIT(traverse_module_state->__pyx_n_s_trace_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_traceback);
  Py_VISIT(traverse_module_state->__pyx_n_s_tracing_enabled);
  Py_VISIT(traverse_module_state->__pyx_n_s_trailing_metadata);
  Py_VISIT(traverse_module_state->__pyx_n_s_transient_failure);
  Py_VISIT(traverse_module_state->__pyx_n_s_true);
  Py_VISIT(traverse_module_state->__pyx_n_s_try_to_connect);
  Py_VISIT(traverse_module_state->__pyx_n_s_type);
  Py_VISIT(traverse_module_state->__pyx_n_s_typing);
  Py_VISIT(traverse_module_state->__pyx_n_s_uds);
  Py_VISIT(traverse_module_state->__pyx_n_s_unary_handler);
  Py_VISIT(traverse_module_state->__pyx_n_s_unary_stream);
  Py_VISIT(traverse_module_state->__pyx_n_s_unary_unary);
  Py_VISIT(traverse_module_state->__pyx_n_s_unauthenticated);
  Py_VISIT(traverse_module_state->__pyx_n_s_unavailable);
  Py_VISIT(traverse_module_state->__pyx_n_s_unimplemented);
  Py_VISIT(traverse_module_state->__pyx_n_s_uninstall_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_unknown);
  Py_VISIT(traverse_module_state->__pyx_n_s_unused_future);
  Py_VISIT(traverse_module_state->__pyx_n_s_unused_task);
  Py_VISIT(traverse_module_state->__pyx_n_s_update);
  Py_VISIT(traverse_module_state->__pyx_n_s_upper);
  Py_VISIT(traverse_module_state->__pyx_n_s_use_setstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_used_mask);
  Py_VISIT(traverse_module_state->__pyx_n_s_user_tag);
  Py_VISIT(traverse_module_state->__pyx_n_s_utf8);
  Py_VISIT(traverse_module_state->__pyx_kp_s_utf_8);
  Py_VISIT(traverse_module_state->__pyx_n_s_value);
  Py_VISIT(traverse_module_state->__pyx_n_s_values);
  Py_VISIT(traverse_module_state->__pyx_n_s_wait);
  Py_VISIT(traverse_module_state->__pyx_n_s_wait_for);
  Py_VISIT(traverse_module_state->__pyx_n_s_wait_for_ready);
  Py_VISIT(traverse_module_state->__pyx_n_s_wait_for_ready_explicitly_set);
  Py_VISIT(traverse_module_state->__pyx_n_s_wait_for_termination);
  Py_VISIT(traverse_module_state->__pyx_n_s_wait_time);
  Py_VISIT(traverse_module_state->__pyx_n_s_warning);
  Py_VISIT(traverse_module_state->__pyx_n_s_warnings);
  Py_VISIT(traverse_module_state->__pyx_n_s_watch_connectivity_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_wrap);
  Py_VISIT(traverse_module_state->__pyx_n_s_wrapper);
  Py_VISIT(traverse_module_state->__pyx_n_s_write);
  Py_VISIT(traverse_module_state->__pyx_n_s_write_flag);
  Py_VISIT(traverse_module_state->__pyx_n_s_xds);
  Py_VISIT(traverse_module_state->__pyx_n_s_xds_server_credentials);
  Py_VISIT(traverse_module_state->__pyx_n_s_yes);
  Py_VISIT(traverse_module_state->__pyx_n_s_yield_to_queue);
  Py_VISIT(traverse_module_state->__pyx_float_1_0);
  Py_VISIT(traverse_module_state->__pyx_int_0);
  Py_VISIT(traverse_module_state->__pyx_int_1);
  Py_VISIT(traverse_module_state->__pyx_int_2);
  Py_VISIT(traverse_module_state->__pyx_int_5);
  Py_VISIT(traverse_module_state->__pyx_int_10);
  Py_VISIT(traverse_module_state->__pyx_int_1000);
  Py_VISIT(traverse_module_state->__pyx_int_1500);
  Py_VISIT(traverse_module_state->__pyx_int_118587260);
  Py_VISIT(traverse_module_state->__pyx_int_171381981);
  Py_VISIT(traverse_module_state->__pyx_int_171651213);
  Py_VISIT(traverse_module_state->__pyx_int_222419149);
  Py_VISIT(traverse_module_state->__pyx_int_228825662);
  Py_VISIT(traverse_module_state->__pyx_int_238750788);
  Py_VISIT(traverse_module_state->__pyx_k__76);
  Py_VISIT(traverse_module_state->__pyx_k__80);
  Py_VISIT(traverse_module_state->__pyx_tuple_);
  Py_VISIT(traverse_module_state->__pyx_tuple__4);
  Py_VISIT(traverse_module_state->__pyx_tuple__8);
  Py_VISIT(traverse_module_state->__pyx_slice__37);
  Py_VISIT(traverse_module_state->__pyx_tuple__10);
  Py_VISIT(traverse_module_state->__pyx_tuple__11);
  Py_VISIT(traverse_module_state->__pyx_tuple__12);
  Py_VISIT(traverse_module_state->__pyx_tuple__14);
  Py_VISIT(traverse_module_state->__pyx_tuple__17);
  Py_VISIT(traverse_module_state->__pyx_tuple__19);
  Py_VISIT(traverse_module_state->__pyx_tuple__21);
  Py_VISIT(traverse_module_state->__pyx_tuple__23);
  Py_VISIT(traverse_module_state->__pyx_tuple__24);
  Py_VISIT(traverse_module_state->__pyx_tuple__25);
  Py_VISIT(traverse_module_state->__pyx_tuple__26);
  Py_VISIT(traverse_module_state->__pyx_tuple__27);
  Py_VISIT(traverse_module_state->__pyx_tuple__28);
  Py_VISIT(traverse_module_state->__pyx_tuple__29);
  Py_VISIT(traverse_module_state->__pyx_tuple__30);
  Py_VISIT(traverse_module_state->__pyx_tuple__31);
  Py_VISIT(traverse_module_state->__pyx_tuple__32);
  Py_VISIT(traverse_module_state->__pyx_tuple__33);
  Py_VISIT(traverse_module_state->__pyx_tuple__34);
  Py_VISIT(traverse_module_state->__pyx_tuple__35);
  Py_VISIT(traverse_module_state->__pyx_tuple__36);
  Py_VISIT(traverse_module_state->__pyx_tuple__39);
  Py_VISIT(traverse_module_state->__pyx_tuple__40);
  Py_VISIT(traverse_module_state->__pyx_tuple__46);
  Py_VISIT(traverse_module_state->__pyx_tuple__48);
  Py_VISIT(traverse_module_state->__pyx_tuple__50);
  Py_VISIT(traverse_module_state->__pyx_tuple__79);
  Py_VISIT(traverse_module_state->__pyx_tuple__83);
  Py_VISIT(traverse_module_state->__pyx_tuple__93);
  Py_VISIT(traverse_module_state->__pyx_tuple__98);
  Py_VISIT(traverse_module_state->__pyx_codeobj__2);
  Py_VISIT(traverse_module_state->__pyx_codeobj__3);
  Py_VISIT(traverse_module_state->__pyx_codeobj__5);
  Py_VISIT(traverse_module_state->__pyx_codeobj__6);
  Py_VISIT(traverse_module_state->__pyx_tuple__105);
  Py_VISIT(traverse_module_state->__pyx_tuple__106);
  Py_VISIT(traverse_module_state->__pyx_tuple__108);
  Py_VISIT(traverse_module_state->__pyx_tuple__110);
  Py_VISIT(traverse_module_state->__pyx_tuple__116);
  Py_VISIT(traverse_module_state->__pyx_tuple__118);
  Py_VISIT(traverse_module_state->__pyx_tuple__121);
  Py_VISIT(traverse_module_state->__pyx_tuple__123);
  Py_VISIT(traverse_module_state->__pyx_tuple__125);
  Py_VISIT(traverse_module_state->__pyx_tuple__127);
  Py_VISIT(traverse_module_state->__pyx_tuple__138);
  Py_VISIT(traverse_module_state->__pyx_tuple__144);
  Py_VISIT(traverse_module_state->__pyx_tuple__148);
  Py_VISIT(traverse_module_state->__pyx_tuple__150);
  Py_VISIT(traverse_module_state->__pyx_tuple__152);
  Py_VISIT(traverse_module_state->__pyx_tuple__153);
  Py_VISIT(traverse_module_state->__pyx_tuple__156);
  Py_VISIT(traverse_module_state->__pyx_tuple__158);
  Py_VISIT(traverse_module_state->__pyx_tuple__162);
  Py_VISIT(traverse_module_state->__pyx_tuple__166);
  Py_VISIT(traverse_module_state->__pyx_tuple__168);
  Py_VISIT(traverse_module_state->__pyx_tuple__170);
  Py_VISIT(traverse_module_state->__pyx_tuple__172);
  Py_VISIT(traverse_module_state->__pyx_tuple__174);
  Py_VISIT(traverse_module_state->__pyx_tuple__176);
  Py_VISIT(traverse_module_state->__pyx_tuple__178);
  Py_VISIT(traverse_module_state->__pyx_tuple__180);
  Py_VISIT(traverse_module_state->__pyx_tuple__182);
  Py_VISIT(traverse_module_state->__pyx_tuple__184);
  Py_VISIT(traverse_module_state->__pyx_tuple__186);
  Py_VISIT(traverse_module_state->__pyx_tuple__194);
  Py_VISIT(traverse_module_state->__pyx_tuple__209);
  Py_VISIT(traverse_module_state->__pyx_tuple__211);
  Py_VISIT(traverse_module_state->__pyx_tuple__213);
  Py_VISIT(traverse_module_state->__pyx_tuple__217);
  Py_VISIT(traverse_module_state->__pyx_tuple__222);
  Py_VISIT(traverse_module_state->__pyx_tuple__224);
  Py_VISIT(traverse_module_state->__pyx_tuple__226);
  Py_VISIT(traverse_module_state->__pyx_tuple__230);
  Py_VISIT(traverse_module_state->__pyx_tuple__232);
  Py_VISIT(traverse_module_state->__pyx_tuple__236);
  Py_VISIT(traverse_module_state->__pyx_tuple__238);
  Py_VISIT(traverse_module_state->__pyx_tuple__241);
  Py_VISIT(traverse_module_state->__pyx_tuple__254);
  Py_VISIT(traverse_module_state->__pyx_tuple__255);
  Py_VISIT(traverse_module_state->__pyx_tuple__293);
  Py_VISIT(traverse_module_state->__pyx_tuple__296);
  Py_VISIT(traverse_module_state->__pyx_tuple__301);
  Py_VISIT(traverse_module_state->__pyx_tuple__304);
  Py_VISIT(traverse_module_state->__pyx_tuple__306);
  Py_VISIT(traverse_module_state->__pyx_tuple__308);
  Py_VISIT(traverse_module_state->__pyx_tuple__312);
  Py_VISIT(traverse_module_state->__pyx_tuple__314);
  Py_VISIT(traverse_module_state->__pyx_tuple__316);
  Py_VISIT(traverse_module_state->__pyx_tuple__318);
  Py_VISIT(traverse_module_state->__pyx_tuple__320);
  Py_VISIT(traverse_module_state->__pyx_tuple__322);
  Py_VISIT(traverse_module_state->__pyx_tuple__323);
  Py_VISIT(traverse_module_state->__pyx_tuple__325);
  Py_VISIT(traverse_module_state->__pyx_tuple__341);
  Py_VISIT(traverse_module_state->__pyx_tuple__348);
  Py_VISIT(traverse_module_state->__pyx_tuple__352);
  Py_VISIT(traverse_module_state->__pyx_tuple__355);
  Py_VISIT(traverse_module_state->__pyx_tuple__359);
  Py_VISIT(traverse_module_state->__pyx_tuple__362);
  Py_VISIT(traverse_module_state->__pyx_tuple__364);
  Py_VISIT(traverse_module_state->__pyx_tuple__366);
  Py_VISIT(traverse_module_state->__pyx_tuple__368);
  Py_VISIT(traverse_module_state->__pyx_tuple__370);
  Py_VISIT(traverse_module_state->__pyx_tuple__372);
  Py_VISIT(traverse_module_state->__pyx_tuple__374);
  Py_VISIT(traverse_module_state->__pyx_tuple__376);
  Py_VISIT(traverse_module_state->__pyx_tuple__377);
  Py_VISIT(traverse_module_state->__pyx_tuple__378);
  Py_VISIT(traverse_module_state->__pyx_tuple__380);
  Py_VISIT(traverse_module_state->__pyx_tuple__381);
  Py_VISIT(traverse_module_state->__pyx_tuple__385);
  Py_VISIT(traverse_module_state->__pyx_tuple__391);
  Py_VISIT(traverse_module_state->__pyx_tuple__394);
  Py_VISIT(traverse_module_state->__pyx_tuple__395);
  Py_VISIT(traverse_module_state->__pyx_tuple__399);
  Py_VISIT(traverse_module_state->__pyx_tuple__401);
  Py_VISIT(traverse_module_state->__pyx_tuple__402);
  Py_VISIT(traverse_module_state->__pyx_tuple__409);
  Py_VISIT(traverse_module_state->__pyx_tuple__411);
  Py_VISIT(traverse_module_state->__pyx_tuple__412);
  Py_VISIT(traverse_module_state->__pyx_tuple__415);
  Py_VISIT(traverse_module_state->__pyx_tuple__423);
  Py_VISIT(traverse_module_state->__pyx_tuple__430);
  Py_VISIT(traverse_module_state->__pyx_tuple__433);
  Py_VISIT(traverse_module_state->__pyx_tuple__441);
  Py_VISIT(traverse_module_state->__pyx_tuple__442);
  Py_VISIT(traverse_module_state->__pyx_tuple__443);
  Py_VISIT(traverse_module_state->__pyx_tuple__444);
  Py_VISIT(traverse_module_state->__pyx_tuple__445);
  Py_VISIT(traverse_module_state->__pyx_tuple__446);
  Py_VISIT(traverse_module_state->__pyx_tuple__447);
  Py_VISIT(traverse_module_state->__pyx_tuple__450);
  Py_VISIT(traverse_module_state->__pyx_tuple__454);
  Py_VISIT(traverse_module_state->__pyx_tuple__456);
  Py_VISIT(traverse_module_state->__pyx_tuple__459);
  Py_VISIT(traverse_module_state->__pyx_tuple__463);
  Py_VISIT(traverse_module_state->__pyx_tuple__466);
  Py_VISIT(traverse_module_state->__pyx_tuple__468);
  Py_VISIT(traverse_module_state->__pyx_tuple__469);
  Py_VISIT(traverse_module_state->__pyx_tuple__470);
  Py_VISIT(traverse_module_state->__pyx_tuple__471);
  Py_VISIT(traverse_module_state->__pyx_tuple__472);
  Py_VISIT(traverse_module_state->__pyx_tuple__473);
  Py_VISIT(traverse_module_state->__pyx_tuple__474);
  Py_VISIT(traverse_module_state->__pyx_tuple__478);
  Py_VISIT(traverse_module_state->__pyx_tuple__482);
  Py_VISIT(traverse_module_state->__pyx_tuple__490);
  Py_VISIT(traverse_module_state->__pyx_tuple__491);
  Py_VISIT(traverse_module_state->__pyx_tuple__492);
  Py_VISIT(traverse_module_state->__pyx_tuple__493);
  Py_VISIT(traverse_module_state->__pyx_tuple__497);
  Py_VISIT(traverse_module_state->__pyx_tuple__500);
  Py_VISIT(traverse_module_state->__pyx_tuple__503);
  Py_VISIT(traverse_module_state->__pyx_tuple__506);
  Py_VISIT(traverse_module_state->__pyx_tuple__508);
  Py_VISIT(traverse_module_state->__pyx_tuple__510);
  Py_VISIT(traverse_module_state->__pyx_tuple__512);
  Py_VISIT(traverse_module_state->__pyx_tuple__515);
  Py_VISIT(traverse_module_state->__pyx_tuple__521);
  Py_VISIT(traverse_module_state->__pyx_tuple__523);
  Py_VISIT(traverse_module_state->__pyx_tuple__539);
  Py_VISIT(traverse_module_state->__pyx_tuple__540);
  Py_VISIT(traverse_module_state->__pyx_tuple__542);
  Py_VISIT(traverse_module_state->__pyx_tuple__543);
  Py_VISIT(traverse_module_state->__pyx_tuple__544);
  Py_VISIT(traverse_module_state->__pyx_tuple__545);
  Py_VISIT(traverse_module_state->__pyx_tuple__548);
  Py_VISIT(traverse_module_state->__pyx_tuple__549);
  Py_VISIT(traverse_module_state->__pyx_tuple__550);
  Py_VISIT(traverse_module_state->__pyx_tuple__551);
  Py_VISIT(traverse_module_state->__pyx_tuple__552);
  Py_VISIT(traverse_module_state->__pyx_tuple__554);
  Py_VISIT(traverse_module_state->__pyx_tuple__556);
  Py_VISIT(traverse_module_state->__pyx_tuple__560);
  Py_VISIT(traverse_module_state->__pyx_tuple__562);
  Py_VISIT(traverse_module_state->__pyx_tuple__564);
  Py_VISIT(traverse_module_state->__pyx_tuple__566);
  Py_VISIT(traverse_module_state->__pyx_tuple__567);
  Py_VISIT(traverse_module_state->__pyx_tuple__568);
  Py_VISIT(traverse_module_state->__pyx_tuple__570);
  Py_VISIT(traverse_module_state->__pyx_tuple__571);
  Py_VISIT(traverse_module_state->__pyx_tuple__572);
  Py_VISIT(traverse_module_state->__pyx_tuple__576);
  Py_VISIT(traverse_module_state->__pyx_codeobj__13);
  Py_VISIT(traverse_module_state->__pyx_codeobj__15);
  Py_VISIT(traverse_module_state->__pyx_codeobj__16);
  Py_VISIT(traverse_module_state->__pyx_codeobj__18);
  Py_VISIT(traverse_module_state->__pyx_codeobj__20);
  Py_VISIT(traverse_module_state->__pyx_codeobj__22);
  Py_VISIT(traverse_module_state->__pyx_codeobj__41);
  Py_VISIT(traverse_module_state->__pyx_codeobj__42);
  Py_VISIT(traverse_module_state->__pyx_codeobj__43);
  Py_VISIT(traverse_module_state->__pyx_codeobj__44);
  Py_VISIT(traverse_module_state->__pyx_codeobj__45);
  Py_VISIT(traverse_module_state->__pyx_codeobj__47);
  Py_VISIT(traverse_module_state->__pyx_codeobj__51);
  Py_VISIT(traverse_module_state->__pyx_codeobj__52);
  Py_VISIT(traverse_module_state->__pyx_codeobj__53);
  Py_VISIT(traverse_module_state->__pyx_codeobj__54);
  Py_VISIT(traverse_module_state->__pyx_codeobj__55);
  Py_VISIT(traverse_module_state->__pyx_codeobj__56);
  Py_VISIT(traverse_module_state->__pyx_codeobj__59);
  Py_VISIT(traverse_module_state->__pyx_codeobj__60);
  Py_VISIT(traverse_module_state->__pyx_codeobj__61);
  Py_VISIT(traverse_module_state->__pyx_codeobj__62);
  Py_VISIT(traverse_module_state->__pyx_codeobj__63);
  Py_VISIT(traverse_module_state->__pyx_codeobj__64);
  Py_VISIT(traverse_module_state->__pyx_codeobj__65);
  Py_VISIT(traverse_module_state->__pyx_codeobj__66);
  Py_VISIT(traverse_module_state->__pyx_codeobj__67);
  Py_VISIT(traverse_module_state->__pyx_codeobj__68);
  Py_VISIT(traverse_module_state->__pyx_codeobj__72);
  Py_VISIT(traverse_module_state->__pyx_codeobj__73);
  Py_VISIT(traverse_module_state->__pyx_codeobj__74);
  Py_VISIT(traverse_module_state->__pyx_codeobj__75);
  Py_VISIT(traverse_module_state->__pyx_codeobj__77);
  Py_VISIT(traverse_module_state->__pyx_codeobj__78);
  Py_VISIT(traverse_module_state->__pyx_codeobj__81);
  Py_VISIT(traverse_module_state->__pyx_codeobj__82);
  Py_VISIT(traverse_module_state->__pyx_codeobj__84);
  Py_VISIT(traverse_module_state->__pyx_codeobj__85);
  Py_VISIT(traverse_module_state->__pyx_codeobj__86);
  Py_VISIT(traverse_module_state->__pyx_codeobj__87);
  Py_VISIT(traverse_module_state->__pyx_codeobj__88);
  Py_VISIT(traverse_module_state->__pyx_codeobj__89);
  Py_VISIT(traverse_module_state->__pyx_codeobj__90);
  Py_VISIT(traverse_module_state->__pyx_codeobj__91);
  Py_VISIT(traverse_module_state->__pyx_codeobj__92);
  Py_VISIT(traverse_module_state->__pyx_codeobj__94);
  Py_VISIT(traverse_module_state->__pyx_codeobj__95);
  Py_VISIT(traverse_module_state->__pyx_codeobj__96);
  Py_VISIT(traverse_module_state->__pyx_codeobj__97);
  Py_VISIT(traverse_module_state->__pyx_codeobj__99);
  Py_VISIT(traverse_module_state->__pyx_codeobj__100);
  Py_VISIT(traverse_module_state->__pyx_codeobj__101);
  Py_VISIT(traverse_module_state->__pyx_codeobj__102);
  Py_VISIT(traverse_module_state->__pyx_codeobj__103);
  Py_VISIT(traverse_module_state->__pyx_codeobj__104);
  Py_VISIT(traverse_module_state->__pyx_codeobj__109);
  Py_VISIT(traverse_module_state->__pyx_codeobj__111);
  Py_VISIT(traverse_module_state->__pyx_codeobj__112);
  Py_VISIT(traverse_module_state->__pyx_codeobj__113);
  Py_VISIT(traverse_module_state->__pyx_codeobj__114);
  Py_VISIT(traverse_module_state->__pyx_codeobj__115);
  Py_VISIT(traverse_module_state->__pyx_codeobj__117);
  Py_VISIT(traverse_module_state->__pyx_codeobj__119);
  Py_VISIT(traverse_module_state->__pyx_codeobj__120);
  Py_VISIT(traverse_module_state->__pyx_codeobj__122);
  Py_VISIT(traverse_module_state->__pyx_codeobj__124);
  Py_VISIT(traverse_module_state->__pyx_codeobj__126);
  Py_VISIT(traverse_module_state->__pyx_codeobj__128);
  Py_VISIT(traverse_module_state->__pyx_codeobj__129);
  Py_VISIT(traverse_module_state->__pyx_codeobj__130);
  Py_VISIT(traverse_module_state->__pyx_codeobj__131);
  Py_VISIT(traverse_module_state->__pyx_codeobj__132);
  Py_VISIT(traverse_module_state->__pyx_codeobj__133);
  Py_VISIT(traverse_module_state->__pyx_codeobj__134);
  Py_VISIT(traverse_module_state->__pyx_codeobj__135);
  Py_VISIT(traverse_module_state->__pyx_codeobj__136);
  Py_VISIT(traverse_module_state->__pyx_codeobj__137);
  Py_VISIT(traverse_module_state->__pyx_codeobj__139);
  Py_VISIT(traverse_module_state->__pyx_codeobj__140);
  Py_VISIT(traverse_module_state->__pyx_codeobj__141);
  Py_VISIT(traverse_module_state->__pyx_codeobj__142);
  Py_VISIT(traverse_module_state->__pyx_codeobj__143);
  Py_VISIT(traverse_module_state->__pyx_codeobj__145);
  Py_VISIT(traverse_module_state->__pyx_codeobj__146);
  Py_VISIT(traverse_module_state->__pyx_codeobj__147);
  Py_VISIT(traverse_module_state->__pyx_codeobj__149);
  Py_VISIT(traverse_module_state->__pyx_codeobj__151);
  Py_VISIT(traverse_module_state->__pyx_codeobj__154);
  Py_VISIT(traverse_module_state->__pyx_codeobj__155);
  Py_VISIT(traverse_module_state->__pyx_codeobj__157);
  Py_VISIT(traverse_module_state->__pyx_codeobj__159);
  Py_VISIT(traverse_module_state->__pyx_codeobj__160);
  Py_VISIT(traverse_module_state->__pyx_codeobj__161);
  Py_VISIT(traverse_module_state->__pyx_codeobj__163);
  Py_VISIT(traverse_module_state->__pyx_codeobj__164);
  Py_VISIT(traverse_module_state->__pyx_codeobj__165);
  Py_VISIT(traverse_module_state->__pyx_codeobj__167);
  Py_VISIT(traverse_module_state->__pyx_codeobj__169);
  Py_VISIT(traverse_module_state->__pyx_codeobj__171);
  Py_VISIT(traverse_module_state->__pyx_codeobj__173);
  Py_VISIT(traverse_module_state->__pyx_codeobj__175);
  Py_VISIT(traverse_module_state->__pyx_codeobj__177);
  Py_VISIT(traverse_module_state->__pyx_codeobj__179);
  Py_VISIT(traverse_module_state->__pyx_codeobj__181);
  Py_VISIT(traverse_module_state->__pyx_codeobj__183);
  Py_VISIT(traverse_module_state->__pyx_codeobj__185);
  Py_VISIT(traverse_module_state->__pyx_codeobj__187);
  Py_VISIT(traverse_module_state->__pyx_codeobj__188);
  Py_VISIT(traverse_module_state->__pyx_codeobj__189);
  Py_VISIT(traverse_module_state->__pyx_codeobj__190);
  Py_VISIT(traverse_module_state->__pyx_codeobj__191);
  Py_VISIT(traverse_module_state->__pyx_codeobj__192);
  Py_VISIT(traverse_module_state->__pyx_codeobj__193);
  Py_VISIT(traverse_module_state->__pyx_codeobj__195);
  Py_VISIT(traverse_module_state->__pyx_codeobj__196);
  Py_VISIT(traverse_module_state->__pyx_codeobj__197);
  Py_VISIT(traverse_module_state->__pyx_codeobj__198);
  Py_VISIT(traverse_module_state->__pyx_codeobj__199);
  Py_VISIT(traverse_module_state->__pyx_codeobj__200);
  Py_VISIT(traverse_module_state->__pyx_codeobj__201);
  Py_VISIT(traverse_module_state->__pyx_codeobj__202);
  Py_VISIT(traverse_module_state->__pyx_codeobj__203);
  Py_VISIT(traverse_module_state->__pyx_codeobj__204);
  Py_VISIT(traverse_module_state->__pyx_codeobj__205);
  Py_VISIT(traverse_module_state->__pyx_codeobj__206);
  Py_VISIT(traverse_module_state->__pyx_codeobj__207);
  Py_VISIT(traverse_module_state->__pyx_codeobj__208);
  Py_VISIT(traverse_module_state->__pyx_codeobj__210);
  Py_VISIT(traverse_module_state->__pyx_codeobj__212);
  Py_VISIT(traverse_module_state->__pyx_codeobj__214);
  Py_VISIT(traverse_module_state->__pyx_codeobj__215);
  Py_VISIT(traverse_module_state->__pyx_codeobj__216);
  Py_VISIT(traverse_module_state->__pyx_codeobj__218);
  Py_VISIT(traverse_module_state->__pyx_codeobj__219);
  Py_VISIT(traverse_module_state->__pyx_codeobj__220);
  Py_VISIT(traverse_module_state->__pyx_codeobj__221);
  Py_VISIT(traverse_module_state->__pyx_codeobj__223);
  Py_VISIT(traverse_module_state->__pyx_codeobj__225);
  Py_VISIT(traverse_module_state->__pyx_codeobj__227);
  Py_VISIT(traverse_module_state->__pyx_codeobj__228);
  Py_VISIT(traverse_module_state->__pyx_codeobj__229);
  Py_VISIT(traverse_module_state->__pyx_codeobj__231);
  Py_VISIT(traverse_module_state->__pyx_codeobj__233);
  Py_VISIT(traverse_module_state->__pyx_codeobj__234);
  Py_VISIT(traverse_module_state->__pyx_codeobj__235);
  Py_VISIT(traverse_module_state->__pyx_codeobj__237);
  Py_VISIT(traverse_module_state->__pyx_codeobj__239);
  Py_VISIT(traverse_module_state->__pyx_codeobj__240);
  Py_VISIT(traverse_module_state->__pyx_codeobj__242);
  Py_VISIT(traverse_module_state->__pyx_codeobj__243);
  Py_VISIT(traverse_module_state->__pyx_codeobj__244);
  Py_VISIT(traverse_module_state->__pyx_codeobj__245);
  Py_VISIT(traverse_module_state->__pyx_codeobj__246);
  Py_VISIT(traverse_module_state->__pyx_codeobj__247);
  Py_VISIT(traverse_module_state->__pyx_codeobj__248);
  Py_VISIT(traverse_module_state->__pyx_codeobj__249);
  Py_VISIT(traverse_module_state->__pyx_codeobj__250);
  Py_VISIT(traverse_module_state->__pyx_codeobj__251);
  Py_VISIT(traverse_module_state->__pyx_codeobj__252);
  Py_VISIT(traverse_module_state->__pyx_codeobj__253);
  Py_VISIT(traverse_module_state->__pyx_codeobj__256);
  Py_VISIT(traverse_module_state->__pyx_codeobj__257);
  Py_VISIT(traverse_module_state->__pyx_codeobj__258);
  Py_VISIT(traverse_module_state->__pyx_codeobj__259);
  Py_VISIT(traverse_module_state->__pyx_codeobj__260);
  Py_VISIT(traverse_module_state->__pyx_codeobj__261);
  Py_VISIT(traverse_module_state->__pyx_codeobj__262);
  Py_VISIT(traverse_module_state->__pyx_codeobj__263);
  Py_VISIT(traverse_module_state->__pyx_codeobj__264);
  Py_VISIT(traverse_module_state->__pyx_codeobj__265);
  Py_VISIT(traverse_module_state->__pyx_codeobj__266);
  Py_VISIT(traverse_module_state->__pyx_codeobj__267);
  Py_VISIT(traverse_module_state->__pyx_codeobj__268);
  Py_VISIT(traverse_module_state->__pyx_codeobj__269);
  Py_VISIT(traverse_module_state->__pyx_codeobj__270);
  Py_VISIT(traverse_module_state->__pyx_codeobj__271);
  Py_VISIT(traverse_module_state->__pyx_codeobj__272);
  Py_VISIT(traverse_module_state->__pyx_codeobj__273);
  Py_VISIT(traverse_module_state->__pyx_codeobj__274);
  Py_VISIT(traverse_module_state->__pyx_codeobj__275);
  Py_VISIT(traverse_module_state->__pyx_codeobj__276);
  Py_VISIT(traverse_module_state->__pyx_codeobj__277);
  Py_VISIT(traverse_module_state->__pyx_codeobj__278);
  Py_VISIT(traverse_module_state->__pyx_codeobj__279);
  Py_VISIT(traverse_module_state->__pyx_codeobj__280);
  Py_VISIT(traverse_module_state->__pyx_codeobj__281);
  Py_VISIT(traverse_module_state->__pyx_codeobj__282);
  Py_VISIT(traverse_module_state->__pyx_codeobj__283);
  Py_VISIT(traverse_module_state->__pyx_codeobj__284);
  Py_VISIT(traverse_module_state->__pyx_codeobj__285);
  Py_VISIT(traverse_module_state->__pyx_codeobj__286);
  Py_VISIT(traverse_module_state->__pyx_codeobj__287);
  Py_VISIT(traverse_module_state->__pyx_codeobj__288);
  Py_VISIT(traverse_module_state->__pyx_codeobj__289);
  Py_VISIT(traverse_module_state->__pyx_codeobj__290);
  Py_VISIT(traverse_module_state->__pyx_codeobj__291);
  Py_VISIT(traverse_module_state->__pyx_codeobj__292);
  Py_VISIT(traverse_module_state->__pyx_codeobj__294);
  Py_VISIT(traverse_module_state->__pyx_codeobj__295);
  Py_VISIT(traverse_module_state->__pyx_codeobj__297);
  Py_VISIT(traverse_module_state->__pyx_codeobj__298);
  Py_VISIT(traverse_module_state->__pyx_codeobj__299);
  Py_VISIT(traverse_module_state->__pyx_codeobj__300);
  Py_VISIT(traverse_module_state->__pyx_codeobj__302);
  Py_VISIT(traverse_module_state->__pyx_codeobj__303);
  Py_VISIT(traverse_module_state->__pyx_codeobj__305);
  Py_VISIT(traverse_module_state->__pyx_codeobj__307);
  Py_VISIT(traverse_module_state->__pyx_codeobj__309);
  Py_VISIT(traverse_module_state->__pyx_codeobj__310);
  Py_VISIT(traverse_module_state->__pyx_codeobj__311);
  Py_VISIT(traverse_module_state->__pyx_codeobj__313);
  Py_VISIT(traverse_module_state->__pyx_codeobj__315);
  Py_VISIT(traverse_module_state->__pyx_codeobj__317);
  Py_VISIT(traverse_module_state->__pyx_codeobj__319);
  Py_VISIT(traverse_module_state->__pyx_codeobj__321);
  Py_VISIT(traverse_module_state->__pyx_codeobj__324);
  Py_VISIT(traverse_module_state->__pyx_codeobj__326);
  Py_VISIT(traverse_module_state->__pyx_codeobj__327);
  Py_VISIT(traverse_module_state->__pyx_codeobj__328);
  Py_VISIT(traverse_module_state->__pyx_codeobj__329);
  Py_VISIT(traverse_module_state->__pyx_codeobj__330);
  Py_VISIT(traverse_module_state->__pyx_codeobj__331);
  Py_VISIT(traverse_module_state->__pyx_codeobj__332);
  Py_VISIT(traverse_module_state->__pyx_codeobj__333);
  Py_VISIT(traverse_module_state->__pyx_codeobj__334);
  Py_VISIT(traverse_module_state->__pyx_codeobj__335);
  Py_VISIT(traverse_module_state->__pyx_codeobj__336);
  Py_VISIT(traverse_module_state->__pyx_codeobj__337);
  Py_VISIT(traverse_module_state->__pyx_codeobj__338);
  Py_VISIT(traverse_module_state->__pyx_codeobj__339);
  Py_VISIT(traverse_module_state->__pyx_codeobj__340);
  Py_VISIT(traverse_module_state->__pyx_codeobj__342);
  Py_VISIT(traverse_module_state->__pyx_codeobj__343);
  Py_VISIT(traverse_module_state->__pyx_codeobj__344);
  Py_VISIT(traverse_module_state->__pyx_codeobj__345);
  Py_VISIT(traverse_module_state->__pyx_codeobj__346);
  Py_VISIT(traverse_module_state->__pyx_codeobj__347);
  Py_VISIT(traverse_module_state->__pyx_codeobj__349);
  Py_VISIT(traverse_module_state->__pyx_codeobj__350);
  Py_VISIT(traverse_module_state->__pyx_codeobj__351);
  Py_VISIT(traverse_module_state->__pyx_codeobj__353);
  Py_VISIT(traverse_module_state->__pyx_codeobj__354);
  Py_VISIT(traverse_module_state->__pyx_codeobj__356);
  Py_VISIT(traverse_module_state->__pyx_codeobj__357);
  Py_VISIT(traverse_module_state->__pyx_codeobj__358);
  Py_VISIT(traverse_module_state->__pyx_codeobj__360);
  Py_VISIT(traverse_module_state->__pyx_codeobj__361);
  Py_VISIT(traverse_module_state->__pyx_codeobj__363);
  Py_VISIT(traverse_module_state->__pyx_codeobj__365);
  Py_VISIT(traverse_module_state->__pyx_codeobj__367);
  Py_VISIT(traverse_module_state->__pyx_codeobj__369);
  Py_VISIT(traverse_module_state->__pyx_codeobj__371);
  Py_VISIT(traverse_module_state->__pyx_codeobj__373);
  Py_VISIT(traverse_module_state->__pyx_codeobj__375);
  Py_VISIT(traverse_module_state->__pyx_codeobj__379);
  Py_VISIT(traverse_module_state->__pyx_codeobj__382);
  Py_VISIT(traverse_module_state->__pyx_codeobj__383);
  Py_VISIT(traverse_module_state->__pyx_codeobj__384);
  Py_VISIT(traverse_module_state->__pyx_codeobj__386);
  Py_VISIT(traverse_module_state->__pyx_codeobj__387);
  Py_VISIT(traverse_module_state->__pyx_codeobj__388);
  Py_VISIT(traverse_module_state->__pyx_codeobj__389);
  Py_VISIT(traverse_module_state->__pyx_codeobj__390);
  Py_VISIT(traverse_module_state->__pyx_codeobj__392);
  Py_VISIT(traverse_module_state->__pyx_codeobj__393);
  Py_VISIT(traverse_module_state->__pyx_codeobj__396);
  Py_VISIT(traverse_module_state->__pyx_codeobj__397);
  Py_VISIT(traverse_module_state->__pyx_codeobj__398);
  Py_VISIT(traverse_module_state->__pyx_codeobj__400);
  Py_VISIT(traverse_module_state->__pyx_codeobj__403);
  Py_VISIT(traverse_module_state->__pyx_codeobj__404);
  Py_VISIT(traverse_module_state->__pyx_codeobj__405);
  Py_VISIT(traverse_module_state->__pyx_codeobj__406);
  Py_VISIT(traverse_module_state->__pyx_codeobj__407);
  Py_VISIT(traverse_module_state->__pyx_codeobj__408);
  Py_VISIT(traverse_module_state->__pyx_codeobj__410);
  Py_VISIT(traverse_module_state->__pyx_codeobj__413);
  Py_VISIT(traverse_module_state->__pyx_codeobj__414);
  Py_VISIT(traverse_module_state->__pyx_codeobj__416);
  Py_VISIT(traverse_module_state->__pyx_codeobj__417);
  Py_VISIT(traverse_module_state->__pyx_codeobj__418);
  Py_VISIT(traverse_module_state->__pyx_codeobj__419);
  Py_VISIT(traverse_module_state->__pyx_codeobj__420);
  Py_VISIT(traverse_module_state->__pyx_codeobj__421);
  Py_VISIT(traverse_module_state->__pyx_codeobj__422);
  Py_VISIT(traverse_module_state->__pyx_codeobj__424);
  Py_VISIT(traverse_module_state->__pyx_codeobj__425);
  Py_VISIT(traverse_module_state->__pyx_codeobj__426);
  Py_VISIT(traverse_module_state->__pyx_codeobj__427);
  Py_VISIT(traverse_module_state->__pyx_codeobj__428);
  Py_VISIT(traverse_module_state->__pyx_codeobj__429);
  Py_VISIT(traverse_module_state->__pyx_codeobj__431);
  Py_VISIT(traverse_module_state->__pyx_codeobj__432);
  Py_VISIT(traverse_module_state->__pyx_codeobj__434);
  Py_VISIT(traverse_module_state->__pyx_codeobj__435);
  Py_VISIT(traverse_module_state->__pyx_codeobj__436);
  Py_VISIT(traverse_module_state->__pyx_codeobj__437);
  Py_VISIT(traverse_module_state->__pyx_codeobj__438);
  Py_VISIT(traverse_module_state->__pyx_codeobj__439);
  Py_VISIT(traverse_module_state->__pyx_codeobj__440);
  Py_VISIT(traverse_module_state->__pyx_codeobj__448);
  Py_VISIT(traverse_module_state->__pyx_codeobj__449);
  Py_VISIT(traverse_module_state->__pyx_codeobj__451);
  Py_VISIT(traverse_module_state->__pyx_codeobj__452);
  Py_VISIT(traverse_module_state->__pyx_codeobj__453);
  Py_VISIT(traverse_module_state->__pyx_codeobj__455);
  Py_VISIT(traverse_module_state->__pyx_codeobj__457);
  Py_VISIT(traverse_module_state->__pyx_codeobj__458);
  Py_VISIT(traverse_module_state->__pyx_codeobj__460);
  Py_VISIT(traverse_module_state->__pyx_codeobj__461);
  Py_VISIT(traverse_module_state->__pyx_codeobj__462);
  Py_VISIT(traverse_module_state->__pyx_codeobj__464);
  Py_VISIT(traverse_module_state->__pyx_codeobj__465);
  Py_VISIT(traverse_module_state->__pyx_codeobj__467);
  Py_VISIT(traverse_module_state->__pyx_codeobj__475);
  Py_VISIT(traverse_module_state->__pyx_codeobj__476);
  Py_VISIT(traverse_module_state->__pyx_codeobj__477);
  Py_VISIT(traverse_module_state->__pyx_codeobj__479);
  Py_VISIT(traverse_module_state->__pyx_codeobj__480);
  Py_VISIT(traverse_module_state->__pyx_codeobj__481);
  Py_VISIT(traverse_module_state->__pyx_codeobj__483);
  Py_VISIT(traverse_module_state->__pyx_codeobj__484);
  Py_VISIT(traverse_module_state->__pyx_codeobj__485);
  Py_VISIT(traverse_module_state->__pyx_codeobj__486);
  Py_VISIT(traverse_module_state->__pyx_codeobj__487);
  Py_VISIT(traverse_module_state->__pyx_codeobj__488);
  Py_VISIT(traverse_module_state->__pyx_codeobj__489);
  Py_VISIT(traverse_module_state->__pyx_codeobj__494);
  Py_VISIT(traverse_module_state->__pyx_codeobj__495);
  Py_VISIT(traverse_module_state->__pyx_codeobj__496);
  Py_VISIT(traverse_module_state->__pyx_codeobj__498);
  Py_VISIT(traverse_module_state->__pyx_codeobj__499);
  Py_VISIT(traverse_module_state->__pyx_codeobj__501);
  Py_VISIT(traverse_module_state->__pyx_codeobj__502);
  Py_VISIT(traverse_module_state->__pyx_codeobj__504);
  Py_VISIT(traverse_module_state->__pyx_codeobj__505);
  Py_VISIT(traverse_module_state->__pyx_codeobj__507);
  Py_VISIT(traverse_module_state->__pyx_codeobj__509);
  Py_VISIT(traverse_module_state->__pyx_codeobj__511);
  Py_VISIT(traverse_module_state->__pyx_codeobj__513);
  Py_VISIT(traverse_module_state->__pyx_codeobj__514);
  Py_VISIT(traverse_module_state->__pyx_codeobj__516);
  Py_VISIT(traverse_module_state->__pyx_codeobj__517);
  Py_VISIT(traverse_module_state->__pyx_codeobj__518);
  Py_VISIT(traverse_module_state->__pyx_codeobj__519);
  Py_VISIT(traverse_module_state->__pyx_codeobj__520);
  Py_VISIT(traverse_module_state->__pyx_codeobj__522);
  Py_VISIT(traverse_module_state->__pyx_codeobj__524);
  Py_VISIT(traverse_module_state->__pyx_codeobj__525);
  Py_VISIT(traverse_module_state->__pyx_codeobj__526);
  Py_VISIT(traverse_module_state->__pyx_codeobj__527);
  Py_VISIT(traverse_module_state->__pyx_codeobj__528);
  Py_VISIT(traverse_module_state->__pyx_codeobj__529);
  Py_VISIT(traverse_module_state->__pyx_codeobj__530);
  Py_VISIT(traverse_module_state->__pyx_codeobj__531);
  Py_VISIT(traverse_module_state->__pyx_codeobj__532);
  Py_VISIT(traverse_module_state->__pyx_codeobj__533);
  Py_VISIT(traverse_module_state->__pyx_codeobj__534);
  Py_VISIT(traverse_module_state->__pyx_codeobj__535);
  Py_VISIT(traverse_module_state->__pyx_codeobj__536);
  Py_VISIT(traverse_module_state->__pyx_codeobj__537);
  Py_VISIT(traverse_module_state->__pyx_codeobj__538);
  Py_VISIT(traverse_module_state->__pyx_codeobj__541);
  Py_VISIT(traverse_module_state->__pyx_codeobj__546);
  Py_VISIT(traverse_module_state->__pyx_codeobj__547);
  Py_VISIT(traverse_module_state->__pyx_codeobj__553);
  Py_VISIT(traverse_module_state->__pyx_codeobj__555);
  Py_VISIT(traverse_module_state->__pyx_codeobj__557);
  Py_VISIT(traverse_module_state->__pyx_codeobj__558);
  Py_VISIT(traverse_module_state->__pyx_codeobj__559);
  Py_VISIT(traverse_module_state->__pyx_codeobj__561);
  Py_VISIT(traverse_module_state->__pyx_codeobj__563);
  Py_VISIT(traverse_module_state->__pyx_codeobj__565);
  Py_VISIT(traverse_module_state->__pyx_codeobj__569);
  Py_VISIT(traverse_module_state->__pyx_codeobj__573);
  Py_VISIT(traverse_module_state->__pyx_codeobj__574);
  Py_VISIT(traverse_module_state->__pyx_codeobj__575);
  Py_VISIT(traverse_module_state->__pyx_codeobj__577);
  Py_VISIT(traverse_module_state->__pyx_codeobj__578);
  Py_VISIT(traverse_module_state->__pyx_codeobj__579);
  Py_VISIT(traverse_module_state->__pyx_codeobj__580);
  Py_VISIT(traverse_module_state->__pyx_codeobj__581);
  return 0;
}
#endif
/* #### Code section: module_state_defines ### */
#define __pyx_d __pyx_mstate_global->__pyx_d
#define __pyx_b __pyx_mstate_global->__pyx_b
#define __pyx_cython_runtime __pyx_mstate_global->__pyx_cython_runtime
#define __pyx_empty_tuple __pyx_mstate_global->__pyx_empty_tuple
#define __pyx_empty_bytes __pyx_mstate_global->__pyx_empty_bytes
#define __pyx_empty_unicode __pyx_mstate_global->__pyx_empty_unicode
#ifdef __Pyx_CyFunction_USED
#define __pyx_CyFunctionType __pyx_mstate_global->__pyx_CyFunctionType
#endif
#ifdef __Pyx_FusedFunction_USED
#define __pyx_FusedFunctionType __pyx_mstate_global->__pyx_FusedFunctionType
#endif
#ifdef __Pyx_Generator_USED
#define __pyx_GeneratorType __pyx_mstate_global->__pyx_GeneratorType
#endif
#ifdef __Pyx_IterableCoroutine_USED
#define __pyx_IterableCoroutineType __pyx_mstate_global->__pyx_IterableCoroutineType
#endif
#ifdef __Pyx_Coroutine_USED
#define __pyx_CoroutineAwaitType __pyx_mstate_global->__pyx_CoroutineAwaitType
#endif
#ifdef __Pyx_Coroutine_USED
#define __pyx_CoroutineType __pyx_mstate_global->__pyx_CoroutineType
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#define __pyx_ptype_7cpython_4type_type __pyx_mstate_global->__pyx_ptype_7cpython_4type_type
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#define __pyx_ptype_7cpython_4bool_bool __pyx_mstate_global->__pyx_ptype_7cpython_4bool_bool
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#define __pyx_ptype_7cpython_7complex_complex __pyx_mstate_global->__pyx_ptype_7cpython_7complex_complex
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#define __pyx_type_4grpc_7_cython_6cygrpc__ChannelArg __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__ChannelArg
#define __pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs
#define __pyx_type_4grpc_7_cython_6cygrpc_Call __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_Call
#define __pyx_type_4grpc_7_cython_6cygrpc__CallState __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__CallState
#define __pyx_type_4grpc_7_cython_6cygrpc__ChannelState __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__ChannelState
#define __pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall
#define __pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall
#define __pyx_type_4grpc_7_cython_6cygrpc_Channel __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_Channel
#define __pyx_type_4grpc_7_cython_6cygrpc_CallHandle __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_CallHandle
#define __pyx_type_4grpc_7_cython_6cygrpc_CallCredentials __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_CallCredentials
#define __pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials
#define __pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials
#define __pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials
#define __pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU
#define __pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials
#define __pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials
#define __pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials
#define __pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig
#define __pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials
#define __pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials
#define __pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials
#define __pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg
#define __pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue
#define __pyx_type_4grpc_7_cython_6cygrpc_BaseEvent __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_BaseEvent
#define __pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent
#define __pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent
#define __pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent
#define __pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent
#define __pyx_type_4grpc_7_cython_6cygrpc_Operation __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_Operation
#define __pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation
#define __pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation
#define __pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation
#define __pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation
#define __pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation
#define __pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation
#define __pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation
#define __pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation
#define __pyx_type_4grpc_7_cython_6cygrpc_CallDetails __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_CallDetails
#define __pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair
#define __pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions
#define __pyx_type_4grpc_7_cython_6cygrpc_Server __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_Server
#define __pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod
#define __pyx_type_4grpc_7_cython_6cygrpc__Tag __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__Tag
#define __pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag
#define __pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag
#define __pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag
#define __pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag
#define __pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue
#define __pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop
#define __pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue
#define __pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus
#define __pyx_type_4grpc_7_cython_6cygrpc__AioState __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__AioState
#define __pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler
#define __pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper
#define __pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper
#define __pyx_type_4grpc_7_cython_6cygrpc__AioCall __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__AioCall
#define __pyx_type_4grpc_7_cython_6cygrpc_AioChannel __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_AioChannel
#define __pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails
#define __pyx_type_4grpc_7_cython_6cygrpc_RPCState __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_RPCState
#define __pyx_type_4grpc_7_cython_6cygrpc__ServicerContext __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__ServicerContext
#define __pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext
#define __pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver
#define __pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter
#define __pyx_type_4grpc_7_cython_6cygrpc_AioServer __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_AioServer
#define __pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper
#define __pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials
#define __pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials
#define __pyx_type_4grpc_7_cython_6cygrpc_CensusContext __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc_CensusContext
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown
#define __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination __pyx_mstate_global->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination
#define __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg __pyx_mstate_global->__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg
#define __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ __pyx_mstate_global->__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_
#define __pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args __pyx_mstate_global->__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args
#define __pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ __pyx_mstate_global->__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_
#endif
#define __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg
#define __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs
#define __pyx_ptype_4grpc_7_cython_6cygrpc_Call __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call
#define __pyx_ptype_4grpc_7_cython_6cygrpc__CallState __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState
#define __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState
#define __pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall
#define __pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall
#define __pyx_ptype_4grpc_7_cython_6cygrpc_Channel __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel
#define __pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle
#define __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials
#define __pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials
#define __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials
#define __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials
#define __pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU
#define __pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials
#define __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials
#define __pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials
#define __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig
#define __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials
#define __pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials
#define __pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials
#define __pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg
#define __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue
#define __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent
#define __pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent
#define __pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent
#define __pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent
#define __pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent
#define __pyx_ptype_4grpc_7_cython_6cygrpc_Operation __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation
#define __pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation
#define __pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation
#define __pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation
#define __pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation
#define __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation
#define __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation
#define __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation
#define __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation
#define __pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails
#define __pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair
#define __pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions
#define __pyx_ptype_4grpc_7_cython_6cygrpc_Server __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Server
#define __pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod
#define __pyx_ptype_4grpc_7_cython_6cygrpc__Tag __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag
#define __pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag
#define __pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag
#define __pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag
#define __pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag
#define __pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue
#define __pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop
#define __pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue
#define __pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus
#define __pyx_ptype_4grpc_7_cython_6cygrpc__AioState __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState
#define __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler
#define __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper
#define __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper
#define __pyx_ptype_4grpc_7_cython_6cygrpc__AioCall __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall
#define __pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel
#define __pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails
#define __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState
#define __pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext
#define __pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext
#define __pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver
#define __pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter
#define __pyx_ptype_4grpc_7_cython_6cygrpc_AioServer __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer
#define __pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper
#define __pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials
#define __pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials
#define __pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown
#define __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination
#define __pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg __pyx_mstate_global->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg
#define __pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ __pyx_mstate_global->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_
#define __pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args __pyx_mstate_global->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args
#define __pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ __pyx_mstate_global->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_
#define __pyx_kp_s_0 __pyx_mstate_global->__pyx_kp_s_0
#define __pyx_kp_s_1 __pyx_mstate_global->__pyx_kp_s_1
#define __pyx_n_s_ALTSChannelCredentials __pyx_mstate_global->__pyx_n_s_ALTSChannelCredentials
#define __pyx_n_s_ALTSChannelCredentials___reduce __pyx_mstate_global->__pyx_n_s_ALTSChannelCredentials___reduce
#define __pyx_n_s_ALTSChannelCredentials___setstat __pyx_mstate_global->__pyx_n_s_ALTSChannelCredentials___setstat
#define __pyx_n_s_AWAIT_THREADS_TIMEOUT_SECONDS __pyx_mstate_global->__pyx_n_s_AWAIT_THREADS_TIMEOUT_SECONDS
#define __pyx_n_s_AbortError __pyx_mstate_global->__pyx_n_s_AbortError
#define __pyx_kp_s_Abort_already_called __pyx_mstate_global->__pyx_kp_s_Abort_already_called
#define __pyx_kp_s_Abort_error_has_been_replaced __pyx_mstate_global->__pyx_kp_s_Abort_error_has_been_replaced
#define __pyx_kp_s_Abort_error_unexpectedly_suppres __pyx_mstate_global->__pyx_kp_s_Abort_error_unexpectedly_suppres
#define __pyx_kp_s_Aborting_method_s_due_to_server __pyx_mstate_global->__pyx_kp_s_Aborting_method_s_due_to_server
#define __pyx_n_s_ActiveThreadCount __pyx_mstate_global->__pyx_n_s_ActiveThreadCount
#define __pyx_n_s_ActiveThreadCount___init __pyx_mstate_global->__pyx_n_s_ActiveThreadCount___init
#define __pyx_n_s_ActiveThreadCount_await_zero_th __pyx_mstate_global->__pyx_n_s_ActiveThreadCount_await_zero_th
#define __pyx_n_s_ActiveThreadCount_decrement __pyx_mstate_global->__pyx_n_s_ActiveThreadCount_decrement
#define __pyx_n_s_ActiveThreadCount_increment __pyx_mstate_global->__pyx_n_s_ActiveThreadCount_increment
#define __pyx_n_s_AioCall __pyx_mstate_global->__pyx_n_s_AioCall
#define __pyx_n_s_AioCall___reduce_cython __pyx_mstate_global->__pyx_n_s_AioCall___reduce_cython
#define __pyx_n_s_AioCall___setstate_cython __pyx_mstate_global->__pyx_n_s_AioCall___setstate_cython
#define __pyx_n_s_AioCall__handle_status_once_rec __pyx_mstate_global->__pyx_n_s_AioCall__handle_status_once_rec
#define __pyx_n_s_AioCall__repr __pyx_mstate_global->__pyx_n_s_AioCall__repr
#define __pyx_n_s_AioCall_add_done_callback __pyx_mstate_global->__pyx_n_s_AioCall_add_done_callback
#define __pyx_n_s_AioCall_cancel __pyx_mstate_global->__pyx_n_s_AioCall_cancel
#define __pyx_n_s_AioCall_cancelled __pyx_mstate_global->__pyx_n_s_AioCall_cancelled
#define __pyx_n_s_AioCall_done __pyx_mstate_global->__pyx_n_s_AioCall_done
#define __pyx_n_s_AioCall_initial_metadata __pyx_mstate_global->__pyx_n_s_AioCall_initial_metadata
#define __pyx_n_s_AioCall_initiate_stream_stream __pyx_mstate_global->__pyx_n_s_AioCall_initiate_stream_stream
#define __pyx_n_s_AioCall_initiate_unary_stream __pyx_mstate_global->__pyx_n_s_AioCall_initiate_unary_stream
#define __pyx_n_s_AioCall_is_locally_cancelled __pyx_mstate_global->__pyx_n_s_AioCall_is_locally_cancelled
#define __pyx_n_s_AioCall_is_ok __pyx_mstate_global->__pyx_n_s_AioCall_is_ok
#define __pyx_n_s_AioCall_receive_serialized_mess __pyx_mstate_global->__pyx_n_s_AioCall_receive_serialized_mess
#define __pyx_n_s_AioCall_send_receive_close __pyx_mstate_global->__pyx_n_s_AioCall_send_receive_close
#define __pyx_n_s_AioCall_send_serialized_message __pyx_mstate_global->__pyx_n_s_AioCall_send_serialized_message
#define __pyx_n_s_AioCall_set_internal_error __pyx_mstate_global->__pyx_n_s_AioCall_set_internal_error
#define __pyx_n_s_AioCall_status __pyx_mstate_global->__pyx_n_s_AioCall_status
#define __pyx_n_s_AioCall_stream_unary __pyx_mstate_global->__pyx_n_s_AioCall_stream_unary
#define __pyx_n_s_AioCall_time_remaining __pyx_mstate_global->__pyx_n_s_AioCall_time_remaining
#define __pyx_n_s_AioCall_unary_unary __pyx_mstate_global->__pyx_n_s_AioCall_unary_unary
#define __pyx_n_s_AioChannel __pyx_mstate_global->__pyx_n_s_AioChannel
#define __pyx_n_s_AioChannel___reduce_cython __pyx_mstate_global->__pyx_n_s_AioChannel___reduce_cython
#define __pyx_n_s_AioChannel___setstate_cython __pyx_mstate_global->__pyx_n_s_AioChannel___setstate_cython
#define __pyx_n_s_AioChannel_call __pyx_mstate_global->__pyx_n_s_AioChannel_call
#define __pyx_n_s_AioChannel_check_connectivity_st __pyx_mstate_global->__pyx_n_s_AioChannel_check_connectivity_st
#define __pyx_n_s_AioChannel_close __pyx_mstate_global->__pyx_n_s_AioChannel_close
#define __pyx_n_s_AioChannel_closed __pyx_mstate_global->__pyx_n_s_AioChannel_closed
#define __pyx_n_s_AioChannel_closing __pyx_mstate_global->__pyx_n_s_AioChannel_closing
#define __pyx_n_s_AioChannel_watch_connectivity_st __pyx_mstate_global->__pyx_n_s_AioChannel_watch_connectivity_st
#define __pyx_n_s_AioRpcStatus __pyx_mstate_global->__pyx_n_s_AioRpcStatus
#define __pyx_n_s_AioRpcStatus___reduce_cython __pyx_mstate_global->__pyx_n_s_AioRpcStatus___reduce_cython
#define __pyx_n_s_AioRpcStatus___setstate_cython __pyx_mstate_global->__pyx_n_s_AioRpcStatus___setstate_cython
#define __pyx_n_s_AioRpcStatus_code __pyx_mstate_global->__pyx_n_s_AioRpcStatus_code
#define __pyx_n_s_AioRpcStatus_debug_error_string __pyx_mstate_global->__pyx_n_s_AioRpcStatus_debug_error_string
#define __pyx_n_s_AioRpcStatus_details __pyx_mstate_global->__pyx_n_s_AioRpcStatus_details
#define __pyx_n_s_AioRpcStatus_trailing_metadata __pyx_mstate_global->__pyx_n_s_AioRpcStatus_trailing_metadata
#define __pyx_n_s_AioServer __pyx_mstate_global->__pyx_n_s_AioServer
#define __pyx_n_s_AioServer___reduce_cython __pyx_mstate_global->__pyx_n_s_AioServer___reduce_cython
#define __pyx_n_s_AioServer___setstate_cython __pyx_mstate_global->__pyx_n_s_AioServer___setstate_cython
#define __pyx_n_s_AioServer__request_call __pyx_mstate_global->__pyx_n_s_AioServer__request_call
#define __pyx_n_s_AioServer__server_main_loop __pyx_mstate_global->__pyx_n_s_AioServer__server_main_loop
#define __pyx_n_s_AioServer__serving_task_crash_ha __pyx_mstate_global->__pyx_n_s_AioServer__serving_task_crash_ha
#define __pyx_n_s_AioServer__start_shutting_down __pyx_mstate_global->__pyx_n_s_AioServer__start_shutting_down
#define __pyx_n_s_AioServer_add_generic_rpc_handle __pyx_mstate_global->__pyx_n_s_AioServer_add_generic_rpc_handle
#define __pyx_n_s_AioServer_add_insecure_port __pyx_mstate_global->__pyx_n_s_AioServer_add_insecure_port
#define __pyx_n_s_AioServer_add_secure_port __pyx_mstate_global->__pyx_n_s_AioServer_add_secure_port
#define __pyx_n_s_AioServer_is_running __pyx_mstate_global->__pyx_n_s_AioServer_is_running
#define __pyx_n_s_AioServer_shutdown __pyx_mstate_global->__pyx_n_s_AioServer_shutdown
#define __pyx_n_s_AioServer_start __pyx_mstate_global->__pyx_n_s_AioServer_start
#define __pyx_n_s_AioServer_wait_for_termination __pyx_mstate_global->__pyx_n_s_AioServer_wait_for_termination
#define __pyx_n_s_AioState __pyx_mstate_global->__pyx_n_s_AioState
#define __pyx_n_s_AioState___reduce_cython __pyx_mstate_global->__pyx_n_s_AioState___reduce_cython
#define __pyx_n_s_AioState___setstate_cython __pyx_mstate_global->__pyx_n_s_AioState___setstate_cython
#define __pyx_n_s_AssertionError __pyx_mstate_global->__pyx_n_s_AssertionError
#define __pyx_n_s_AsyncIOEngine __pyx_mstate_global->__pyx_n_s_AsyncIOEngine
#define __pyx_n_s_AttributeError __pyx_mstate_global->__pyx_n_s_AttributeError
#define __pyx_n_s_BaseCompletionQueue __pyx_mstate_global->__pyx_n_s_BaseCompletionQueue
#define __pyx_n_s_BaseCompletionQueue___reduce_cyt __pyx_mstate_global->__pyx_n_s_BaseCompletionQueue___reduce_cyt
#define __pyx_n_s_BaseCompletionQueue___setstate_c __pyx_mstate_global->__pyx_n_s_BaseCompletionQueue___setstate_c
#define __pyx_n_s_BaseError __pyx_mstate_global->__pyx_n_s_BaseError
#define __pyx_n_s_BaseEvent __pyx_mstate_global->__pyx_n_s_BaseEvent
#define __pyx_n_s_BatchOperationEvent __pyx_mstate_global->__pyx_n_s_BatchOperationEvent
#define __pyx_n_s_BatchOperationEvent___reduce_cyt __pyx_mstate_global->__pyx_n_s_BatchOperationEvent___reduce_cyt
#define __pyx_n_s_BatchOperationEvent___setstate_c __pyx_mstate_global->__pyx_n_s_BatchOperationEvent___setstate_c
#define __pyx_n_s_BatchOperationTag __pyx_mstate_global->__pyx_n_s_BatchOperationTag
#define __pyx_n_s_BatchOperationTag___reduce_cyth __pyx_mstate_global->__pyx_n_s_BatchOperationTag___reduce_cyth
#define __pyx_n_s_BatchOperationTag___setstate_cy __pyx_mstate_global->__pyx_n_s_BatchOperationTag___setstate_cy
#define __pyx_kp_s_Binary_metadata_key_s_expected_b __pyx_mstate_global->__pyx_kp_s_Binary_metadata_key_s_expected_b
#define __pyx_n_s_BoundEventLoop __pyx_mstate_global->__pyx_n_s_BoundEventLoop
#define __pyx_n_s_BoundEventLoop___reduce_cython __pyx_mstate_global->__pyx_n_s_BoundEventLoop___reduce_cython
#define __pyx_n_s_BoundEventLoop___setstate_cytho __pyx_mstate_global->__pyx_n_s_BoundEventLoop___setstate_cytho
#define __pyx_n_s_BoundEventLoop_close __pyx_mstate_global->__pyx_n_s_BoundEventLoop_close
#define __pyx_n_s_COMPRESSION_METADATA_STRING_MAP __pyx_mstate_global->__pyx_n_s_COMPRESSION_METADATA_STRING_MAP
#define __pyx_n_s_CUSTOM_IO_MANAGER __pyx_mstate_global->__pyx_n_s_CUSTOM_IO_MANAGER
#define __pyx_n_s_CYGRPC_STATUS_CODE_TO_STATUS_COD __pyx_mstate_global->__pyx_n_s_CYGRPC_STATUS_CODE_TO_STATUS_COD
#define __pyx_n_s_Call __pyx_mstate_global->__pyx_n_s_Call
#define __pyx_n_s_CallCredentials __pyx_mstate_global->__pyx_n_s_CallCredentials
#define __pyx_n_s_CallCredentials___reduce_cython __pyx_mstate_global->__pyx_n_s_CallCredentials___reduce_cython
#define __pyx_n_s_CallCredentials___setstate_cytho __pyx_mstate_global->__pyx_n_s_CallCredentials___setstate_cytho
#define __pyx_n_s_CallDetails __pyx_mstate_global->__pyx_n_s_CallDetails
#define __pyx_n_s_CallDetails___reduce_cython __pyx_mstate_global->__pyx_n_s_CallDetails___reduce_cython
#define __pyx_n_s_CallDetails___setstate_cython __pyx_mstate_global->__pyx_n_s_CallDetails___setstate_cython
#define __pyx_n_s_CallError __pyx_mstate_global->__pyx_n_s_CallError
#define __pyx_n_s_CallHandle __pyx_mstate_global->__pyx_n_s_CallHandle
#define __pyx_n_s_CallHandle___reduce_cython __pyx_mstate_global->__pyx_n_s_CallHandle___reduce_cython
#define __pyx_n_s_CallHandle___setstate_cython __pyx_mstate_global->__pyx_n_s_CallHandle___setstate_cython
#define __pyx_n_s_CallState __pyx_mstate_global->__pyx_n_s_CallState
#define __pyx_n_s_CallState___reduce_cython __pyx_mstate_global->__pyx_n_s_CallState___reduce_cython
#define __pyx_n_s_CallState___setstate_cython __pyx_mstate_global->__pyx_n_s_CallState___setstate_cython
#define __pyx_n_s_Call___reduce_cython __pyx_mstate_global->__pyx_n_s_Call___reduce_cython
#define __pyx_n_s_Call___setstate_cython __pyx_mstate_global->__pyx_n_s_Call___setstate_cython
#define __pyx_n_s_Call__custom_op_on_c_call __pyx_mstate_global->__pyx_n_s_Call__custom_op_on_c_call
#define __pyx_n_s_Call__start_batch __pyx_mstate_global->__pyx_n_s_Call__start_batch
#define __pyx_n_s_Call_cancel __pyx_mstate_global->__pyx_n_s_Call_cancel
#define __pyx_kp_s_Call_credentials_are_only_valid __pyx_mstate_global->__pyx_kp_s_Call_credentials_are_only_valid
#define __pyx_kp_s_Call_credentials_may_not_be_NULL __pyx_mstate_global->__pyx_kp_s_Call_credentials_may_not_be_NULL
#define __pyx_n_s_Call_peer __pyx_mstate_global->__pyx_n_s_Call_peer
#define __pyx_n_s_Call_set_credentials __pyx_mstate_global->__pyx_n_s_Call_set_credentials
#define __pyx_n_s_Call_start_client_batch __pyx_mstate_global->__pyx_n_s_Call_start_client_batch
#define __pyx_n_s_Call_start_server_batch __pyx_mstate_global->__pyx_n_s_Call_start_server_batch
#define __pyx_n_s_CallbackFailureHandler __pyx_mstate_global->__pyx_n_s_CallbackFailureHandler
#define __pyx_n_s_CallbackFailureHandler___reduce __pyx_mstate_global->__pyx_n_s_CallbackFailureHandler___reduce
#define __pyx_n_s_CallbackFailureHandler___setstat __pyx_mstate_global->__pyx_n_s_CallbackFailureHandler___setstat
#define __pyx_n_s_CallbackWrapper __pyx_mstate_global->__pyx_n_s_CallbackWrapper
#define __pyx_n_s_CallbackWrapper___reduce_cython __pyx_mstate_global->__pyx_n_s_CallbackWrapper___reduce_cython
#define __pyx_n_s_CallbackWrapper___setstate_cytho __pyx_mstate_global->__pyx_n_s_CallbackWrapper___setstate_cytho
#define __pyx_n_s_CancelledError __pyx_mstate_global->__pyx_n_s_CancelledError
#define __pyx_kp_s_Cannot_invoke_RPC_on_closed_chan __pyx_mstate_global->__pyx_kp_s_Cannot_invoke_RPC_on_closed_chan
#define __pyx_kp_s_Cannot_invoke_RPC_s __pyx_mstate_global->__pyx_kp_s_Cannot_invoke_RPC_s
#define __pyx_kp_s_Cannot_monitor_channel_state_s __pyx_mstate_global->__pyx_kp_s_Cannot_monitor_channel_state_s
#define __pyx_n_s_CensusContext __pyx_mstate_global->__pyx_n_s_CensusContext
#define __pyx_n_s_CensusContext___reduce_cython __pyx_mstate_global->__pyx_n_s_CensusContext___reduce_cython
#define __pyx_n_s_CensusContext___setstate_cython __pyx_mstate_global->__pyx_n_s_CensusContext___setstate_cython
#define __pyx_n_s_Channel __pyx_mstate_global->__pyx_n_s_Channel
#define __pyx_n_s_ChannelArg __pyx_mstate_global->__pyx_n_s_ChannelArg
#define __pyx_n_s_ChannelArgKey __pyx_mstate_global->__pyx_n_s_ChannelArgKey
#define __pyx_n_s_ChannelArg___reduce_cython __pyx_mstate_global->__pyx_n_s_ChannelArg___reduce_cython
#define __pyx_n_s_ChannelArg___setstate_cython __pyx_mstate_global->__pyx_n_s_ChannelArg___setstate_cython
#define __pyx_n_s_ChannelArgs __pyx_mstate_global->__pyx_n_s_ChannelArgs
#define __pyx_n_s_ChannelArgs___reduce_cython __pyx_mstate_global->__pyx_n_s_ChannelArgs___reduce_cython
#define __pyx_n_s_ChannelArgs___setstate_cython __pyx_mstate_global->__pyx_n_s_ChannelArgs___setstate_cython
#define __pyx_n_s_ChannelCredentials __pyx_mstate_global->__pyx_n_s_ChannelCredentials
#define __pyx_n_s_ChannelCredentials___reduce_cyth __pyx_mstate_global->__pyx_n_s_ChannelCredentials___reduce_cyth
#define __pyx_n_s_ChannelCredentials___setstate_cy __pyx_mstate_global->__pyx_n_s_ChannelCredentials___setstate_cy
#define __pyx_n_s_ChannelState __pyx_mstate_global->__pyx_n_s_ChannelState
#define __pyx_n_s_ChannelState___reduce_cython __pyx_mstate_global->__pyx_n_s_ChannelState___reduce_cython
#define __pyx_n_s_ChannelState___setstate_cython __pyx_mstate_global->__pyx_n_s_ChannelState___setstate_cython
#define __pyx_n_s_Channel___reduce_cython __pyx_mstate_global->__pyx_n_s_Channel___reduce_cython
#define __pyx_n_s_Channel___setstate_cython __pyx_mstate_global->__pyx_n_s_Channel___setstate_cython
#define __pyx_n_s_Channel_check_connectivity_state __pyx_mstate_global->__pyx_n_s_Channel_check_connectivity_state
#define __pyx_n_s_Channel_close __pyx_mstate_global->__pyx_n_s_Channel_close
#define __pyx_n_s_Channel_close_on_fork __pyx_mstate_global->__pyx_n_s_Channel_close_on_fork
#define __pyx_n_s_Channel_get_registered_call_hand __pyx_mstate_global->__pyx_n_s_Channel_get_registered_call_hand
#define __pyx_n_s_Channel_integrated_call __pyx_mstate_global->__pyx_n_s_Channel_integrated_call
#define __pyx_kp_s_Channel_is_closed __pyx_mstate_global->__pyx_kp_s_Channel_is_closed
#define __pyx_n_s_Channel_next_call_event __pyx_mstate_global->__pyx_n_s_Channel_next_call_event
#define __pyx_n_s_Channel_segregated_call __pyx_mstate_global->__pyx_n_s_Channel_segregated_call
#define __pyx_n_s_Channel_target __pyx_mstate_global->__pyx_n_s_Channel_target
#define __pyx_n_s_Channel_watch_connectivity_state __pyx_mstate_global->__pyx_n_s_Channel_watch_connectivity_state
#define __pyx_n_s_CompletionQueue __pyx_mstate_global->__pyx_n_s_CompletionQueue
#define __pyx_n_s_CompletionQueue___reduce_cython __pyx_mstate_global->__pyx_n_s_CompletionQueue___reduce_cython
#define __pyx_n_s_CompletionQueue___setstate_cytho __pyx_mstate_global->__pyx_n_s_CompletionQueue___setstate_cytho
#define __pyx_n_s_CompletionQueue__internal_poll __pyx_mstate_global->__pyx_n_s_CompletionQueue__internal_poll
#define __pyx_n_s_CompletionQueue_clear __pyx_mstate_global->__pyx_n_s_CompletionQueue_clear
#define __pyx_n_s_CompletionQueue_poll __pyx_mstate_global->__pyx_n_s_CompletionQueue_poll
#define __pyx_n_s_CompletionQueue_shutdown __pyx_mstate_global->__pyx_n_s_CompletionQueue_shutdown
#define __pyx_n_s_CompletionType __pyx_mstate_global->__pyx_n_s_CompletionType
#define __pyx_n_s_CompositeCallCredentials __pyx_mstate_global->__pyx_n_s_CompositeCallCredentials
#define __pyx_n_s_CompositeCallCredentials___reduc __pyx_mstate_global->__pyx_n_s_CompositeCallCredentials___reduc
#define __pyx_n_s_CompositeCallCredentials___setst __pyx_mstate_global->__pyx_n_s_CompositeCallCredentials___setst
#define __pyx_n_s_CompositeChannelCredentials __pyx_mstate_global->__pyx_n_s_CompositeChannelCredentials
#define __pyx_n_s_CompositeChannelCredentials___re __pyx_mstate_global->__pyx_n_s_CompositeChannelCredentials___re
#define __pyx_n_s_CompositeChannelCredentials___se __pyx_mstate_global->__pyx_n_s_CompositeChannelCredentials___se
#define __pyx_n_s_CompressionAlgorithm __pyx_mstate_global->__pyx_n_s_CompressionAlgorithm
#define __pyx_n_s_CompressionLevel __pyx_mstate_global->__pyx_n_s_CompressionLevel
#define __pyx_n_s_CompressionOptions __pyx_mstate_global->__pyx_n_s_CompressionOptions
#define __pyx_n_s_CompressionOptions___reduce_cyth __pyx_mstate_global->__pyx_n_s_CompressionOptions___reduce_cyth
#define __pyx_n_s_CompressionOptions___setstate_cy __pyx_mstate_global->__pyx_n_s_CompressionOptions___setstate_cy
#define __pyx_n_s_CompressionOptions_disable_algor __pyx_mstate_global->__pyx_n_s_CompressionOptions_disable_algor
#define __pyx_n_s_CompressionOptions_enable_algori __pyx_mstate_global->__pyx_n_s_CompressionOptions_enable_algori
#define __pyx_n_s_CompressionOptions_is_algorithm __pyx_mstate_global->__pyx_n_s_CompressionOptions_is_algorithm
#define __pyx_n_s_CompressionOptions_to_channel_ar __pyx_mstate_global->__pyx_n_s_CompressionOptions_to_channel_ar
#define __pyx_kp_s_Compression_setting_must_be_spec __pyx_mstate_global->__pyx_kp_s_Compression_setting_must_be_spec
#define __pyx_n_s_ComputeEngineChannelCredentials __pyx_mstate_global->__pyx_n_s_ComputeEngineChannelCredentials
#define __pyx_n_s_ComputeEngineChannelCredentials_2 __pyx_mstate_global->__pyx_n_s_ComputeEngineChannelCredentials_2
#define __pyx_n_s_ComputeEngineChannelCredentials_3 __pyx_mstate_global->__pyx_n_s_ComputeEngineChannelCredentials_3
#define __pyx_n_s_ConcurrentRpcLimiter __pyx_mstate_global->__pyx_n_s_ConcurrentRpcLimiter
#define __pyx_n_s_ConcurrentRpcLimiter___reduce_c __pyx_mstate_global->__pyx_n_s_ConcurrentRpcLimiter___reduce_c
#define __pyx_n_s_ConcurrentRpcLimiter___setstate __pyx_mstate_global->__pyx_n_s_ConcurrentRpcLimiter___setstate
#define __pyx_n_s_ConcurrentRpcLimiter__decrease __pyx_mstate_global->__pyx_n_s_ConcurrentRpcLimiter__decrease
#define __pyx_n_s_ConcurrentRpcLimiter_check_befo __pyx_mstate_global->__pyx_n_s_ConcurrentRpcLimiter_check_befo
#define __pyx_n_s_ConcurrentRpcLimiter_decrease_o __pyx_mstate_global->__pyx_n_s_ConcurrentRpcLimiter_decrease_o
#define __pyx_kp_s_Concurrent_RPC_limit_exceeded __pyx_mstate_global->__pyx_kp_s_Concurrent_RPC_limit_exceeded
#define __pyx_n_s_Condition __pyx_mstate_global->__pyx_n_s_Condition
#define __pyx_n_s_ConnectivityEvent __pyx_mstate_global->__pyx_n_s_ConnectivityEvent
#define __pyx_n_s_ConnectivityEvent___reduce_cytho __pyx_mstate_global->__pyx_n_s_ConnectivityEvent___reduce_cytho
#define __pyx_n_s_ConnectivityEvent___setstate_cyt __pyx_mstate_global->__pyx_n_s_ConnectivityEvent___setstate_cyt
#define __pyx_n_s_ConnectivityState __pyx_mstate_global->__pyx_n_s_ConnectivityState
#define __pyx_n_s_ConnectivityTag __pyx_mstate_global->__pyx_n_s_ConnectivityTag
#define __pyx_n_s_ConnectivityTag___reduce_cython __pyx_mstate_global->__pyx_n_s_ConnectivityTag___reduce_cython
#define __pyx_n_s_ConnectivityTag___setstate_cyth __pyx_mstate_global->__pyx_n_s_ConnectivityTag___setstate_cyth
#define __pyx_kp_s_Core_should_not_return_GRPC_QUEU __pyx_mstate_global->__pyx_kp_s_Core_should_not_return_GRPC_QUEU
#define __pyx_kp_s_Credentials_couldn_t_have_been_s __pyx_mstate_global->__pyx_kp_s_Credentials_couldn_t_have_been_s
#define __pyx_kp_s_Dedicated_exception_class_for_wa __pyx_mstate_global->__pyx_kp_s_Dedicated_exception_class_for_wa
#define __pyx_n_s_DeprecationWarning __pyx_mstate_global->__pyx_n_s_DeprecationWarning
#define __pyx_n_s_EMPTY_FLAGS __pyx_mstate_global->__pyx_n_s_EMPTY_FLAGS
#define __pyx_n_s_EMPTY_MASK __pyx_mstate_global->__pyx_n_s_EMPTY_MASK
#define __pyx_n_s_EOF __pyx_mstate_global->__pyx_n_s_EOF
#define __pyx_n_s_EOF_2 __pyx_mstate_global->__pyx_n_s_EOF_2
#define __pyx_n_s_EOF___bool __pyx_mstate_global->__pyx_n_s_EOF___bool
#define __pyx_n_s_EOF___len __pyx_mstate_global->__pyx_n_s_EOF___len
#define __pyx_n_s_EOF___repr __pyx_mstate_global->__pyx_n_s_EOF___repr
#define __pyx_n_s_EOF___str __pyx_mstate_global->__pyx_n_s_EOF___str
#define __pyx_n_s_EOF__repr __pyx_mstate_global->__pyx_n_s_EOF__repr
#define __pyx_n_s_EX_USAGE __pyx_mstate_global->__pyx_n_s_EX_USAGE
#define __pyx_n_s_Enum __pyx_mstate_global->__pyx_n_s_Enum
#define __pyx_kp_s_Error_fetching_certificate_confi __pyx_mstate_global->__pyx_kp_s_Error_fetching_certificate_confi
#define __pyx_kp_s_Error_fetching_certificate_confi_2 __pyx_mstate_global->__pyx_kp_s_Error_fetching_certificate_confi_2
#define __pyx_kp_s_Error_in_callback_for_method_s __pyx_mstate_global->__pyx_kp_s_Error_in_callback_for_method_s
#define __pyx_kp_s_Error_in_grpc_server_request_cal __pyx_mstate_global->__pyx_kp_s_Error_in_grpc_server_request_cal
#define __pyx_kp_s_Error_in_grpc_server_request_reg __pyx_mstate_global->__pyx_kp_s_Error_in_grpc_server_request_reg
#define __pyx_kp_s_Exception_not_handled_by__handle __pyx_mstate_global->__pyx_kp_s_Exception_not_handled_by__handle
#define __pyx_n_s_ExecuteBatchError __pyx_mstate_global->__pyx_n_s_ExecuteBatchError
#define __pyx_kp_s_ExecuteBatchError_raised_in_core __pyx_mstate_global->__pyx_kp_s_ExecuteBatchError_raised_in_core
#define __pyx_kp_s_Exiting_child_due_to_raised_exce __pyx_mstate_global->__pyx_kp_s_Exiting_child_due_to_raised_exce
#define __pyx_kp_s_Expected_bytes_str_or_unicode_no __pyx_mstate_global->__pyx_kp_s_Expected_bytes_str_or_unicode_no
#define __pyx_kp_s_Expected_int_bytes_or_behavior_g __pyx_mstate_global->__pyx_kp_s_Expected_int_bytes_or_behavior_g
#define __pyx_kp_s_Expected_str_not __pyx_mstate_global->__pyx_kp_s_Expected_str_not
#define __pyx_kp_s_Expecting_non_ok_status_code __pyx_mstate_global->__pyx_kp_s_Expecting_non_ok_status_code
#define __pyx_kp_s_Failed_grpc_call_start_batch_wit __pyx_mstate_global->__pyx_kp_s_Failed_grpc_call_start_batch_wit
#define __pyx_kp_s_Failed_s_s __pyx_mstate_global->__pyx_kp_s_Failed_s_s
#define __pyx_kp_s_Failed_sending_error_status_from __pyx_mstate_global->__pyx_kp_s_Failed_sending_error_status_from
#define __pyx_kp_s_Failed_to_get_server_sockets_ple __pyx_mstate_global->__pyx_kp_s_Failed_to_get_server_sockets_ple
#define __pyx_kp_s_Failed_to_get_servers_please_ens __pyx_mstate_global->__pyx_kp_s_Failed_to_get_servers_please_ens
#define __pyx_kp_s_Failed_to_get_the_channel_please __pyx_mstate_global->__pyx_kp_s_Failed_to_get_the_channel_please
#define __pyx_kp_s_Failed_to_get_the_server_please __pyx_mstate_global->__pyx_kp_s_Failed_to_get_the_server_please
#define __pyx_kp_s_Failed_to_get_the_socket_please __pyx_mstate_global->__pyx_kp_s_Failed_to_get_the_socket_please
#define __pyx_kp_s_Failed_to_get_the_subchannel_ple __pyx_mstate_global->__pyx_kp_s_Failed_to_get_the_subchannel_ple
#define __pyx_kp_s_Failed_to_get_top_channels_pleas __pyx_mstate_global->__pyx_kp_s_Failed_to_get_top_channels_pleas
#define __pyx_kp_s_Failed_to_receive_any_message_fr __pyx_mstate_global->__pyx_kp_s_Failed_to_receive_any_message_fr
#define __pyx_kp_s_Failed_to_shutdown_gRPC_Core_aft __pyx_mstate_global->__pyx_kp_s_Failed_to_shutdown_gRPC_Core_aft
#define __pyx_kp_s_Failed_to_shutdown_gRPC_Python_t __pyx_mstate_global->__pyx_kp_s_Failed_to_shutdown_gRPC_Python_t
#define __pyx_n_s_ForkManagedThread __pyx_mstate_global->__pyx_n_s_ForkManagedThread
#define __pyx_n_s_ForkManagedThread___init __pyx_mstate_global->__pyx_n_s_ForkManagedThread___init
#define __pyx_n_s_ForkManagedThread___init___local __pyx_mstate_global->__pyx_n_s_ForkManagedThread___init___local
#define __pyx_n_s_ForkManagedThread_join __pyx_mstate_global->__pyx_n_s_ForkManagedThread_join
#define __pyx_n_s_ForkManagedThread_setDaemon __pyx_mstate_global->__pyx_n_s_ForkManagedThread_setDaemon
#define __pyx_n_s_ForkManagedThread_start __pyx_mstate_global->__pyx_n_s_ForkManagedThread_start
#define __pyx_n_s_ForkState __pyx_mstate_global->__pyx_n_s_ForkState
#define __pyx_n_s_ForkState___init __pyx_mstate_global->__pyx_n_s_ForkState___init
#define __pyx_n_s_GRPC_ASYNCIO_ENGINE __pyx_mstate_global->__pyx_n_s_GRPC_ASYNCIO_ENGINE
#define __pyx_n_s_GRPC_COMPRESSION_CHANNEL_DEFAULT __pyx_mstate_global->__pyx_n_s_GRPC_COMPRESSION_CHANNEL_DEFAULT
#define __pyx_n_s_GRPC_COMPRESSION_REQUEST_ALGORIT __pyx_mstate_global->__pyx_n_s_GRPC_COMPRESSION_REQUEST_ALGORIT
#define __pyx_n_s_GRPC_ENABLE_FORK_SUPPORT __pyx_mstate_global->__pyx_n_s_GRPC_ENABLE_FORK_SUPPORT
#define __pyx_n_s_GRPC_ENABLE_FORK_SUPPORT_2 __pyx_mstate_global->__pyx_n_s_GRPC_ENABLE_FORK_SUPPORT_2
#define __pyx_n_s_GRPC_PROPAGATE_CANCELLATION __pyx_mstate_global->__pyx_n_s_GRPC_PROPAGATE_CANCELLATION
#define __pyx_n_s_GRPC_PROPAGATE_CENSUS_STATS_CONT __pyx_mstate_global->__pyx_n_s_GRPC_PROPAGATE_CENSUS_STATS_CONT
#define __pyx_n_s_GRPC_PROPAGATE_CENSUS_TRACING_CO __pyx_mstate_global->__pyx_n_s_GRPC_PROPAGATE_CENSUS_TRACING_CO
#define __pyx_n_s_GRPC_PROPAGATE_DEADLINE __pyx_mstate_global->__pyx_n_s_GRPC_PROPAGATE_DEADLINE
#define __pyx_n_s_GRPC_PROPAGATE_DEFAULTS __pyx_mstate_global->__pyx_n_s_GRPC_PROPAGATE_DEFAULTS
#define __pyx_n_s_Group __pyx_mstate_global->__pyx_n_s_Group
#define __pyx_n_s_GrpcArgWrapper __pyx_mstate_global->__pyx_n_s_GrpcArgWrapper
#define __pyx_n_s_GrpcArgWrapper___reduce_cython __pyx_mstate_global->__pyx_n_s_GrpcArgWrapper___reduce_cython
#define __pyx_n_s_GrpcArgWrapper___setstate_cytho __pyx_mstate_global->__pyx_n_s_GrpcArgWrapper___setstate_cytho
#define __pyx_n_s_GrpcCallWrapper __pyx_mstate_global->__pyx_n_s_GrpcCallWrapper
#define __pyx_kp_s_HandleExceptions_s __pyx_mstate_global->__pyx_kp_s_HandleExceptions_s
#define __pyx_n_s_HandlerCallDetails __pyx_mstate_global->__pyx_n_s_HandlerCallDetails
#define __pyx_n_s_HandlerCallDetails___reduce_cyt __pyx_mstate_global->__pyx_n_s_HandlerCallDetails___reduce_cyt
#define __pyx_n_s_HandlerCallDetails___setstate_c __pyx_mstate_global->__pyx_n_s_HandlerCallDetails___setstate_c
#define __pyx_n_s_IMMUTABLE_EMPTY_METADATA __pyx_mstate_global->__pyx_n_s_IMMUTABLE_EMPTY_METADATA
#define __pyx_n_s_INTERNAL_CALL_ERROR_MESSAGE_FOR __pyx_mstate_global->__pyx_n_s_INTERNAL_CALL_ERROR_MESSAGE_FOR
#define __pyx_n_s_ImportError __pyx_mstate_global->__pyx_n_s_ImportError
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2
#define __pyx_n_s_InitialMetadataFlags __pyx_mstate_global->__pyx_n_s_InitialMetadataFlags
#define __pyx_n_s_InsecureChannelCredentials __pyx_mstate_global->__pyx_n_s_InsecureChannelCredentials
#define __pyx_n_s_InsecureChannelCredentials___red __pyx_mstate_global->__pyx_n_s_InsecureChannelCredentials___red
#define __pyx_n_s_InsecureChannelCredentials___set __pyx_mstate_global->__pyx_n_s_InsecureChannelCredentials___set
#define __pyx_n_s_IntegratedCall __pyx_mstate_global->__pyx_n_s_IntegratedCall
#define __pyx_n_s_IntegratedCall___reduce_cython __pyx_mstate_global->__pyx_n_s_IntegratedCall___reduce_cython
#define __pyx_n_s_IntegratedCall___setstate_cython __pyx_mstate_global->__pyx_n_s_IntegratedCall___setstate_cython
#define __pyx_n_s_IntegratedCall_cancel __pyx_mstate_global->__pyx_n_s_IntegratedCall_cancel
#define __pyx_n_s_IntegratedCall_operate __pyx_mstate_global->__pyx_n_s_IntegratedCall_operate
#define __pyx_n_s_InternalError __pyx_mstate_global->__pyx_n_s_InternalError
#define __pyx_kp_s_Internal_error_from_Core __pyx_mstate_global->__pyx_kp_s_Internal_error_from_Core
#define __pyx_kp_s_Internal_gRPC_call_error_d __pyx_mstate_global->__pyx_kp_s_Internal_gRPC_call_error_d
#define __pyx_kp_s_Invalid_encoding_on_s __pyx_mstate_global->__pyx_kp_s_Invalid_encoding_on_s
#define __pyx_kp_u_Invalid_trailing_metadata_type_e __pyx_mstate_global->__pyx_kp_u_Invalid_trailing_metadata_type_e
#define __pyx_n_s_KeyError __pyx_mstate_global->__pyx_n_s_KeyError
#define __pyx_n_s_KeyboardInterrupt __pyx_mstate_global->__pyx_n_s_KeyboardInterrupt
#define __pyx_n_s_LOGGER __pyx_mstate_global->__pyx_n_s_LOGGER
#define __pyx_n_s_LatentEventArg __pyx_mstate_global->__pyx_n_s_LatentEventArg
#define __pyx_n_s_LocalChannelCredentials __pyx_mstate_global->__pyx_n_s_LocalChannelCredentials
#define __pyx_n_s_LocalChannelCredentials___reduce __pyx_mstate_global->__pyx_n_s_LocalChannelCredentials___reduce
#define __pyx_n_s_LocalChannelCredentials___setsta __pyx_mstate_global->__pyx_n_s_LocalChannelCredentials___setsta
#define __pyx_n_s_LocalConnectionType __pyx_mstate_global->__pyx_n_s_LocalConnectionType
#define __pyx_kp_s_Locally_aborted __pyx_mstate_global->__pyx_kp_s_Locally_aborted
#define __pyx_n_s_Lock __pyx_mstate_global->__pyx_n_s_Lock
#define __pyx_n_s_MessageReceiver __pyx_mstate_global->__pyx_n_s_MessageReceiver
#define __pyx_n_s_MessageReceiver___anext __pyx_mstate_global->__pyx_n_s_MessageReceiver___anext
#define __pyx_n_s_MessageReceiver___reduce_cython __pyx_mstate_global->__pyx_n_s_MessageReceiver___reduce_cython
#define __pyx_n_s_MessageReceiver___setstate_cyth __pyx_mstate_global->__pyx_n_s_MessageReceiver___setstate_cyth
#define __pyx_n_s_MessageReceiver__async_message __pyx_mstate_global->__pyx_n_s_MessageReceiver__async_message
#define __pyx_n_s_MetadataPluginCallCredentials __pyx_mstate_global->__pyx_n_s_MetadataPluginCallCredentials
#define __pyx_n_s_MetadataPluginCallCredentials_2 __pyx_mstate_global->__pyx_n_s_MetadataPluginCallCredentials_2
#define __pyx_n_s_MetadataPluginCallCredentials_3 __pyx_mstate_global->__pyx_n_s_MetadataPluginCallCredentials_3
#define __pyx_n_s_Metadatum __pyx_mstate_global->__pyx_n_s_Metadatum
#define __pyx_kp_s_Method_not_found __pyx_mstate_global->__pyx_kp_s_Method_not_found
#define __pyx_n_s_NON_OK_CALL_REPRESENTATION __pyx_mstate_global->__pyx_n_s_NON_OK_CALL_REPRESENTATION
#define __pyx_kp_s_No_custom_hooks_are_implemented __pyx_mstate_global->__pyx_kp_s_No_custom_hooks_are_implemented
#define __pyx_kp_s_Non_thread_safe_operation __pyx_mstate_global->__pyx_kp_s_Non_thread_safe_operation
#define __pyx_n_s_None __pyx_mstate_global->__pyx_n_s_None
#define __pyx_n_s_NotImplementedError __pyx_mstate_global->__pyx_n_s_NotImplementedError
#define __pyx_n_s_OK_CALL_REPRESENTATION __pyx_mstate_global->__pyx_n_s_OK_CALL_REPRESENTATION
#define __pyx_n_s_Operation __pyx_mstate_global->__pyx_n_s_Operation
#define __pyx_n_s_OperationType __pyx_mstate_global->__pyx_n_s_OperationType
#define __pyx_n_s_Operation___reduce_cython __pyx_mstate_global->__pyx_n_s_Operation___reduce_cython
#define __pyx_n_s_Operation___setstate_cython __pyx_mstate_global->__pyx_n_s_Operation___setstate_cython
#define __pyx_n_s_Optional __pyx_mstate_global->__pyx_n_s_Optional
#define __pyx_kp_s_Optional_int __pyx_mstate_global->__pyx_kp_s_Optional_int
#define __pyx_n_s_POLLER __pyx_mstate_global->__pyx_n_s_POLLER
#define __pyx_n_s_PickleError __pyx_mstate_global->__pyx_n_s_PickleError
#define __pyx_kp_s_Please_report_to_https_github_co __pyx_mstate_global->__pyx_kp_s_Please_report_to_https_github_co
#define __pyx_n_s_PollerCompletionQueue __pyx_mstate_global->__pyx_n_s_PollerCompletionQueue
#define __pyx_n_s_PollerCompletionQueue___reduce_c __pyx_mstate_global->__pyx_n_s_PollerCompletionQueue___reduce_c
#define __pyx_n_s_PollerCompletionQueue___setstate __pyx_mstate_global->__pyx_n_s_PollerCompletionQueue___setstate
#define __pyx_n_s_PollerCompletionQueue__handle_ev __pyx_mstate_global->__pyx_n_s_PollerCompletionQueue__handle_ev
#define __pyx_n_s_PollerCompletionQueue__poll_wrap __pyx_mstate_global->__pyx_n_s_PollerCompletionQueue__poll_wrap
#define __pyx_n_s_PollerCompletionQueue_bind_loop __pyx_mstate_global->__pyx_n_s_PollerCompletionQueue_bind_loop
#define __pyx_n_s_PropagationConstants __pyx_mstate_global->__pyx_n_s_PropagationConstants
#define __pyx_n_s_Pyx_CFunc_1f6ebd__4grpc_7_cyth __pyx_mstate_global->__pyx_n_s_Pyx_CFunc_1f6ebd__4grpc_7_cyth
#define __pyx_n_s_Pyx_CFunc_4grpc_7_cython_6cygr __pyx_mstate_global->__pyx_n_s_Pyx_CFunc_4grpc_7_cython_6cygr
#define __pyx_n_s_Pyx_CFunc_4grpc_7_cython_6cygr_2 __pyx_mstate_global->__pyx_n_s_Pyx_CFunc_4grpc_7_cython_6cygr_2
#define __pyx_n_s_Pyx_CFunc_7f0cf6__4grpc_7_cyth __pyx_mstate_global->__pyx_n_s_Pyx_CFunc_7f0cf6__4grpc_7_cyth
#define __pyx_n_s_Queue __pyx_mstate_global->__pyx_n_s_Queue
#define __pyx_n_s_RLock __pyx_mstate_global->__pyx_n_s_RLock
#define __pyx_n_s_RPCState __pyx_mstate_global->__pyx_n_s_RPCState
#define __pyx_n_s_RPCState___reduce_cython __pyx_mstate_global->__pyx_n_s_RPCState___reduce_cython
#define __pyx_n_s_RPCState___setstate_cython __pyx_mstate_global->__pyx_n_s_RPCState___setstate_cython
#define __pyx_kp_s_RPC_already_finished __pyx_mstate_global->__pyx_kp_s_RPC_already_finished
#define __pyx_kp_s_RPC_cancelled_for_servicer_metho __pyx_mstate_global->__pyx_kp_s_RPC_cancelled_for_servicer_metho
#define __pyx_kp_s_RPC_cancelled_for_unknown_reason __pyx_mstate_global->__pyx_kp_s_RPC_cancelled_for_unknown_reason
#define __pyx_kp_s_Raised_if_the_server_is_stopped __pyx_mstate_global->__pyx_kp_s_Raised_if_the_server_is_stopped
#define __pyx_kp_s_Raised_upon_unexpected_errors_in __pyx_mstate_global->__pyx_kp_s_Raised_upon_unexpected_errors_in
#define __pyx_kp_s_Raised_when_calling_abort_in_ser __pyx_mstate_global->__pyx_kp_s_Raised_when_calling_abort_in_ser
#define __pyx_kp_s_Raised_when_execute_batch_return __pyx_mstate_global->__pyx_kp_s_Raised_when_execute_batch_return
#define __pyx_kp_s_Raised_when_the_usage_of_API_by __pyx_mstate_global->__pyx_kp_s_Raised_when_the_usage_of_API_by
#define __pyx_n_s_ReceiveCloseOnServerOperation __pyx_mstate_global->__pyx_n_s_ReceiveCloseOnServerOperation
#define __pyx_n_s_ReceiveCloseOnServerOperation_2 __pyx_mstate_global->__pyx_n_s_ReceiveCloseOnServerOperation_2
#define __pyx_n_s_ReceiveCloseOnServerOperation_3 __pyx_mstate_global->__pyx_n_s_ReceiveCloseOnServerOperation_3
#define __pyx_n_s_ReceiveCloseOnServerOperation_ca __pyx_mstate_global->__pyx_n_s_ReceiveCloseOnServerOperation_ca
#define __pyx_n_s_ReceiveCloseOnServerOperation_ty __pyx_mstate_global->__pyx_n_s_ReceiveCloseOnServerOperation_ty
#define __pyx_n_s_ReceiveInitialMetadataOperation __pyx_mstate_global->__pyx_n_s_ReceiveInitialMetadataOperation
#define __pyx_n_s_ReceiveInitialMetadataOperation_2 __pyx_mstate_global->__pyx_n_s_ReceiveInitialMetadataOperation_2
#define __pyx_n_s_ReceiveInitialMetadataOperation_3 __pyx_mstate_global->__pyx_n_s_ReceiveInitialMetadataOperation_3
#define __pyx_n_s_ReceiveInitialMetadataOperation_4 __pyx_mstate_global->__pyx_n_s_ReceiveInitialMetadataOperation_4
#define __pyx_n_s_ReceiveInitialMetadataOperation_5 __pyx_mstate_global->__pyx_n_s_ReceiveInitialMetadataOperation_5
#define __pyx_n_s_ReceiveMessageOperation __pyx_mstate_global->__pyx_n_s_ReceiveMessageOperation
#define __pyx_n_s_ReceiveMessageOperation___reduce __pyx_mstate_global->__pyx_n_s_ReceiveMessageOperation___reduce
#define __pyx_n_s_ReceiveMessageOperation___setsta __pyx_mstate_global->__pyx_n_s_ReceiveMessageOperation___setsta
#define __pyx_n_s_ReceiveMessageOperation_message __pyx_mstate_global->__pyx_n_s_ReceiveMessageOperation_message
#define __pyx_n_s_ReceiveMessageOperation_type __pyx_mstate_global->__pyx_n_s_ReceiveMessageOperation_type
#define __pyx_n_s_ReceiveStatusOnClientOperation __pyx_mstate_global->__pyx_n_s_ReceiveStatusOnClientOperation
#define __pyx_n_s_ReceiveStatusOnClientOperation_2 __pyx_mstate_global->__pyx_n_s_ReceiveStatusOnClientOperation_2
#define __pyx_n_s_ReceiveStatusOnClientOperation_3 __pyx_mstate_global->__pyx_n_s_ReceiveStatusOnClientOperation_3
#define __pyx_n_s_ReceiveStatusOnClientOperation_c __pyx_mstate_global->__pyx_n_s_ReceiveStatusOnClientOperation_c
#define __pyx_n_s_ReceiveStatusOnClientOperation_d __pyx_mstate_global->__pyx_n_s_ReceiveStatusOnClientOperation_d
#define __pyx_n_s_ReceiveStatusOnClientOperation_e __pyx_mstate_global->__pyx_n_s_ReceiveStatusOnClientOperation_e
#define __pyx_n_s_ReceiveStatusOnClientOperation_t __pyx_mstate_global->__pyx_n_s_ReceiveStatusOnClientOperation_t
#define __pyx_n_s_ReceiveStatusOnClientOperation_t_2 __pyx_mstate_global->__pyx_n_s_ReceiveStatusOnClientOperation_t_2
#define __pyx_n_s_RegisteredMethod __pyx_mstate_global->__pyx_n_s_RegisteredMethod
#define __pyx_n_s_RegisteredMethod___reduce_cython __pyx_mstate_global->__pyx_n_s_RegisteredMethod___reduce_cython
#define __pyx_n_s_RegisteredMethod___setstate_cyth __pyx_mstate_global->__pyx_n_s_RegisteredMethod___setstate_cyth
#define __pyx_n_s_RequestCallError __pyx_mstate_global->__pyx_n_s_RequestCallError
#define __pyx_n_s_RequestCallEvent __pyx_mstate_global->__pyx_n_s_RequestCallEvent
#define __pyx_n_s_RequestCallEvent___reduce_cython __pyx_mstate_global->__pyx_n_s_RequestCallEvent___reduce_cython
#define __pyx_n_s_RequestCallEvent___setstate_cyth __pyx_mstate_global->__pyx_n_s_RequestCallEvent___setstate_cyth
#define __pyx_n_s_RequestCallTag __pyx_mstate_global->__pyx_n_s_RequestCallTag
#define __pyx_n_s_RequestCallTag___reduce_cython __pyx_mstate_global->__pyx_n_s_RequestCallTag___reduce_cython
#define __pyx_n_s_RequestCallTag___setstate_cytho __pyx_mstate_global->__pyx_n_s_RequestCallTag___setstate_cytho
#define __pyx_n_s_RuntimeError __pyx_mstate_global->__pyx_n_s_RuntimeError
#define __pyx_n_s_SERVICES_TO_EXCLUDE __pyx_mstate_global->__pyx_n_s_SERVICES_TO_EXCLUDE
#define __pyx_n_s_SSLChannelCredentials __pyx_mstate_global->__pyx_n_s_SSLChannelCredentials
#define __pyx_n_s_SSLChannelCredentials___reduce_c __pyx_mstate_global->__pyx_n_s_SSLChannelCredentials___reduce_c
#define __pyx_n_s_SSLChannelCredentials___setstate __pyx_mstate_global->__pyx_n_s_SSLChannelCredentials___setstate
#define __pyx_n_s_SSLSessionCacheLRU __pyx_mstate_global->__pyx_n_s_SSLSessionCacheLRU
#define __pyx_n_s_SSLSessionCacheLRU___reduce_cyth __pyx_mstate_global->__pyx_n_s_SSLSessionCacheLRU___reduce_cyth
#define __pyx_n_s_SSLSessionCacheLRU___setstate_cy __pyx_mstate_global->__pyx_n_s_SSLSessionCacheLRU___setstate_cy
#define __pyx_n_s_SegregatedCall __pyx_mstate_global->__pyx_n_s_SegregatedCall
#define __pyx_n_s_SegregatedCall___reduce_cython __pyx_mstate_global->__pyx_n_s_SegregatedCall___reduce_cython
#define __pyx_n_s_SegregatedCall___setstate_cython __pyx_mstate_global->__pyx_n_s_SegregatedCall___setstate_cython
#define __pyx_n_s_SegregatedCall_cancel __pyx_mstate_global->__pyx_n_s_SegregatedCall_cancel
#define __pyx_n_s_SegregatedCall_next_event __pyx_mstate_global->__pyx_n_s_SegregatedCall_next_event
#define __pyx_n_s_SegregatedCall_operate __pyx_mstate_global->__pyx_n_s_SegregatedCall_operate
#define __pyx_n_s_SendCloseFromClientOperation __pyx_mstate_global->__pyx_n_s_SendCloseFromClientOperation
#define __pyx_n_s_SendCloseFromClientOperation___r __pyx_mstate_global->__pyx_n_s_SendCloseFromClientOperation___r
#define __pyx_n_s_SendCloseFromClientOperation___s __pyx_mstate_global->__pyx_n_s_SendCloseFromClientOperation___s
#define __pyx_n_s_SendCloseFromClientOperation_typ __pyx_mstate_global->__pyx_n_s_SendCloseFromClientOperation_typ
#define __pyx_n_s_SendInitialMetadataOperation __pyx_mstate_global->__pyx_n_s_SendInitialMetadataOperation
#define __pyx_n_s_SendInitialMetadataOperation___r __pyx_mstate_global->__pyx_n_s_SendInitialMetadataOperation___r
#define __pyx_n_s_SendInitialMetadataOperation___s __pyx_mstate_global->__pyx_n_s_SendInitialMetadataOperation___s
#define __pyx_n_s_SendInitialMetadataOperation_typ __pyx_mstate_global->__pyx_n_s_SendInitialMetadataOperation_typ
#define __pyx_n_s_SendMessageOperation __pyx_mstate_global->__pyx_n_s_SendMessageOperation
#define __pyx_n_s_SendMessageOperation___reduce_cy __pyx_mstate_global->__pyx_n_s_SendMessageOperation___reduce_cy
#define __pyx_n_s_SendMessageOperation___setstate __pyx_mstate_global->__pyx_n_s_SendMessageOperation___setstate
#define __pyx_n_s_SendMessageOperation_type __pyx_mstate_global->__pyx_n_s_SendMessageOperation_type
#define __pyx_n_s_SendStatusFromServerOperation __pyx_mstate_global->__pyx_n_s_SendStatusFromServerOperation
#define __pyx_n_s_SendStatusFromServerOperation_2 __pyx_mstate_global->__pyx_n_s_SendStatusFromServerOperation_2
#define __pyx_n_s_SendStatusFromServerOperation_3 __pyx_mstate_global->__pyx_n_s_SendStatusFromServerOperation_3
#define __pyx_n_s_SendStatusFromServerOperation_ty __pyx_mstate_global->__pyx_n_s_SendStatusFromServerOperation_ty
#define __pyx_kp_s_Send_initial_metadata_failed_alr __pyx_mstate_global->__pyx_kp_s_Send_initial_metadata_failed_alr
#define __pyx_n_s_Server __pyx_mstate_global->__pyx_n_s_Server
#define __pyx_n_s_ServerCertificateConfig __pyx_mstate_global->__pyx_n_s_ServerCertificateConfig
#define __pyx_n_s_ServerCertificateConfig___reduce __pyx_mstate_global->__pyx_n_s_ServerCertificateConfig___reduce
#define __pyx_n_s_ServerCertificateConfig___setsta __pyx_mstate_global->__pyx_n_s_ServerCertificateConfig___setsta
#define __pyx_n_s_ServerCertificateConfiguration __pyx_mstate_global->__pyx_n_s_ServerCertificateConfiguration
#define __pyx_n_s_ServerCredentials __pyx_mstate_global->__pyx_n_s_ServerCredentials
#define __pyx_n_s_ServerCredentials___reduce_cytho __pyx_mstate_global->__pyx_n_s_ServerCredentials___reduce_cytho
#define __pyx_n_s_ServerCredentials___setstate_cyt __pyx_mstate_global->__pyx_n_s_ServerCredentials___setstate_cyt
#define __pyx_n_s_ServerShutdownEvent __pyx_mstate_global->__pyx_n_s_ServerShutdownEvent
#define __pyx_n_s_ServerShutdownEvent___reduce_cyt __pyx_mstate_global->__pyx_n_s_ServerShutdownEvent___reduce_cyt
#define __pyx_n_s_ServerShutdownEvent___setstate_c __pyx_mstate_global->__pyx_n_s_ServerShutdownEvent___setstate_c
#define __pyx_n_s_ServerShutdownTag __pyx_mstate_global->__pyx_n_s_ServerShutdownTag
#define __pyx_n_s_ServerShutdownTag___reduce_cyth __pyx_mstate_global->__pyx_n_s_ServerShutdownTag___reduce_cyth
#define __pyx_n_s_ServerShutdownTag___setstate_cy __pyx_mstate_global->__pyx_n_s_ServerShutdownTag___setstate_cy
#define __pyx_n_s_ServerStoppedError __pyx_mstate_global->__pyx_n_s_ServerStoppedError
#define __pyx_n_s_Server___reduce_cython __pyx_mstate_global->__pyx_n_s_Server___reduce_cython
#define __pyx_n_s_Server___setstate_cython __pyx_mstate_global->__pyx_n_s_Server___setstate_cython
#define __pyx_n_s_Server_add_http2_port __pyx_mstate_global->__pyx_n_s_Server_add_http2_port
#define __pyx_kp_s_Server_already_stopped __pyx_mstate_global->__pyx_kp_s_Server_already_stopped
#define __pyx_n_s_Server_cancel_all_calls __pyx_mstate_global->__pyx_n_s_Server_cancel_all_calls
#define __pyx_n_s_Server_destroy __pyx_mstate_global->__pyx_n_s_Server_destroy
#define __pyx_kp_s_Server_not_in_ready_state __pyx_mstate_global->__pyx_kp_s_Server_not_in_ready_state
#define __pyx_n_s_Server_register_completion_queue __pyx_mstate_global->__pyx_n_s_Server_register_completion_queue
#define __pyx_n_s_Server_register_method __pyx_mstate_global->__pyx_n_s_Server_register_method
#define __pyx_n_s_Server_request_call __pyx_mstate_global->__pyx_n_s_Server_request_call
#define __pyx_n_s_Server_request_registered_call __pyx_mstate_global->__pyx_n_s_Server_request_registered_call
#define __pyx_n_s_Server_shutdown __pyx_mstate_global->__pyx_n_s_Server_shutdown
#define __pyx_kp_s_Server_shutdown_failed_no_comple __pyx_mstate_global->__pyx_kp_s_Server_shutdown_failed_no_comple
#define __pyx_n_s_Server_start __pyx_mstate_global->__pyx_n_s_Server_start
#define __pyx_n_s_ServicerContext __pyx_mstate_global->__pyx_n_s_ServicerContext
#define __pyx_n_s_ServicerContext___reduce_cython __pyx_mstate_global->__pyx_n_s_ServicerContext___reduce_cython
#define __pyx_n_s_ServicerContext___setstate_cyth __pyx_mstate_global->__pyx_n_s_ServicerContext___setstate_cyth
#define __pyx_n_s_ServicerContext_abort __pyx_mstate_global->__pyx_n_s_ServicerContext_abort
#define __pyx_n_s_ServicerContext_abort_with_stat __pyx_mstate_global->__pyx_n_s_ServicerContext_abort_with_stat
#define __pyx_n_s_ServicerContext_add_done_callba __pyx_mstate_global->__pyx_n_s_ServicerContext_add_done_callba
#define __pyx_n_s_ServicerContext_auth_context __pyx_mstate_global->__pyx_n_s_ServicerContext_auth_context
#define __pyx_n_s_ServicerContext_cancelled __pyx_mstate_global->__pyx_n_s_ServicerContext_cancelled
#define __pyx_n_s_ServicerContext_code __pyx_mstate_global->__pyx_n_s_ServicerContext_code
#define __pyx_n_s_ServicerContext_details __pyx_mstate_global->__pyx_n_s_ServicerContext_details
#define __pyx_n_s_ServicerContext_disable_next_me __pyx_mstate_global->__pyx_n_s_ServicerContext_disable_next_me
#define __pyx_n_s_ServicerContext_done __pyx_mstate_global->__pyx_n_s_ServicerContext_done
#define __pyx_n_s_ServicerContext_invocation_meta __pyx_mstate_global->__pyx_n_s_ServicerContext_invocation_meta
#define __pyx_n_s_ServicerContext_peer __pyx_mstate_global->__pyx_n_s_ServicerContext_peer
#define __pyx_n_s_ServicerContext_peer_identities __pyx_mstate_global->__pyx_n_s_ServicerContext_peer_identities
#define __pyx_n_s_ServicerContext_peer_identity_k __pyx_mstate_global->__pyx_n_s_ServicerContext_peer_identity_k
#define __pyx_n_s_ServicerContext_read __pyx_mstate_global->__pyx_n_s_ServicerContext_read
#define __pyx_n_s_ServicerContext_send_initial_me __pyx_mstate_global->__pyx_n_s_ServicerContext_send_initial_me
#define __pyx_n_s_ServicerContext_set_code __pyx_mstate_global->__pyx_n_s_ServicerContext_set_code
#define __pyx_n_s_ServicerContext_set_compression __pyx_mstate_global->__pyx_n_s_ServicerContext_set_compression
#define __pyx_n_s_ServicerContext_set_details __pyx_mstate_global->__pyx_n_s_ServicerContext_set_details
#define __pyx_n_s_ServicerContext_set_trailing_me __pyx_mstate_global->__pyx_n_s_ServicerContext_set_trailing_me
#define __pyx_n_s_ServicerContext_time_remaining __pyx_mstate_global->__pyx_n_s_ServicerContext_time_remaining
#define __pyx_n_s_ServicerContext_trailing_metada __pyx_mstate_global->__pyx_n_s_ServicerContext_trailing_metada
#define __pyx_n_s_ServicerContext_write __pyx_mstate_global->__pyx_n_s_ServicerContext_write
#define __pyx_n_s_SslPemKeyCertPair __pyx_mstate_global->__pyx_n_s_SslPemKeyCertPair
#define __pyx_n_s_SslPemKeyCertPair___reduce_cytho __pyx_mstate_global->__pyx_n_s_SslPemKeyCertPair___reduce_cytho
#define __pyx_n_s_SslPemKeyCertPair___setstate_cyt __pyx_mstate_global->__pyx_n_s_SslPemKeyCertPair___setstate_cyt
#define __pyx_n_s_StatusCode __pyx_mstate_global->__pyx_n_s_StatusCode
#define __pyx_n_s_SyncServicerContext __pyx_mstate_global->__pyx_n_s_SyncServicerContext
#define __pyx_n_s_SyncServicerContext___reduce_cy __pyx_mstate_global->__pyx_n_s_SyncServicerContext___reduce_cy
#define __pyx_n_s_SyncServicerContext___setstate __pyx_mstate_global->__pyx_n_s_SyncServicerContext___setstate
#define __pyx_n_s_SyncServicerContext_abort __pyx_mstate_global->__pyx_n_s_SyncServicerContext_abort
#define __pyx_n_s_SyncServicerContext_add_callbac __pyx_mstate_global->__pyx_n_s_SyncServicerContext_add_callbac
#define __pyx_n_s_SyncServicerContext_auth_contex __pyx_mstate_global->__pyx_n_s_SyncServicerContext_auth_contex
#define __pyx_n_s_SyncServicerContext_disable_nex __pyx_mstate_global->__pyx_n_s_SyncServicerContext_disable_nex
#define __pyx_n_s_SyncServicerContext_invocation __pyx_mstate_global->__pyx_n_s_SyncServicerContext_invocation
#define __pyx_n_s_SyncServicerContext_peer __pyx_mstate_global->__pyx_n_s_SyncServicerContext_peer
#define __pyx_n_s_SyncServicerContext_peer_identi __pyx_mstate_global->__pyx_n_s_SyncServicerContext_peer_identi
#define __pyx_n_s_SyncServicerContext_peer_identi_2 __pyx_mstate_global->__pyx_n_s_SyncServicerContext_peer_identi_2
#define __pyx_n_s_SyncServicerContext_send_initia __pyx_mstate_global->__pyx_n_s_SyncServicerContext_send_initia
#define __pyx_n_s_SyncServicerContext_set_code __pyx_mstate_global->__pyx_n_s_SyncServicerContext_set_code
#define __pyx_n_s_SyncServicerContext_set_compres __pyx_mstate_global->__pyx_n_s_SyncServicerContext_set_compres
#define __pyx_n_s_SyncServicerContext_set_details __pyx_mstate_global->__pyx_n_s_SyncServicerContext_set_details
#define __pyx_n_s_SyncServicerContext_set_trailin __pyx_mstate_global->__pyx_n_s_SyncServicerContext_set_trailin
#define __pyx_n_s_SyncServicerContext_time_remain __pyx_mstate_global->__pyx_n_s_SyncServicerContext_time_remain
#define __pyx_n_s_SystemExit __pyx_mstate_global->__pyx_n_s_SystemExit
#define __pyx_n_s_TRUE __pyx_mstate_global->__pyx_n_s_TRUE
#define __pyx_n_s_TRUE_VALUES __pyx_mstate_global->__pyx_n_s_TRUE_VALUES
#define __pyx_n_s_TYPE_METADATA_STRING __pyx_mstate_global->__pyx_n_s_TYPE_METADATA_STRING
#define __pyx_n_s_Tag __pyx_mstate_global->__pyx_n_s_Tag
#define __pyx_n_s_Tag___reduce_cython __pyx_mstate_global->__pyx_n_s_Tag___reduce_cython
#define __pyx_n_s_Tag___setstate_cython __pyx_mstate_global->__pyx_n_s_Tag___setstate_cython
#define __pyx_kp_s_The_base_class_for_exceptions_ge __pyx_mstate_global->__pyx_kp_s_The_base_class_for_exceptions_ge
#define __pyx_n_s_Thread __pyx_mstate_global->__pyx_n_s_Thread
#define __pyx_kp_s_Timed_out __pyx_mstate_global->__pyx_kp_s_Timed_out
#define __pyx_n_s_TimeoutError __pyx_mstate_global->__pyx_n_s_TimeoutError
#define __pyx_n_s_True __pyx_mstate_global->__pyx_n_s_True
#define __pyx_kp_s_Tuple_Tuple_str_Union_str_bytes __pyx_mstate_global->__pyx_kp_s_Tuple_Tuple_str_Union_str_bytes
#define __pyx_n_s_TypeError __pyx_mstate_global->__pyx_n_s_TypeError
#define __pyx_n_s_UNKNOWN_CANCELLATION_DETAILS __pyx_mstate_global->__pyx_n_s_UNKNOWN_CANCELLATION_DETAILS
#define __pyx_kp_s_Unexpected_s_raised_by_servicer __pyx_mstate_global->__pyx_kp_s_Unexpected_s_raised_by_servicer
#define __pyx_kp_s_Unexpected_s_s __pyx_mstate_global->__pyx_kp_s_Unexpected_s_s
#define __pyx_n_s_UnicodeDecodeError __pyx_mstate_global->__pyx_n_s_UnicodeDecodeError
#define __pyx_n_s_Unknown __pyx_mstate_global->__pyx_n_s_Unknown
#define __pyx_kp_s_Unsupported_engine_type_s __pyx_mstate_global->__pyx_kp_s_Unsupported_engine_type_s
#define __pyx_n_s_UsageError __pyx_mstate_global->__pyx_n_s_UsageError
#define __pyx_kp_s_Using_s_as_I_O_engine __pyx_mstate_global->__pyx_kp_s_Using_s_as_I_O_engine
#define __pyx_n_s_ValueError __pyx_mstate_global->__pyx_n_s_ValueError
#define __pyx_n_s_WatchConnectivityFailed __pyx_mstate_global->__pyx_n_s_WatchConnectivityFailed
#define __pyx_n_s_WriteFlag __pyx_mstate_global->__pyx_n_s_WriteFlag
#define __pyx_n_s_XDSChannelCredentials __pyx_mstate_global->__pyx_n_s_XDSChannelCredentials
#define __pyx_n_s_XDSChannelCredentials___reduce_c __pyx_mstate_global->__pyx_n_s_XDSChannelCredentials___reduce_c
#define __pyx_n_s_XDSChannelCredentials___setstate __pyx_mstate_global->__pyx_n_s_XDSChannelCredentials___setstate
#define __pyx_n_s_YES __pyx_mstate_global->__pyx_n_s_YES
#define __pyx_n_s_Yes __pyx_mstate_global->__pyx_n_s_Yes
#define __pyx_n_s__107 __pyx_mstate_global->__pyx_n_s__107
#define __pyx_n_s__38 __pyx_mstate_global->__pyx_n_s__38
#define __pyx_kp_u__49 __pyx_mstate_global->__pyx_kp_u__49
#define __pyx_n_s__57 __pyx_mstate_global->__pyx_n_s__57
#define __pyx_kp_u__58 __pyx_mstate_global->__pyx_kp_u__58
#define __pyx_kp_u__69 __pyx_mstate_global->__pyx_kp_u__69
#define __pyx_kp_b__7 __pyx_mstate_global->__pyx_kp_b__7
#define __pyx_kp_s__7 __pyx_mstate_global->__pyx_kp_s__7
#define __pyx_kp_u__70 __pyx_mstate_global->__pyx_kp_u__70
#define __pyx_kp_u__71 __pyx_mstate_global->__pyx_kp_u__71
#define __pyx_n_s_abort __pyx_mstate_global->__pyx_n_s_abort
#define __pyx_n_s_abort_with_status __pyx_mstate_global->__pyx_n_s_abort_with_status
#define __pyx_n_s_aborted __pyx_mstate_global->__pyx_n_s_aborted
#define __pyx_n_s_active_thread_count __pyx_mstate_global->__pyx_n_s_active_thread_count
#define __pyx_n_s_actual_code __pyx_mstate_global->__pyx_n_s_actual_code
#define __pyx_n_s_add __pyx_mstate_global->__pyx_n_s_add
#define __pyx_n_s_add_callback __pyx_mstate_global->__pyx_n_s_add_callback
#define __pyx_n_s_add_callback_handler_locals_han __pyx_mstate_global->__pyx_n_s_add_callback_handler_locals_han
#define __pyx_n_s_add_done_callback __pyx_mstate_global->__pyx_n_s_add_done_callback
#define __pyx_n_s_add_generic_rpc_handlers __pyx_mstate_global->__pyx_n_s_add_generic_rpc_handlers
#define __pyx_n_s_add_http2_port __pyx_mstate_global->__pyx_n_s_add_http2_port
#define __pyx_n_s_add_insecure_port __pyx_mstate_global->__pyx_n_s_add_insecure_port
#define __pyx_n_s_add_reader __pyx_mstate_global->__pyx_n_s_add_reader
#define __pyx_n_s_add_secure_port __pyx_mstate_global->__pyx_n_s_add_secure_port
#define __pyx_n_s_address __pyx_mstate_global->__pyx_n_s_address
#define __pyx_n_s_address_c_string __pyx_mstate_global->__pyx_n_s_address_c_string
#define __pyx_n_s_aenter __pyx_mstate_global->__pyx_n_s_aenter
#define __pyx_n_s_aexit __pyx_mstate_global->__pyx_n_s_aexit
#define __pyx_n_s_after_in_child __pyx_mstate_global->__pyx_n_s_after_in_child
#define __pyx_n_s_after_in_parent __pyx_mstate_global->__pyx_n_s_after_in_parent
#define __pyx_n_s_agen __pyx_mstate_global->__pyx_n_s_agen
#define __pyx_n_s_aiter __pyx_mstate_global->__pyx_n_s_aiter
#define __pyx_n_s_algorithm __pyx_mstate_global->__pyx_n_s_algorithm
#define __pyx_n_s_already_accepted __pyx_mstate_global->__pyx_n_s_already_accepted
#define __pyx_n_s_already_exists __pyx_mstate_global->__pyx_n_s_already_exists
#define __pyx_n_s_already_finished __pyx_mstate_global->__pyx_n_s_already_finished
#define __pyx_n_s_already_invoked __pyx_mstate_global->__pyx_n_s_already_invoked
#define __pyx_n_s_anext __pyx_mstate_global->__pyx_n_s_anext
#define __pyx_n_s_append __pyx_mstate_global->__pyx_n_s_append
#define __pyx_n_s_apply __pyx_mstate_global->__pyx_n_s_apply
#define __pyx_n_s_args __pyx_mstate_global->__pyx_n_s_args
#define __pyx_n_s_arguments __pyx_mstate_global->__pyx_n_s_arguments
#define __pyx_n_s_ascii __pyx_mstate_global->__pyx_n_s_ascii
#define __pyx_n_s_async_callback_func __pyx_mstate_global->__pyx_n_s_async_callback_func
#define __pyx_n_s_async_generator_to_generator __pyx_mstate_global->__pyx_n_s_async_generator_to_generator
#define __pyx_n_s_async_message_receiver __pyx_mstate_global->__pyx_n_s_async_message_receiver
#define __pyx_n_s_async_response_generator __pyx_mstate_global->__pyx_n_s_async_response_generator
#define __pyx_n_s_asyncio __pyx_mstate_global->__pyx_n_s_asyncio
#define __pyx_n_s_asyncio_coroutines __pyx_mstate_global->__pyx_n_s_asyncio_coroutines
#define __pyx_n_s_asyncio_tasks __pyx_mstate_global->__pyx_n_s_asyncio_tasks
#define __pyx_n_s_atexit __pyx_mstate_global->__pyx_n_s_atexit
#define __pyx_n_s_auth_context __pyx_mstate_global->__pyx_n_s_auth_context
#define __pyx_n_s_await __pyx_mstate_global->__pyx_n_s_await
#define __pyx_n_s_await_zero_threads __pyx_mstate_global->__pyx_n_s_await_zero_threads
#define __pyx_n_s_backup_queue __pyx_mstate_global->__pyx_n_s_backup_queue
#define __pyx_n_s_batch_error __pyx_mstate_global->__pyx_n_s_batch_error
#define __pyx_n_s_batch_operation_tag __pyx_mstate_global->__pyx_n_s_batch_operation_tag
#define __pyx_n_s_batch_operations __pyx_mstate_global->__pyx_n_s_batch_operations
#define __pyx_n_s_before __pyx_mstate_global->__pyx_n_s_before
#define __pyx_kp_b_bin __pyx_mstate_global->__pyx_kp_b_bin
#define __pyx_n_s_bind_loop __pyx_mstate_global->__pyx_n_s_bind_loop
#define __pyx_n_s_block_if_fork_in_progress __pyx_mstate_global->__pyx_n_s_block_if_fork_in_progress
#define __pyx_n_s_bool __pyx_mstate_global->__pyx_n_s_bool
#define __pyx_n_s_buffer_hint __pyx_mstate_global->__pyx_n_s_buffer_hint
#define __pyx_n_s_build_census_context __pyx_mstate_global->__pyx_n_s_build_census_context
#define __pyx_n_s_bytes_ctx __pyx_mstate_global->__pyx_n_s_bytes_ctx
#define __pyx_n_s_c_call_credentials __pyx_mstate_global->__pyx_n_s_c_call_credentials
#define __pyx_n_s_c_call_error __pyx_mstate_global->__pyx_n_s_c_call_error
#define __pyx_n_s_c_cert_config __pyx_mstate_global->__pyx_n_s_c_cert_config
#define __pyx_n_s_c_deadline __pyx_mstate_global->__pyx_n_s_c_deadline
#define __pyx_n_s_c_details __pyx_mstate_global->__pyx_n_s_c_details
#define __pyx_n_s_c_error_details __pyx_mstate_global->__pyx_n_s_c_error_details
#define __pyx_n_s_c_event __pyx_mstate_global->__pyx_n_s_c_event
#define __pyx_n_s_c_key __pyx_mstate_global->__pyx_n_s_c_key
#define __pyx_n_s_c_options __pyx_mstate_global->__pyx_n_s_c_options
#define __pyx_n_s_c_peer __pyx_mstate_global->__pyx_n_s_c_peer
#define __pyx_n_s_c_pem_root_certs __pyx_mstate_global->__pyx_n_s_c_pem_root_certs
#define __pyx_n_s_c_returned_str __pyx_mstate_global->__pyx_n_s_c_returned_str
#define __pyx_n_s_c_target __pyx_mstate_global->__pyx_n_s_c_target
#define __pyx_n_s_call __pyx_mstate_global->__pyx_n_s_call
#define __pyx_n_s_call_credentials __pyx_mstate_global->__pyx_n_s_call_credentials
#define __pyx_n_s_call_credentialses __pyx_mstate_global->__pyx_n_s_call_credentialses
#define __pyx_n_s_call_creds __pyx_mstate_global->__pyx_n_s_call_creds
#define __pyx_n_s_call_details __pyx_mstate_global->__pyx_n_s_call_details
#define __pyx_n_s_call_error __pyx_mstate_global->__pyx_n_s_call_error
#define __pyx_n_s_call_handle __pyx_mstate_global->__pyx_n_s_call_handle
#define __pyx_n_s_call_queue __pyx_mstate_global->__pyx_n_s_call_queue
#define __pyx_n_s_call_soon_threadsafe __pyx_mstate_global->__pyx_n_s_call_soon_threadsafe
#define __pyx_n_s_call_state __pyx_mstate_global->__pyx_n_s_call_state
#define __pyx_n_s_callback __pyx_mstate_global->__pyx_n_s_callback
#define __pyx_n_s_callback_func __pyx_mstate_global->__pyx_n_s_callback_func
#define __pyx_n_s_callback_wrapper __pyx_mstate_global->__pyx_n_s_callback_wrapper
#define __pyx_n_s_cancel __pyx_mstate_global->__pyx_n_s_cancel
#define __pyx_n_s_cancel_all_calls __pyx_mstate_global->__pyx_n_s_cancel_all_calls
#define __pyx_n_s_cancelled __pyx_mstate_global->__pyx_n_s_cancelled
#define __pyx_kp_s_cannot_register_completion_queue __pyx_mstate_global->__pyx_kp_s_cannot_register_completion_queue
#define __pyx_n_s_capacity __pyx_mstate_global->__pyx_n_s_capacity
#define __pyx_n_s_capsule __pyx_mstate_global->__pyx_n_s_capsule
#define __pyx_n_s_capsule_ptr __pyx_mstate_global->__pyx_n_s_capsule_ptr
#define __pyx_n_s_catch_warnings __pyx_mstate_global->__pyx_n_s_catch_warnings
#define __pyx_n_s_cb __pyx_mstate_global->__pyx_n_s_cb
#define __pyx_n_s_cb_func __pyx_mstate_global->__pyx_n_s_cb_func
#define __pyx_n_s_census_ctx __pyx_mstate_global->__pyx_n_s_census_ctx
#define __pyx_n_s_cert_config __pyx_mstate_global->__pyx_n_s_cert_config
#define __pyx_n_s_cert_config_fetcher __pyx_mstate_global->__pyx_n_s_cert_config_fetcher
#define __pyx_kp_s_cert_config_fetcher_must_be_call __pyx_mstate_global->__pyx_kp_s_cert_config_fetcher_must_be_call
#define __pyx_n_s_certificate_chain __pyx_mstate_global->__pyx_n_s_certificate_chain
#define __pyx_n_s_certificate_configuration __pyx_mstate_global->__pyx_n_s_certificate_configuration
#define __pyx_n_s_cfunc_to_py __pyx_mstate_global->__pyx_n_s_cfunc_to_py
#define __pyx_n_s_channel __pyx_mstate_global->__pyx_n_s_channel
#define __pyx_n_s_channel_credentials __pyx_mstate_global->__pyx_n_s_channel_credentials
#define __pyx_n_s_channel_credentials_alts __pyx_mstate_global->__pyx_n_s_channel_credentials_alts
#define __pyx_n_s_channel_credentials_compute_engi __pyx_mstate_global->__pyx_n_s_channel_credentials_compute_engi
#define __pyx_n_s_channel_credentials_insecure __pyx_mstate_global->__pyx_n_s_channel_credentials_insecure
#define __pyx_n_s_channel_credentials_local __pyx_mstate_global->__pyx_n_s_channel_credentials_local
#define __pyx_n_s_channel_id __pyx_mstate_global->__pyx_n_s_channel_id
#define __pyx_n_s_channel_state __pyx_mstate_global->__pyx_n_s_channel_state
#define __pyx_n_s_channels __pyx_mstate_global->__pyx_n_s_channels
#define __pyx_n_s_channelz_get_channel __pyx_mstate_global->__pyx_n_s_channelz_get_channel
#define __pyx_n_s_channelz_get_server __pyx_mstate_global->__pyx_n_s_channelz_get_server
#define __pyx_n_s_channelz_get_server_sockets __pyx_mstate_global->__pyx_n_s_channelz_get_server_sockets
#define __pyx_n_s_channelz_get_servers __pyx_mstate_global->__pyx_n_s_channelz_get_servers
#define __pyx_n_s_channelz_get_socket __pyx_mstate_global->__pyx_n_s_channelz_get_socket
#define __pyx_n_s_channelz_get_subchannel __pyx_mstate_global->__pyx_n_s_channelz_get_subchannel
#define __pyx_n_s_channelz_get_top_channels __pyx_mstate_global->__pyx_n_s_channelz_get_top_channels
#define __pyx_n_s_check_before_request_call __pyx_mstate_global->__pyx_n_s_check_before_request_call
#define __pyx_n_s_check_connectivity_state __pyx_mstate_global->__pyx_n_s_check_connectivity_state
#define __pyx_n_s_class __pyx_mstate_global->__pyx_n_s_class
#define __pyx_n_s_class_getitem __pyx_mstate_global->__pyx_n_s_class_getitem
#define __pyx_n_s_clear __pyx_mstate_global->__pyx_n_s_clear
#define __pyx_n_s_clear_server_call_tracer_factory __pyx_mstate_global->__pyx_n_s_clear_server_call_tracer_factory
#define __pyx_n_s_client_config_in_slice __pyx_mstate_global->__pyx_n_s_client_config_in_slice
#define __pyx_n_s_cline_in_traceback __pyx_mstate_global->__pyx_n_s_cline_in_traceback
#define __pyx_n_s_close __pyx_mstate_global->__pyx_n_s_close
#define __pyx_n_s_close_on_fork __pyx_mstate_global->__pyx_n_s_close_on_fork
#define __pyx_n_s_close_on_fork_2 __pyx_mstate_global->__pyx_n_s_close_on_fork_2
#define __pyx_n_s_closed __pyx_mstate_global->__pyx_n_s_closed
#define __pyx_n_s_closing __pyx_mstate_global->__pyx_n_s_closing
#define __pyx_n_s_code __pyx_mstate_global->__pyx_n_s_code
#define __pyx_n_s_codecs __pyx_mstate_global->__pyx_n_s_codecs
#define __pyx_n_s_collections __pyx_mstate_global->__pyx_n_s_collections
#define __pyx_n_s_common __pyx_mstate_global->__pyx_n_s_common
#define __pyx_n_s_completion_type __pyx_mstate_global->__pyx_n_s_completion_type
#define __pyx_n_s_compression __pyx_mstate_global->__pyx_n_s_compression
#define __pyx_n_s_compression_algorithm_name __pyx_mstate_global->__pyx_n_s_compression_algorithm_name
#define __pyx_n_s_concurrency_exceeded __pyx_mstate_global->__pyx_n_s_concurrency_exceeded
#define __pyx_n_s_condition __pyx_mstate_global->__pyx_n_s_condition
#define __pyx_n_s_connecting __pyx_mstate_global->__pyx_n_s_connecting
#define __pyx_n_s_context __pyx_mstate_global->__pyx_n_s_context
#define __pyx_n_s_context_loop __pyx_mstate_global->__pyx_n_s_context_loop
#define __pyx_n_s_contextvars __pyx_mstate_global->__pyx_n_s_contextvars
#define __pyx_n_s_contextvars_supported __pyx_mstate_global->__pyx_n_s_contextvars_supported
#define __pyx_n_s_continuation __pyx_mstate_global->__pyx_n_s_continuation
#define __pyx_n_s_copy __pyx_mstate_global->__pyx_n_s_copy
#define __pyx_n_s_copy_context __pyx_mstate_global->__pyx_n_s_copy_context
#define __pyx_n_s_core_function_name __pyx_mstate_global->__pyx_n_s_core_function_name
#define __pyx_n_s_coro __pyx_mstate_global->__pyx_n_s_coro
#define __pyx_n_s_create_client_call_tracer __pyx_mstate_global->__pyx_n_s_create_client_call_tracer
#define __pyx_n_s_create_future __pyx_mstate_global->__pyx_n_s_create_future
#define __pyx_n_s_create_server_call_tracer_factor __pyx_mstate_global->__pyx_n_s_create_server_call_tracer_factor
#define __pyx_n_s_create_task __pyx_mstate_global->__pyx_n_s_create_task
#define __pyx_n_s_credentials __pyx_mstate_global->__pyx_n_s_credentials
#define __pyx_n_s_credentials_2 __pyx_mstate_global->__pyx_n_s_credentials_2
#define __pyx_kp_s_credentials_roots_pem __pyx_mstate_global->__pyx_kp_s_credentials_roots_pem
#define __pyx_n_s_creds __pyx_mstate_global->__pyx_n_s_creds
#define __pyx_n_s_ctx __pyx_mstate_global->__pyx_n_s_ctx
#define __pyx_n_s_custom_io_manager __pyx_mstate_global->__pyx_n_s_custom_io_manager
#define __pyx_n_s_custom_op_on_c_call __pyx_mstate_global->__pyx_n_s_custom_op_on_c_call
#define __pyx_kp_s_cygrpc __pyx_mstate_global->__pyx_kp_s_cygrpc
#define __pyx_n_s_cython_call_credentials __pyx_mstate_global->__pyx_n_s_cython_call_credentials
#define __pyx_n_s_daemon __pyx_mstate_global->__pyx_n_s_daemon
#define __pyx_n_s_daemonic __pyx_mstate_global->__pyx_n_s_daemonic
#define __pyx_n_s_data __pyx_mstate_global->__pyx_n_s_data
#define __pyx_n_s_data_loss __pyx_mstate_global->__pyx_n_s_data_loss
#define __pyx_n_s_deadline __pyx_mstate_global->__pyx_n_s_deadline
#define __pyx_n_s_deadline_exceeded __pyx_mstate_global->__pyx_n_s_deadline_exceeded
#define __pyx_kp_s_dealloc___called_on_running_se __pyx_mstate_global->__pyx_kp_s_dealloc___called_on_running_se
#define __pyx_n_s_debug __pyx_mstate_global->__pyx_n_s_debug
#define __pyx_n_s_debug_error_string __pyx_mstate_global->__pyx_n_s_debug_error_string
#define __pyx_n_s_decode __pyx_mstate_global->__pyx_n_s_decode
#define __pyx_n_s_decrease_active_rpcs_count __pyx_mstate_global->__pyx_n_s_decrease_active_rpcs_count
#define __pyx_n_s_decrease_once_finished __pyx_mstate_global->__pyx_n_s_decrease_once_finished
#define __pyx_n_s_decrement __pyx_mstate_global->__pyx_n_s_decrement
#define __pyx_n_s_default_authority __pyx_mstate_global->__pyx_n_s_default_authority
#define __pyx_n_s_default_vtable __pyx_mstate_global->__pyx_n_s_default_vtable
#define __pyx_n_s_deflate __pyx_mstate_global->__pyx_n_s_deflate
#define __pyx_n_s_destroy __pyx_mstate_global->__pyx_n_s_destroy
#define __pyx_n_s_details __pyx_mstate_global->__pyx_n_s_details
#define __pyx_n_s_details_bytes __pyx_mstate_global->__pyx_n_s_details_bytes
#define __pyx_n_s_dict __pyx_mstate_global->__pyx_n_s_dict
#define __pyx_n_s_dict_2 __pyx_mstate_global->__pyx_n_s_dict_2
#define __pyx_kp_u_disable __pyx_mstate_global->__pyx_kp_u_disable
#define __pyx_n_s_disable_algorithm __pyx_mstate_global->__pyx_n_s_disable_algorithm
#define __pyx_n_s_disable_next_message_compression __pyx_mstate_global->__pyx_n_s_disable_next_message_compression
#define __pyx_n_s_discard __pyx_mstate_global->__pyx_n_s_discard
#define __pyx_n_s_doc __pyx_mstate_global->__pyx_n_s_doc
#define __pyx_n_s_done __pyx_mstate_global->__pyx_n_s_done
#define __pyx_n_s_dump_xds_configs __pyx_mstate_global->__pyx_n_s_dump_xds_configs
#define __pyx_n_s_e __pyx_mstate_global->__pyx_n_s_e
#define __pyx_kp_u_enable __pyx_mstate_global->__pyx_kp_u_enable
#define __pyx_n_s_enable_algorithm __pyx_mstate_global->__pyx_n_s_enable_algorithm
#define __pyx_n_s_enable_census __pyx_mstate_global->__pyx_n_s_enable_census
#define __pyx_n_s_encode __pyx_mstate_global->__pyx_n_s_encode
#define __pyx_n_s_end_time __pyx_mstate_global->__pyx_n_s_end_time
#define __pyx_n_s_endswith __pyx_mstate_global->__pyx_n_s_endswith
#define __pyx_n_s_enter __pyx_mstate_global->__pyx_n_s_enter
#define __pyx_n_s_enter_user_request_generator __pyx_mstate_global->__pyx_n_s_enter_user_request_generator
#define __pyx_n_s_enum __pyx_mstate_global->__pyx_n_s_enum
#define __pyx_n_s_enumerate __pyx_mstate_global->__pyx_n_s_enumerate
#define __pyx_n_s_environ __pyx_mstate_global->__pyx_n_s_environ
#define __pyx_n_s_errno __pyx_mstate_global->__pyx_n_s_errno
#define __pyx_n_s_error __pyx_mstate_global->__pyx_n_s_error
#define __pyx_n_s_error_code __pyx_mstate_global->__pyx_n_s_error_code
#define __pyx_n_s_error_details __pyx_mstate_global->__pyx_n_s_error_details
#define __pyx_n_s_error_str __pyx_mstate_global->__pyx_n_s_error_str
#define __pyx_n_s_error_string __pyx_mstate_global->__pyx_n_s_error_string
#define __pyx_n_s_event __pyx_mstate_global->__pyx_n_s_event
#define __pyx_n_s_exc_info __pyx_mstate_global->__pyx_n_s_exc_info
#define __pyx_n_s_exception __pyx_mstate_global->__pyx_n_s_exception
#define __pyx_n_s_exception_type __pyx_mstate_global->__pyx_n_s_exception_type
#define __pyx_n_s_execute_batch __pyx_mstate_global->__pyx_n_s_execute_batch
#define __pyx_n_s_exit __pyx_mstate_global->__pyx_n_s_exit
#define __pyx_n_s_exit_2 __pyx_mstate_global->__pyx_n_s_exit_2
#define __pyx_kp_s_expected_certificate_to_be_bytes __pyx_mstate_global->__pyx_kp_s_expected_certificate_to_be_bytes
#define __pyx_kp_s_expected_pem_key_cert_pairs_to_b __pyx_mstate_global->__pyx_kp_s_expected_pem_key_cert_pairs_to_b
#define __pyx_kp_s_expected_registered_completion_q __pyx_mstate_global->__pyx_kp_s_expected_registered_completion_q
#define __pyx_n_s_failed_precondition __pyx_mstate_global->__pyx_n_s_failed_precondition
#define __pyx_n_s_failure_handler __pyx_mstate_global->__pyx_n_s_failure_handler
#define __pyx_n_s_fallback_credentials __pyx_mstate_global->__pyx_n_s_fallback_credentials
#define __pyx_n_s_fileno __pyx_mstate_global->__pyx_n_s_fileno
#define __pyx_n_s_find_method_handler __pyx_mstate_global->__pyx_n_s_find_method_handler
#define __pyx_n_s_find_method_handler_locals_quer __pyx_mstate_global->__pyx_n_s_find_method_handler_locals_quer
#define __pyx_n_s_finish_handler_with_stream_resp __pyx_mstate_global->__pyx_n_s_finish_handler_with_stream_resp
#define __pyx_n_s_finish_handler_with_unary_respo __pyx_mstate_global->__pyx_n_s_finish_handler_with_unary_respo
#define __pyx_n_s_finish_ops __pyx_mstate_global->__pyx_n_s_finish_ops
#define __pyx_n_s_flags __pyx_mstate_global->__pyx_n_s_flags
#define __pyx_n_s_fn __pyx_mstate_global->__pyx_n_s_fn
#define __pyx_n_s_force_client_auth __pyx_mstate_global->__pyx_n_s_force_client_auth
#define __pyx_n_s_fork_epoch __pyx_mstate_global->__pyx_n_s_fork_epoch
#define __pyx_n_s_fork_handler_failed __pyx_mstate_global->__pyx_n_s_fork_handler_failed
#define __pyx_n_s_fork_handler_registered __pyx_mstate_global->__pyx_n_s_fork_handler_registered
#define __pyx_n_s_fork_handler_registered_lock __pyx_mstate_global->__pyx_n_s_fork_handler_registered_lock
#define __pyx_n_s_fork_handlers_and_grpc_init __pyx_mstate_global->__pyx_n_s_fork_handlers_and_grpc_init
#define __pyx_n_s_fork_in_progress __pyx_mstate_global->__pyx_n_s_fork_in_progress
#define __pyx_n_s_fork_in_progress_condition __pyx_mstate_global->__pyx_n_s_fork_in_progress_condition
#define __pyx_n_s_fork_register_channel __pyx_mstate_global->__pyx_n_s_fork_register_channel
#define __pyx_n_s_fork_state __pyx_mstate_global->__pyx_n_s_fork_state
#define __pyx_n_s_fork_unregister_channel __pyx_mstate_global->__pyx_n_s_fork_unregister_channel
#define __pyx_n_s_format __pyx_mstate_global->__pyx_n_s_format
#define __pyx_n_s_format_exception __pyx_mstate_global->__pyx_n_s_format_exception
#define __pyx_n_s_fully_qualified_method __pyx_mstate_global->__pyx_n_s_fully_qualified_method
#define __pyx_n_s_functools __pyx_mstate_global->__pyx_n_s_functools
#define __pyx_n_s_future __pyx_mstate_global->__pyx_n_s_future
#define __pyx_n_s_g_gevent_activated __pyx_mstate_global->__pyx_n_s_g_gevent_activated
#define __pyx_n_s_g_gevent_pool __pyx_mstate_global->__pyx_n_s_g_gevent_pool
#define __pyx_n_s_g_gevent_threadpool __pyx_mstate_global->__pyx_n_s_g_gevent_threadpool
#define __pyx_n_s_g_interrupt_check_period_ms __pyx_mstate_global->__pyx_n_s_g_interrupt_check_period_ms
#define __pyx_kp_u_gc __pyx_mstate_global->__pyx_kp_u_gc
#define __pyx_n_s_gen __pyx_mstate_global->__pyx_n_s_gen
#define __pyx_n_s_generator_to_async_generator __pyx_mstate_global->__pyx_n_s_generator_to_async_generator
#define __pyx_n_s_generator_to_async_generator_loc __pyx_mstate_global->__pyx_n_s_generator_to_async_generator_loc
#define __pyx_n_s_generic_handler __pyx_mstate_global->__pyx_n_s_generic_handler
#define __pyx_n_s_generic_handlers __pyx_mstate_global->__pyx_n_s_generic_handlers
#define __pyx_n_s_generic_rpc_handlers __pyx_mstate_global->__pyx_n_s_generic_rpc_handlers
#define __pyx_n_s_genexpr __pyx_mstate_global->__pyx_n_s_genexpr
#define __pyx_n_s_get __pyx_mstate_global->__pyx_n_s_get
#define __pyx_n_s_getLogger __pyx_mstate_global->__pyx_n_s_getLogger
#define __pyx_n_s_get_data __pyx_mstate_global->__pyx_n_s_get_data
#define __pyx_n_s_get_deadline_from_context __pyx_mstate_global->__pyx_n_s_get_deadline_from_context
#define __pyx_n_s_get_event_loop __pyx_mstate_global->__pyx_n_s_get_event_loop
#define __pyx_n_s_get_event_loop_policy __pyx_mstate_global->__pyx_n_s_get_event_loop_policy
#define __pyx_n_s_get_fork_epoch __pyx_mstate_global->__pyx_n_s_get_fork_epoch
#define __pyx_n_s_get_hub __pyx_mstate_global->__pyx_n_s_get_hub
#define __pyx_n_s_get_metadata_locals_callback __pyx_mstate_global->__pyx_n_s_get_metadata_locals_callback
#define __pyx_n_s_get_plugin __pyx_mstate_global->__pyx_n_s_get_plugin
#define __pyx_n_s_get_registered_call_handle __pyx_mstate_global->__pyx_n_s_get_registered_call_handle
#define __pyx_n_s_get_running_loop __pyx_mstate_global->__pyx_n_s_get_running_loop
#define __pyx_n_s_get_server_call_tracer_factory_a __pyx_mstate_global->__pyx_n_s_get_server_call_tracer_factory_a
#define __pyx_n_s_get_working_loop __pyx_mstate_global->__pyx_n_s_get_working_loop
#define __pyx_n_s_getstate __pyx_mstate_global->__pyx_n_s_getstate
#define __pyx_n_s_gevent __pyx_mstate_global->__pyx_n_s_gevent
#define __pyx_n_s_gevent_decrement_channel_count __pyx_mstate_global->__pyx_n_s_gevent_decrement_channel_count
#define __pyx_n_s_gevent_hub __pyx_mstate_global->__pyx_n_s_gevent_hub
#define __pyx_n_s_gevent_increment_channel_count __pyx_mstate_global->__pyx_n_s_gevent_increment_channel_count
#define __pyx_n_s_gevent_pool __pyx_mstate_global->__pyx_n_s_gevent_pool
#define __pyx_n_s_grace __pyx_mstate_global->__pyx_n_s_grace
#define __pyx_n_s_grpc __pyx_mstate_global->__pyx_n_s_grpc
#define __pyx_n_s_grpc__cython_cygrpc __pyx_mstate_global->__pyx_n_s_grpc__cython_cygrpc
#define __pyx_kp_s_grpc_aio_EOF __pyx_mstate_global->__pyx_kp_s_grpc_aio_EOF
#define __pyx_n_s_grpc_call_error_string __pyx_mstate_global->__pyx_n_s_grpc_call_error_string
#define __pyx_n_s_grpc_call_wrapper __pyx_mstate_global->__pyx_n_s_grpc_call_wrapper
#define __pyx_n_s_grpc_completion_queue_shutdown __pyx_mstate_global->__pyx_n_s_grpc_completion_queue_shutdown
#define __pyx_kp_s_grpc_python__cygrpc__GrpcArgWrap __pyx_mstate_global->__pyx_kp_s_grpc_python__cygrpc__GrpcArgWrap
#define __pyx_n_s_grpc_server_request_call __pyx_mstate_global->__pyx_n_s_grpc_server_request_call
#define __pyx_n_s_grpc_server_shutdown_and_notify __pyx_mstate_global->__pyx_n_s_grpc_server_shutdown_and_notify
#define __pyx_n_s_grpc_shutdown_wrapper __pyx_mstate_global->__pyx_n_s_grpc_shutdown_wrapper
#define __pyx_n_s_gzip __pyx_mstate_global->__pyx_n_s_gzip
#define __pyx_n_s_handle_callback_wrapper __pyx_mstate_global->__pyx_n_s_handle_callback_wrapper
#define __pyx_n_s_handle_callbacks __pyx_mstate_global->__pyx_n_s_handle_callbacks
#define __pyx_n_s_handle_cancellation_from_core __pyx_mstate_global->__pyx_n_s_handle_cancellation_from_core
#define __pyx_n_s_handle_events __pyx_mstate_global->__pyx_n_s_handle_events
#define __pyx_n_s_handle_exceptions __pyx_mstate_global->__pyx_n_s_handle_exceptions
#define __pyx_n_s_handle_rpc __pyx_mstate_global->__pyx_n_s_handle_rpc
#define __pyx_n_s_handle_status_once_received __pyx_mstate_global->__pyx_n_s_handle_status_once_received
#define __pyx_n_s_handle_stream_stream_rpc __pyx_mstate_global->__pyx_n_s_handle_stream_stream_rpc
#define __pyx_n_s_handle_stream_unary_rpc __pyx_mstate_global->__pyx_n_s_handle_stream_unary_rpc
#define __pyx_n_s_handle_unary_stream_rpc __pyx_mstate_global->__pyx_n_s_handle_unary_stream_rpc
#define __pyx_n_s_handle_unary_unary_rpc __pyx_mstate_global->__pyx_n_s_handle_unary_unary_rpc
#define __pyx_n_s_handler __pyx_mstate_global->__pyx_n_s_handler
#define __pyx_n_s_handler_call_details __pyx_mstate_global->__pyx_n_s_handler_call_details
#define __pyx_n_s_hex_codec __pyx_mstate_global->__pyx_n_s_hex_codec
#define __pyx_n_s_high __pyx_mstate_global->__pyx_n_s_high
#define __pyx_n_s_host __pyx_mstate_global->__pyx_n_s_host
#define __pyx_n_s_http2_initial_sequence_number __pyx_mstate_global->__pyx_n_s_http2_initial_sequence_number
#define __pyx_n_s_hub __pyx_mstate_global->__pyx_n_s_hub
#define __pyx_n_s_id __pyx_mstate_global->__pyx_n_s_id
#define __pyx_n_s_identities __pyx_mstate_global->__pyx_n_s_identities
#define __pyx_n_s_identity __pyx_mstate_global->__pyx_n_s_identity
#define __pyx_n_s_identity_key __pyx_mstate_global->__pyx_n_s_identity_key
#define __pyx_n_s_idle __pyx_mstate_global->__pyx_n_s_idle
#define __pyx_kp_s_if_error_code_is_specified_so_mu __pyx_mstate_global->__pyx_kp_s_if_error_code_is_specified_so_mu
#define __pyx_n_s_import __pyx_mstate_global->__pyx_n_s_import
#define __pyx_n_s_inbound_ops __pyx_mstate_global->__pyx_n_s_inbound_ops
#define __pyx_n_s_increment __pyx_mstate_global->__pyx_n_s_increment
#define __pyx_n_s_init __pyx_mstate_global->__pyx_n_s_init
#define __pyx_n_s_init_grpc_aio __pyx_mstate_global->__pyx_n_s_init_grpc_aio
#define __pyx_n_s_init_grpc_gevent __pyx_mstate_global->__pyx_n_s_init_grpc_gevent
#define __pyx_n_s_init_subclass __pyx_mstate_global->__pyx_n_s_init_subclass
#define __pyx_n_s_initial_cert_config __pyx_mstate_global->__pyx_n_s_initial_cert_config
#define __pyx_kp_s_initial_cert_config_must_be_a_gr __pyx_mstate_global->__pyx_kp_s_initial_cert_config_must_be_a_gr
#define __pyx_n_s_initial_metadata __pyx_mstate_global->__pyx_n_s_initial_metadata
#define __pyx_n_s_initial_metadata_op __pyx_mstate_global->__pyx_n_s_initial_metadata_op
#define __pyx_n_s_initializing __pyx_mstate_global->__pyx_n_s_initializing
#define __pyx_n_s_initiate_stream_stream __pyx_mstate_global->__pyx_n_s_initiate_stream_stream
#define __pyx_n_s_initiate_unary_stream __pyx_mstate_global->__pyx_n_s_initiate_unary_stream
#define __pyx_n_s_insecure_server_credentials __pyx_mstate_global->__pyx_n_s_insecure_server_credentials
#define __pyx_n_s_inspect __pyx_mstate_global->__pyx_n_s_inspect
#define __pyx_n_s_install_context_from_request_cal __pyx_mstate_global->__pyx_n_s_install_context_from_request_cal
#define __pyx_n_s_install_context_from_request_cal_2 __pyx_mstate_global->__pyx_n_s_install_context_from_request_cal_2
#define __pyx_n_s_int __pyx_mstate_global->__pyx_n_s_int
#define __pyx_n_s_integrated_call __pyx_mstate_global->__pyx_n_s_integrated_call
#define __pyx_n_s_integrated_call_locals_on_succe __pyx_mstate_global->__pyx_n_s_integrated_call_locals_on_succe
#define __pyx_n_s_intercept_service __pyx_mstate_global->__pyx_n_s_intercept_service
#define __pyx_n_s_interceptor __pyx_mstate_global->__pyx_n_s_interceptor
#define __pyx_n_s_interceptors __pyx_mstate_global->__pyx_n_s_interceptors
#define __pyx_n_s_internal __pyx_mstate_global->__pyx_n_s_internal
#define __pyx_kp_s_internal_error_user_data_must_be __pyx_mstate_global->__pyx_kp_s_internal_error_user_data_must_be
#define __pyx_n_s_internal_poll __pyx_mstate_global->__pyx_n_s_internal_poll
#define __pyx_n_s_invalid_argument __pyx_mstate_global->__pyx_n_s_invalid_argument
#define __pyx_kp_s_invalid_call_object_cannot_be_us __pyx_mstate_global->__pyx_kp_s_invalid_call_object_cannot_be_us
#define __pyx_n_s_invalid_flags __pyx_mstate_global->__pyx_n_s_invalid_flags
#define __pyx_n_s_invalid_metadata __pyx_mstate_global->__pyx_n_s_invalid_metadata
#define __pyx_n_s_invocation_metadata __pyx_mstate_global->__pyx_n_s_invocation_metadata
#define __pyx_n_s_is_algorithm_enabled __pyx_mstate_global->__pyx_n_s_is_algorithm_enabled
#define __pyx_n_s_is_async_handler __pyx_mstate_global->__pyx_n_s_is_async_handler
#define __pyx_n_s_is_coroutine __pyx_mstate_global->__pyx_n_s_is_coroutine
#define __pyx_n_s_is_fork_support_enabled __pyx_mstate_global->__pyx_n_s_is_fork_support_enabled
#define __pyx_n_s_is_locally_cancelled __pyx_mstate_global->__pyx_n_s_is_locally_cancelled
#define __pyx_n_s_is_ok __pyx_mstate_global->__pyx_n_s_is_ok
#define __pyx_n_s_is_running __pyx_mstate_global->__pyx_n_s_is_running
#define __pyx_n_s_is_sampled __pyx_mstate_global->__pyx_n_s_is_sampled
#define __pyx_n_s_is_valid __pyx_mstate_global->__pyx_n_s_is_valid
#define __pyx_n_s_isasyncgenfunction __pyx_mstate_global->__pyx_n_s_isasyncgenfunction
#define __pyx_n_s_isawaitable __pyx_mstate_global->__pyx_n_s_isawaitable
#define __pyx_n_s_iscoroutinefunction __pyx_mstate_global->__pyx_n_s_iscoroutinefunction
#define __pyx_kp_u_isenabled __pyx_mstate_global->__pyx_kp_u_isenabled
#define __pyx_n_s_item __pyx_mstate_global->__pyx_n_s_item
#define __pyx_n_s_iter __pyx_mstate_global->__pyx_n_s_iter
#define __pyx_n_s_join __pyx_mstate_global->__pyx_n_s_join
#define __pyx_n_s_key __pyx_mstate_global->__pyx_n_s_key
#define __pyx_n_s_keys __pyx_mstate_global->__pyx_n_s_keys
#define __pyx_n_s_last_observed_state __pyx_mstate_global->__pyx_n_s_last_observed_state
#define __pyx_n_s_latent_event_arg __pyx_mstate_global->__pyx_n_s_latent_event_arg
#define __pyx_n_s_len __pyx_mstate_global->__pyx_n_s_len
#define __pyx_n_s_lk __pyx_mstate_global->__pyx_n_s_lk
#define __pyx_n_s_local_connect_type __pyx_mstate_global->__pyx_n_s_local_connect_type
#define __pyx_n_s_local_tcp __pyx_mstate_global->__pyx_n_s_local_tcp
#define __pyx_n_s_logging __pyx_mstate_global->__pyx_n_s_logging
#define __pyx_n_s_loop __pyx_mstate_global->__pyx_n_s_loop
#define __pyx_n_s_low __pyx_mstate_global->__pyx_n_s_low
#define __pyx_n_s_lower __pyx_mstate_global->__pyx_n_s_lower
#define __pyx_n_s_main __pyx_mstate_global->__pyx_n_s_main
#define __pyx_n_s_managed_target __pyx_mstate_global->__pyx_n_s_managed_target
#define __pyx_n_s_max_concurrent_streams __pyx_mstate_global->__pyx_n_s_max_concurrent_streams
#define __pyx_n_s_max_receive_message_length __pyx_mstate_global->__pyx_n_s_max_receive_message_length
#define __pyx_n_s_max_results __pyx_mstate_global->__pyx_n_s_max_results
#define __pyx_n_s_max_send_message_length __pyx_mstate_global->__pyx_n_s_max_send_message_length
#define __pyx_n_s_maximum_concurrent_rpcs __pyx_mstate_global->__pyx_n_s_maximum_concurrent_rpcs
#define __pyx_kp_s_maximum_concurrent_rpcs_should_b __pyx_mstate_global->__pyx_kp_s_maximum_concurrent_rpcs_should_b
#define __pyx_n_s_maxsize __pyx_mstate_global->__pyx_n_s_maxsize
#define __pyx_n_s_maybe_save_server_trace_context __pyx_mstate_global->__pyx_n_s_maybe_save_server_trace_context
#define __pyx_n_s_medium __pyx_mstate_global->__pyx_n_s_medium
#define __pyx_n_s_members __pyx_mstate_global->__pyx_n_s_members
#define __pyx_n_s_message __pyx_mstate_global->__pyx_n_s_message
#define __pyx_n_s_metaclass __pyx_mstate_global->__pyx_n_s_metaclass
#define __pyx_n_s_metadata __pyx_mstate_global->__pyx_n_s_metadata
#define __pyx_n_s_metadata_locals_genexpr __pyx_mstate_global->__pyx_n_s_metadata_locals_genexpr
#define __pyx_n_s_metadata_plugin __pyx_mstate_global->__pyx_n_s_metadata_plugin
#define __pyx_n_s_metadata_sent_observer __pyx_mstate_global->__pyx_n_s_metadata_sent_observer
#define __pyx_kp_s_metadata_was_invalid_s __pyx_mstate_global->__pyx_kp_s_metadata_was_invalid_s
#define __pyx_n_s_method __pyx_mstate_global->__pyx_n_s_method
#define __pyx_n_s_method_bytes __pyx_mstate_global->__pyx_n_s_method_bytes
#define __pyx_n_s_method_handler __pyx_mstate_global->__pyx_n_s_method_handler
#define __pyx_n_s_module __pyx_mstate_global->__pyx_n_s_module
#define __pyx_n_s_mro_entries __pyx_mstate_global->__pyx_n_s_mro_entries
#define __pyx_n_s_name __pyx_mstate_global->__pyx_n_s_name
#define __pyx_n_s_name_2 __pyx_mstate_global->__pyx_n_s_name_2
#define __pyx_n_s_namedtuple __pyx_mstate_global->__pyx_n_s_namedtuple
#define __pyx_n_s_new __pyx_mstate_global->__pyx_n_s_new
#define __pyx_n_s_new_event_loop __pyx_mstate_global->__pyx_n_s_new_event_loop
#define __pyx_n_s_next_call_event __pyx_mstate_global->__pyx_n_s_next_call_event
#define __pyx_n_s_next_call_event_locals_on_succes __pyx_mstate_global->__pyx_n_s_next_call_event_locals_on_succes
#define __pyx_n_s_next_event __pyx_mstate_global->__pyx_n_s_next_event
#define __pyx_n_s_next_event_locals_on_failure __pyx_mstate_global->__pyx_n_s_next_event_locals_on_failure
#define __pyx_n_s_next_event_locals_on_success __pyx_mstate_global->__pyx_n_s_next_event_locals_on_success
#define __pyx_n_s_no_compress __pyx_mstate_global->__pyx_n_s_no_compress
#define __pyx_kp_s_no_default___reduce___due_to_non __pyx_mstate_global->__pyx_kp_s_no_default___reduce___due_to_non
#define __pyx_n_s_none __pyx_mstate_global->__pyx_n_s_none
#define __pyx_n_s_not_found __pyx_mstate_global->__pyx_n_s_not_found
#define __pyx_n_s_not_invoked __pyx_mstate_global->__pyx_n_s_not_invoked
#define __pyx_n_s_not_on_client __pyx_mstate_global->__pyx_n_s_not_on_client
#define __pyx_n_s_not_on_server __pyx_mstate_global->__pyx_n_s_not_on_server
#define __pyx_n_s_notify_all __pyx_mstate_global->__pyx_n_s_notify_all
#define __pyx_n_s_num_active_threads __pyx_mstate_global->__pyx_n_s_num_active_threads
#define __pyx_n_s_object __pyx_mstate_global->__pyx_n_s_object
#define __pyx_kp_s_object_2 __pyx_mstate_global->__pyx_kp_s_object_2
#define __pyx_n_s_observability __pyx_mstate_global->__pyx_n_s_observability
#define __pyx_n_s_observability_enabled __pyx_mstate_global->__pyx_n_s_observability_enabled
#define __pyx_n_s_observability_plugin __pyx_mstate_global->__pyx_n_s_observability_plugin
#define __pyx_kp_s_of_RPC_that_terminated_with_sta __pyx_mstate_global->__pyx_kp_s_of_RPC_that_terminated_with_sta
#define __pyx_kp_s_of_RPC_that_terminated_with_sta_2 __pyx_mstate_global->__pyx_kp_s_of_RPC_that_terminated_with_sta_2
#define __pyx_n_s_ok __pyx_mstate_global->__pyx_n_s_ok
#define __pyx_n_s_on_failure __pyx_mstate_global->__pyx_n_s_on_failure
#define __pyx_n_s_on_success __pyx_mstate_global->__pyx_n_s_on_success
#define __pyx_n_s_op __pyx_mstate_global->__pyx_n_s_op
#define __pyx_n_s_operate __pyx_mstate_global->__pyx_n_s_operate
#define __pyx_n_s_operation_complete __pyx_mstate_global->__pyx_n_s_operation_complete
#define __pyx_n_s_operations __pyx_mstate_global->__pyx_n_s_operations
#define __pyx_n_s_operationses_and_tags __pyx_mstate_global->__pyx_n_s_operationses_and_tags
#define __pyx_n_s_ops __pyx_mstate_global->__pyx_n_s_ops
#define __pyx_n_s_options __pyx_mstate_global->__pyx_n_s_options
#define __pyx_n_s_os __pyx_mstate_global->__pyx_n_s_os
#define __pyx_n_s_out_of_range __pyx_mstate_global->__pyx_n_s_out_of_range
#define __pyx_n_s_outbound_initial_metadata __pyx_mstate_global->__pyx_n_s_outbound_initial_metadata
#define __pyx_n_s_outbound_ops __pyx_mstate_global->__pyx_n_s_outbound_ops
#define __pyx_n_s_partial __pyx_mstate_global->__pyx_n_s_partial
#define __pyx_n_s_peer __pyx_mstate_global->__pyx_n_s_peer
#define __pyx_n_s_peer_identities __pyx_mstate_global->__pyx_n_s_peer_identities
#define __pyx_n_s_peer_identity_key __pyx_mstate_global->__pyx_n_s_peer_identity_key
#define __pyx_n_s_pem_key_cert_pairs __pyx_mstate_global->__pyx_n_s_pem_key_cert_pairs
#define __pyx_n_s_pem_root_certificates __pyx_mstate_global->__pyx_n_s_pem_root_certificates
#define __pyx_n_s_pem_root_certs __pyx_mstate_global->__pyx_n_s_pem_root_certs
#define __pyx_n_s_permission_denied __pyx_mstate_global->__pyx_n_s_permission_denied
#define __pyx_n_s_pickle __pyx_mstate_global->__pyx_n_s_pickle
#define __pyx_n_s_pkgutil __pyx_mstate_global->__pyx_n_s_pkgutil
#define __pyx_n_s_plugin __pyx_mstate_global->__pyx_n_s_plugin
#define __pyx_n_s_poll __pyx_mstate_global->__pyx_n_s_poll
#define __pyx_n_s_poll_wrapper __pyx_mstate_global->__pyx_n_s_poll_wrapper
#define __pyx_n_s_poller __pyx_mstate_global->__pyx_n_s_poller
#define __pyx_n_s_pool __pyx_mstate_global->__pyx_n_s_pool
#define __pyx_n_s_pop __pyx_mstate_global->__pyx_n_s_pop
#define __pyx_n_s_postfork_state_to_reset __pyx_mstate_global->__pyx_n_s_postfork_state_to_reset
#define __pyx_n_s_postfork_states_to_reset __pyx_mstate_global->__pyx_n_s_postfork_states_to_reset
#define __pyx_n_s_prepare __pyx_mstate_global->__pyx_n_s_prepare
#define __pyx_n_s_primary_user_agent_string __pyx_mstate_global->__pyx_n_s_primary_user_agent_string
#define __pyx_n_s_print_exc __pyx_mstate_global->__pyx_n_s_print_exc
#define __pyx_n_s_private_key __pyx_mstate_global->__pyx_n_s_private_key
#define __pyx_n_s_properties __pyx_mstate_global->__pyx_n_s_properties
#define __pyx_n_s_property __pyx_mstate_global->__pyx_n_s_property
#define __pyx_n_s_put __pyx_mstate_global->__pyx_n_s_put
#define __pyx_n_s_py_auth_context __pyx_mstate_global->__pyx_n_s_py_auth_context
#define __pyx_n_s_python_call_credentials __pyx_mstate_global->__pyx_n_s_python_call_credentials
#define __pyx_n_s_pyx_PickleError __pyx_mstate_global->__pyx_n_s_pyx_PickleError
#define __pyx_n_s_pyx_capi __pyx_mstate_global->__pyx_n_s_pyx_capi
#define __pyx_n_s_pyx_checksum __pyx_mstate_global->__pyx_n_s_pyx_checksum
#define __pyx_n_s_pyx_result __pyx_mstate_global->__pyx_n_s_pyx_result
#define __pyx_n_s_pyx_state __pyx_mstate_global->__pyx_n_s_pyx_state
#define __pyx_n_s_pyx_type __pyx_mstate_global->__pyx_n_s_pyx_type
#define __pyx_n_s_pyx_unpickle_AioServer __pyx_mstate_global->__pyx_n_s_pyx_unpickle_AioServer
#define __pyx_n_s_pyx_unpickle_CensusContext __pyx_mstate_global->__pyx_n_s_pyx_unpickle_CensusContext
#define __pyx_n_s_pyx_unpickle_ChannelCredential __pyx_mstate_global->__pyx_n_s_pyx_unpickle_ChannelCredential
#define __pyx_n_s_pyx_unpickle_InsecureChannelCr __pyx_mstate_global->__pyx_n_s_pyx_unpickle_InsecureChannelCr
#define __pyx_n_s_pyx_unpickle__Tag __pyx_mstate_global->__pyx_n_s_pyx_unpickle__Tag
#define __pyx_n_s_pyx_vtable __pyx_mstate_global->__pyx_n_s_pyx_vtable
#define __pyx_n_s_qualname __pyx_mstate_global->__pyx_n_s_qualname
#define __pyx_n_s_query_call __pyx_mstate_global->__pyx_n_s_query_call
#define __pyx_n_s_query_handler __pyx_mstate_global->__pyx_n_s_query_handler
#define __pyx_n_s_query_handlers __pyx_mstate_global->__pyx_n_s_query_handlers
#define __pyx_n_s_queue __pyx_mstate_global->__pyx_n_s_queue
#define __pyx_n_s_queue_deadline __pyx_mstate_global->__pyx_n_s_queue_deadline
#define __pyx_kp_s_queue_must_be_live __pyx_mstate_global->__pyx_kp_s_queue_must_be_live
#define __pyx_kp_s_queue_must_be_shutting_down_to_b __pyx_mstate_global->__pyx_kp_s_queue_must_be_shutting_down_to_b
#define __pyx_n_s_queue_shutdown __pyx_mstate_global->__pyx_n_s_queue_shutdown
#define __pyx_n_s_queue_timeout __pyx_mstate_global->__pyx_n_s_queue_timeout
#define __pyx_n_s_raise_if_not_valid_trailing_meta __pyx_mstate_global->__pyx_n_s_raise_if_not_valid_trailing_meta
#define __pyx_n_s_range __pyx_mstate_global->__pyx_n_s_range
#define __pyx_n_s_raw_message __pyx_mstate_global->__pyx_n_s_raw_message
#define __pyx_n_s_read __pyx_mstate_global->__pyx_n_s_read
#define __pyx_n_s_read_socket __pyx_mstate_global->__pyx_n_s_read_socket
#define __pyx_n_s_ready __pyx_mstate_global->__pyx_n_s_ready
#define __pyx_n_s_receive_close_on_server __pyx_mstate_global->__pyx_n_s_receive_close_on_server
#define __pyx_n_s_receive_initial_metadata __pyx_mstate_global->__pyx_n_s_receive_initial_metadata
#define __pyx_n_s_receive_initial_metadata_2 __pyx_mstate_global->__pyx_n_s_receive_initial_metadata_2
#define __pyx_n_s_receive_initial_metadata_op __pyx_mstate_global->__pyx_n_s_receive_initial_metadata_op
#define __pyx_n_s_receive_message __pyx_mstate_global->__pyx_n_s_receive_message
#define __pyx_n_s_receive_message_2 __pyx_mstate_global->__pyx_n_s_receive_message_2
#define __pyx_n_s_receive_message_op __pyx_mstate_global->__pyx_n_s_receive_message_op
#define __pyx_n_s_receive_op __pyx_mstate_global->__pyx_n_s_receive_op
#define __pyx_n_s_receive_serialized_message __pyx_mstate_global->__pyx_n_s_receive_serialized_message
#define __pyx_n_s_receive_status_on_client __pyx_mstate_global->__pyx_n_s_receive_status_on_client
#define __pyx_n_s_receive_status_on_client_op __pyx_mstate_global->__pyx_n_s_receive_status_on_client_op
#define __pyx_n_s_received_message __pyx_mstate_global->__pyx_n_s_received_message
#define __pyx_n_s_recv __pyx_mstate_global->__pyx_n_s_recv
#define __pyx_n_s_reduce __pyx_mstate_global->__pyx_n_s_reduce
#define __pyx_n_s_reduce_cython __pyx_mstate_global->__pyx_n_s_reduce_cython
#define __pyx_n_s_reduce_ex __pyx_mstate_global->__pyx_n_s_reduce_ex
#define __pyx_n_s_register __pyx_mstate_global->__pyx_n_s_register
#define __pyx_n_s_register_at_fork __pyx_mstate_global->__pyx_n_s_register_at_fork
#define __pyx_n_s_register_completion_queue __pyx_mstate_global->__pyx_n_s_register_completion_queue
#define __pyx_n_s_register_method __pyx_mstate_global->__pyx_n_s_register_method
#define __pyx_n_s_registered_call_handle __pyx_mstate_global->__pyx_n_s_registered_call_handle
#define __pyx_n_s_registered_method __pyx_mstate_global->__pyx_n_s_registered_method
#define __pyx_n_s_remove_reader __pyx_mstate_global->__pyx_n_s_remove_reader
#define __pyx_n_s_repr __pyx_mstate_global->__pyx_n_s_repr
#define __pyx_n_s_repr_2 __pyx_mstate_global->__pyx_n_s_repr_2
#define __pyx_n_s_request __pyx_mstate_global->__pyx_n_s_request
#define __pyx_n_s_request_call __pyx_mstate_global->__pyx_n_s_request_call
#define __pyx_n_s_request_call_2 __pyx_mstate_global->__pyx_n_s_request_call_2
#define __pyx_n_s_request_call_tag __pyx_mstate_global->__pyx_n_s_request_call_tag
#define __pyx_n_s_request_deserializer __pyx_mstate_global->__pyx_n_s_request_deserializer
#define __pyx_n_s_request_iterator __pyx_mstate_global->__pyx_n_s_request_iterator
#define __pyx_n_s_request_message __pyx_mstate_global->__pyx_n_s_request_message
#define __pyx_n_s_request_raw __pyx_mstate_global->__pyx_n_s_request_raw
#define __pyx_n_s_request_registered_call __pyx_mstate_global->__pyx_n_s_request_registered_call
#define __pyx_n_s_request_streaming __pyx_mstate_global->__pyx_n_s_request_streaming
#define __pyx_n_s_reset_grpc_config_vars __pyx_mstate_global->__pyx_n_s_reset_grpc_config_vars
#define __pyx_n_s_reset_postfork_child __pyx_mstate_global->__pyx_n_s_reset_postfork_child
#define __pyx_n_s_resource_exhausted __pyx_mstate_global->__pyx_n_s_resource_exhausted
#define __pyx_n_s_response __pyx_mstate_global->__pyx_n_s_response
#define __pyx_n_s_response_message __pyx_mstate_global->__pyx_n_s_response_message
#define __pyx_n_s_response_raw __pyx_mstate_global->__pyx_n_s_response_raw
#define __pyx_n_s_response_serializer __pyx_mstate_global->__pyx_n_s_response_serializer
#define __pyx_n_s_response_streaming __pyx_mstate_global->__pyx_n_s_response_streaming
#define __pyx_n_s_result __pyx_mstate_global->__pyx_n_s_result
#define __pyx_n_s_retain_self __pyx_mstate_global->__pyx_n_s_retain_self
#define __pyx_n_s_return __pyx_mstate_global->__pyx_n_s_return
#define __pyx_n_s_return_from_user_request_generat __pyx_mstate_global->__pyx_n_s_return_from_user_request_generat
#define __pyx_n_s_rpc_coro __pyx_mstate_global->__pyx_n_s_rpc_coro
#define __pyx_n_s_rpc_state __pyx_mstate_global->__pyx_n_s_rpc_state
#define __pyx_n_s_rpc_task __pyx_mstate_global->__pyx_n_s_rpc_task
#define __pyx_n_s_rpc_tasks __pyx_mstate_global->__pyx_n_s_rpc_tasks
#define __pyx_n_s_run __pyx_mstate_global->__pyx_n_s_run
#define __pyx_n_s_run_2 __pyx_mstate_global->__pyx_n_s_run_2
#define __pyx_n_s_run_coroutine_threadsafe __pyx_mstate_global->__pyx_n_s_run_coroutine_threadsafe
#define __pyx_n_s_run_in_executor __pyx_mstate_global->__pyx_n_s_run_in_executor
#define __pyx_n_s_run_interceptor __pyx_mstate_global->__pyx_n_s_run_interceptor
#define __pyx_n_s_run_spawn_greenlets __pyx_mstate_global->__pyx_n_s_run_spawn_greenlets
#define __pyx_n_s_run_with_context __pyx_mstate_global->__pyx_n_s_run_with_context
#define __pyx_n_s_run_with_context_locals__run __pyx_mstate_global->__pyx_n_s_run_with_context_locals__run
#define __pyx_n_s_runtime_error __pyx_mstate_global->__pyx_n_s_runtime_error
#define __pyx_n_s_save_registered_method __pyx_mstate_global->__pyx_n_s_save_registered_method
#define __pyx_n_s_save_trace_context __pyx_mstate_global->__pyx_n_s_save_trace_context
#define __pyx_n_s_schedule_coro_threadsafe __pyx_mstate_global->__pyx_n_s_schedule_coro_threadsafe
#define __pyx_n_s_schedule_rpc_coro __pyx_mstate_global->__pyx_n_s_schedule_rpc_coro
#define __pyx_n_s_secondary_user_agent_string __pyx_mstate_global->__pyx_n_s_secondary_user_agent_string
#define __pyx_n_s_segregated_call __pyx_mstate_global->__pyx_n_s_segregated_call
#define __pyx_n_s_segregated_call_locals_on_succe __pyx_mstate_global->__pyx_n_s_segregated_call_locals_on_succe
#define __pyx_n_s_self __pyx_mstate_global->__pyx_n_s_self
#define __pyx_kp_s_self__cq_cannot_be_converted_to __pyx_mstate_global->__pyx_kp_s_self__cq_cannot_be_converted_to
#define __pyx_kp_s_self_arg_cannot_be_converted_to __pyx_mstate_global->__pyx_kp_s_self_arg_cannot_be_converted_to
#define __pyx_kp_s_self_c_argument_cannot_be_conver __pyx_mstate_global->__pyx_kp_s_self_c_argument_cannot_be_conver
#define __pyx_kp_s_self_c_credentials_cannot_be_con __pyx_mstate_global->__pyx_kp_s_self_c_credentials_cannot_be_con
#define __pyx_kp_s_self_c_op_cannot_be_converted_to __pyx_mstate_global->__pyx_kp_s_self_c_op_cannot_be_converted_to
#define __pyx_n_s_send __pyx_mstate_global->__pyx_n_s_send
#define __pyx_n_s_send_close_from_client __pyx_mstate_global->__pyx_n_s_send_close_from_client
#define __pyx_n_s_send_close_op __pyx_mstate_global->__pyx_n_s_send_close_op
#define __pyx_n_s_send_error_status_from_server __pyx_mstate_global->__pyx_n_s_send_error_status_from_server
#define __pyx_n_s_send_initial_metadata __pyx_mstate_global->__pyx_n_s_send_initial_metadata
#define __pyx_n_s_send_initial_metadata_2 __pyx_mstate_global->__pyx_n_s_send_initial_metadata_2
#define __pyx_n_s_send_initial_metadata_op __pyx_mstate_global->__pyx_n_s_send_initial_metadata_op
#define __pyx_n_s_send_message __pyx_mstate_global->__pyx_n_s_send_message
#define __pyx_n_s_send_message_2 __pyx_mstate_global->__pyx_n_s_send_message_2
#define __pyx_n_s_send_message_op __pyx_mstate_global->__pyx_n_s_send_message_op
#define __pyx_n_s_send_receive_close __pyx_mstate_global->__pyx_n_s_send_receive_close
#define __pyx_n_s_send_serialized_message __pyx_mstate_global->__pyx_n_s_send_serialized_message
#define __pyx_n_s_send_status_from_server __pyx_mstate_global->__pyx_n_s_send_status_from_server
#define __pyx_n_s_server __pyx_mstate_global->__pyx_n_s_server
#define __pyx_n_s_server_call_tracer __pyx_mstate_global->__pyx_n_s_server_call_tracer
#define __pyx_n_s_server_certificate_config_ssl __pyx_mstate_global->__pyx_n_s_server_certificate_config_ssl
#define __pyx_n_s_server_credentials __pyx_mstate_global->__pyx_n_s_server_credentials
#define __pyx_n_s_server_credentials_alts __pyx_mstate_global->__pyx_n_s_server_credentials_alts
#define __pyx_n_s_server_credentials_local __pyx_mstate_global->__pyx_n_s_server_credentials_local
#define __pyx_n_s_server_credentials_ssl __pyx_mstate_global->__pyx_n_s_server_credentials_ssl
#define __pyx_n_s_server_credentials_ssl_dynamic_c __pyx_mstate_global->__pyx_n_s_server_credentials_ssl_dynamic_c
#define __pyx_n_s_server_id __pyx_mstate_global->__pyx_n_s_server_id
#define __pyx_n_s_server_main_loop __pyx_mstate_global->__pyx_n_s_server_main_loop
#define __pyx_kp_s_server_must_be_started_and_not_s __pyx_mstate_global->__pyx_kp_s_server_must_be_started_and_not_s
#define __pyx_n_s_server_queue __pyx_mstate_global->__pyx_n_s_server_queue
#define __pyx_kp_s_server_queue_must_be_a_registere __pyx_mstate_global->__pyx_kp_s_server_queue_must_be_a_registere
#define __pyx_n_s_server_started __pyx_mstate_global->__pyx_n_s_server_started
#define __pyx_n_s_service __pyx_mstate_global->__pyx_n_s_service
#define __pyx_n_s_service_accounts __pyx_mstate_global->__pyx_n_s_service_accounts
#define __pyx_n_s_servicer_context __pyx_mstate_global->__pyx_n_s_servicer_context
#define __pyx_n_s_serving_task_crash_handler __pyx_mstate_global->__pyx_n_s_serving_task_crash_handler
#define __pyx_n_s_setDaemon __pyx_mstate_global->__pyx_n_s_setDaemon
#define __pyx_n_s_set_async_callback_func __pyx_mstate_global->__pyx_n_s_set_async_callback_func
#define __pyx_n_s_set_census_context_on_call __pyx_mstate_global->__pyx_n_s_set_census_context_on_call
#define __pyx_n_s_set_code __pyx_mstate_global->__pyx_n_s_set_code
#define __pyx_n_s_set_compression __pyx_mstate_global->__pyx_n_s_set_compression
#define __pyx_n_s_set_credentials __pyx_mstate_global->__pyx_n_s_set_credentials
#define __pyx_n_s_set_details __pyx_mstate_global->__pyx_n_s_set_details
#define __pyx_n_s_set_exception __pyx_mstate_global->__pyx_n_s_set_exception
#define __pyx_n_s_set_instrumentation_context_on_c __pyx_mstate_global->__pyx_n_s_set_instrumentation_context_on_c
#define __pyx_n_s_set_internal_error __pyx_mstate_global->__pyx_n_s_set_internal_error
#define __pyx_n_s_set_name __pyx_mstate_global->__pyx_n_s_set_name
#define __pyx_n_s_set_result __pyx_mstate_global->__pyx_n_s_set_result
#define __pyx_n_s_set_trailing_metadata __pyx_mstate_global->__pyx_n_s_set_trailing_metadata
#define __pyx_n_s_setblocking __pyx_mstate_global->__pyx_n_s_setblocking
#define __pyx_n_s_setstate __pyx_mstate_global->__pyx_n_s_setstate
#define __pyx_n_s_setstate_cython __pyx_mstate_global->__pyx_n_s_setstate_cython
#define __pyx_n_s_shield __pyx_mstate_global->__pyx_n_s_shield
#define __pyx_n_s_shutdown __pyx_mstate_global->__pyx_n_s_shutdown
#define __pyx_n_s_shutdown_await_next_greenlet __pyx_mstate_global->__pyx_n_s_shutdown_await_next_greenlet
#define __pyx_n_s_shutdown_cq __pyx_mstate_global->__pyx_n_s_shutdown_cq
#define __pyx_n_s_shutdown_grpc_aio __pyx_mstate_global->__pyx_n_s_shutdown_grpc_aio
#define __pyx_n_s_shutting_down_server __pyx_mstate_global->__pyx_n_s_shutting_down_server
#define __pyx_n_s_simplefilter __pyx_mstate_global->__pyx_n_s_simplefilter
#define __pyx_n_s_sleep __pyx_mstate_global->__pyx_n_s_sleep
#define __pyx_n_s_socket __pyx_mstate_global->__pyx_n_s_socket
#define __pyx_n_s_socket_id __pyx_mstate_global->__pyx_n_s_socket_id
#define __pyx_n_s_socketpair __pyx_mstate_global->__pyx_n_s_socketpair
#define __pyx_n_s_span_id __pyx_mstate_global->__pyx_n_s_span_id
#define __pyx_n_s_spawn __pyx_mstate_global->__pyx_n_s_spawn
#define __pyx_n_s_spawn_callback_async __pyx_mstate_global->__pyx_n_s_spawn_callback_async
#define __pyx_n_s_spawn_callback_in_thread __pyx_mstate_global->__pyx_n_s_spawn_callback_in_thread
#define __pyx_n_s_spawn_greenlets __pyx_mstate_global->__pyx_n_s_spawn_greenlets
#define __pyx_n_s_spec __pyx_mstate_global->__pyx_n_s_spec
#define __pyx_kp_s_src_python_grpcio_grpc__cython __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython
#define __pyx_kp_s_src_python_grpcio_grpc__cython_10 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_10
#define __pyx_kp_s_src_python_grpcio_grpc__cython_11 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_11
#define __pyx_kp_s_src_python_grpcio_grpc__cython_12 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_12
#define __pyx_kp_s_src_python_grpcio_grpc__cython_13 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_13
#define __pyx_kp_s_src_python_grpcio_grpc__cython_14 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_14
#define __pyx_kp_s_src_python_grpcio_grpc__cython_15 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_15
#define __pyx_kp_s_src_python_grpcio_grpc__cython_16 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_16
#define __pyx_kp_s_src_python_grpcio_grpc__cython_17 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_17
#define __pyx_kp_s_src_python_grpcio_grpc__cython_18 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_18
#define __pyx_kp_s_src_python_grpcio_grpc__cython_19 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_19
#define __pyx_kp_s_src_python_grpcio_grpc__cython_2 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_2
#define __pyx_kp_s_src_python_grpcio_grpc__cython_20 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_20
#define __pyx_kp_s_src_python_grpcio_grpc__cython_21 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_21
#define __pyx_kp_s_src_python_grpcio_grpc__cython_22 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_22
#define __pyx_kp_s_src_python_grpcio_grpc__cython_23 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_23
#define __pyx_kp_s_src_python_grpcio_grpc__cython_3 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_3
#define __pyx_kp_s_src_python_grpcio_grpc__cython_4 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_4
#define __pyx_kp_s_src_python_grpcio_grpc__cython_5 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_5
#define __pyx_kp_s_src_python_grpcio_grpc__cython_6 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_6
#define __pyx_kp_s_src_python_grpcio_grpc__cython_7 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_7
#define __pyx_kp_s_src_python_grpcio_grpc__cython_8 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_8
#define __pyx_kp_s_src_python_grpcio_grpc__cython_9 __pyx_mstate_global->__pyx_kp_s_src_python_grpcio_grpc__cython_9
#define __pyx_n_s_ssl_session_cache __pyx_mstate_global->__pyx_n_s_ssl_session_cache
#define __pyx_n_s_ssl_target_name_override __pyx_mstate_global->__pyx_n_s_ssl_target_name_override
#define __pyx_n_s_start __pyx_mstate_global->__pyx_n_s_start
#define __pyx_n_s_start_batch __pyx_mstate_global->__pyx_n_s_start_batch
#define __pyx_n_s_start_channel_id __pyx_mstate_global->__pyx_n_s_start_channel_id
#define __pyx_n_s_start_client_batch __pyx_mstate_global->__pyx_n_s_start_client_batch
#define __pyx_n_s_start_server_batch __pyx_mstate_global->__pyx_n_s_start_server_batch
#define __pyx_n_s_start_server_id __pyx_mstate_global->__pyx_n_s_start_server_id
#define __pyx_n_s_start_shutting_down __pyx_mstate_global->__pyx_n_s_start_shutting_down
#define __pyx_n_s_start_socket_id __pyx_mstate_global->__pyx_n_s_start_socket_id
#define __pyx_n_s_started_tag __pyx_mstate_global->__pyx_n_s_started_tag
#define __pyx_n_s_started_tags __pyx_mstate_global->__pyx_n_s_started_tags
#define __pyx_n_s_state __pyx_mstate_global->__pyx_n_s_state
#define __pyx_n_s_status __pyx_mstate_global->__pyx_n_s_status
#define __pyx_n_s_status_code __pyx_mstate_global->__pyx_n_s_status_code
#define __pyx_n_s_status_task __pyx_mstate_global->__pyx_n_s_status_task
#define __pyx_n_s_stored_ctx __pyx_mstate_global->__pyx_n_s_stored_ctx
#define __pyx_n_s_str __pyx_mstate_global->__pyx_n_s_str
#define __pyx_n_s_str_2 __pyx_mstate_global->__pyx_n_s_str_2
#define __pyx_n_s_stream_handler __pyx_mstate_global->__pyx_n_s_stream_handler
#define __pyx_n_s_stream_stream __pyx_mstate_global->__pyx_n_s_stream_stream
#define __pyx_n_s_stream_unary __pyx_mstate_global->__pyx_n_s_stream_unary
#define __pyx_kp_s_stringsource __pyx_mstate_global->__pyx_kp_s_stringsource
#define __pyx_n_s_subchannel_id __pyx_mstate_global->__pyx_n_s_subchannel_id
#define __pyx_n_s_success __pyx_mstate_global->__pyx_n_s_success
#define __pyx_n_s_super __pyx_mstate_global->__pyx_n_s_super
#define __pyx_n_s_sync_servicer_context __pyx_mstate_global->__pyx_n_s_sync_servicer_context
#define __pyx_n_s_sys __pyx_mstate_global->__pyx_n_s_sys
#define __pyx_n_s_t __pyx_mstate_global->__pyx_n_s_t
#define __pyx_n_s_tag __pyx_mstate_global->__pyx_n_s_tag
#define __pyx_n_s_target __pyx_mstate_global->__pyx_n_s_target
#define __pyx_n_s_task __pyx_mstate_global->__pyx_n_s_task
#define __pyx_n_s_test __pyx_mstate_global->__pyx_n_s_test
#define __pyx_kp_s_the_server_has_already_started __pyx_mstate_global->__pyx_kp_s_the_server_has_already_started
#define __pyx_kp_s_the_server_hasn_t_started_yet __pyx_mstate_global->__pyx_kp_s_the_server_hasn_t_started_yet
#define __pyx_kp_s_the_server_must_be_shutting_down __pyx_mstate_global->__pyx_kp_s_the_server_must_be_shutting_down
#define __pyx_n_s_thread __pyx_mstate_global->__pyx_n_s_thread
#define __pyx_n_s_thread_pool __pyx_mstate_global->__pyx_n_s_thread_pool
#define __pyx_n_s_threading __pyx_mstate_global->__pyx_n_s_threading
#define __pyx_n_s_threadpool __pyx_mstate_global->__pyx_n_s_threadpool
#define __pyx_n_s_throw __pyx_mstate_global->__pyx_n_s_throw
#define __pyx_n_s_time __pyx_mstate_global->__pyx_n_s_time
#define __pyx_n_s_time_remaining __pyx_mstate_global->__pyx_n_s_time_remaining
#define __pyx_n_s_timeout __pyx_mstate_global->__pyx_n_s_timeout
#define __pyx_n_s_timeout_secs __pyx_mstate_global->__pyx_n_s_timeout_secs
#define __pyx_n_s_to_call __pyx_mstate_global->__pyx_n_s_to_call
#define __pyx_n_s_to_channel_arg __pyx_mstate_global->__pyx_n_s_to_channel_arg
#define __pyx_n_s_too_many_operations __pyx_mstate_global->__pyx_n_s_too_many_operations
#define __pyx_n_s_trace_id __pyx_mstate_global->__pyx_n_s_trace_id
#define __pyx_n_s_traceback __pyx_mstate_global->__pyx_n_s_traceback
#define __pyx_n_s_tracing_enabled __pyx_mstate_global->__pyx_n_s_tracing_enabled
#define __pyx_n_s_trailing_metadata __pyx_mstate_global->__pyx_n_s_trailing_metadata
#define __pyx_n_s_transient_failure __pyx_mstate_global->__pyx_n_s_transient_failure
#define __pyx_n_s_true __pyx_mstate_global->__pyx_n_s_true
#define __pyx_n_s_try_to_connect __pyx_mstate_global->__pyx_n_s_try_to_connect
#define __pyx_n_s_type __pyx_mstate_global->__pyx_n_s_type
#define __pyx_n_s_typing __pyx_mstate_global->__pyx_n_s_typing
#define __pyx_n_s_uds __pyx_mstate_global->__pyx_n_s_uds
#define __pyx_n_s_unary_handler __pyx_mstate_global->__pyx_n_s_unary_handler
#define __pyx_n_s_unary_stream __pyx_mstate_global->__pyx_n_s_unary_stream
#define __pyx_n_s_unary_unary __pyx_mstate_global->__pyx_n_s_unary_unary
#define __pyx_n_s_unauthenticated __pyx_mstate_global->__pyx_n_s_unauthenticated
#define __pyx_n_s_unavailable __pyx_mstate_global->__pyx_n_s_unavailable
#define __pyx_n_s_unimplemented __pyx_mstate_global->__pyx_n_s_unimplemented
#define __pyx_n_s_uninstall_context __pyx_mstate_global->__pyx_n_s_uninstall_context
#define __pyx_n_s_unknown __pyx_mstate_global->__pyx_n_s_unknown
#define __pyx_n_s_unused_future __pyx_mstate_global->__pyx_n_s_unused_future
#define __pyx_n_s_unused_task __pyx_mstate_global->__pyx_n_s_unused_task
#define __pyx_n_s_update __pyx_mstate_global->__pyx_n_s_update
#define __pyx_n_s_upper __pyx_mstate_global->__pyx_n_s_upper
#define __pyx_n_s_use_setstate __pyx_mstate_global->__pyx_n_s_use_setstate
#define __pyx_n_s_used_mask __pyx_mstate_global->__pyx_n_s_used_mask
#define __pyx_n_s_user_tag __pyx_mstate_global->__pyx_n_s_user_tag
#define __pyx_n_s_utf8 __pyx_mstate_global->__pyx_n_s_utf8
#define __pyx_kp_s_utf_8 __pyx_mstate_global->__pyx_kp_s_utf_8
#define __pyx_n_s_value __pyx_mstate_global->__pyx_n_s_value
#define __pyx_n_s_values __pyx_mstate_global->__pyx_n_s_values
#define __pyx_n_s_wait __pyx_mstate_global->__pyx_n_s_wait
#define __pyx_n_s_wait_for __pyx_mstate_global->__pyx_n_s_wait_for
#define __pyx_n_s_wait_for_ready __pyx_mstate_global->__pyx_n_s_wait_for_ready
#define __pyx_n_s_wait_for_ready_explicitly_set __pyx_mstate_global->__pyx_n_s_wait_for_ready_explicitly_set
#define __pyx_n_s_wait_for_termination __pyx_mstate_global->__pyx_n_s_wait_for_termination
#define __pyx_n_s_wait_time __pyx_mstate_global->__pyx_n_s_wait_time
#define __pyx_n_s_warning __pyx_mstate_global->__pyx_n_s_warning
#define __pyx_n_s_warnings __pyx_mstate_global->__pyx_n_s_warnings
#define __pyx_n_s_watch_connectivity_state __pyx_mstate_global->__pyx_n_s_watch_connectivity_state
#define __pyx_n_s_wrap __pyx_mstate_global->__pyx_n_s_wrap
#define __pyx_n_s_wrapper __pyx_mstate_global->__pyx_n_s_wrapper
#define __pyx_n_s_write __pyx_mstate_global->__pyx_n_s_write
#define __pyx_n_s_write_flag __pyx_mstate_global->__pyx_n_s_write_flag
#define __pyx_n_s_xds __pyx_mstate_global->__pyx_n_s_xds
#define __pyx_n_s_xds_server_credentials __pyx_mstate_global->__pyx_n_s_xds_server_credentials
#define __pyx_n_s_yes __pyx_mstate_global->__pyx_n_s_yes
#define __pyx_n_s_yield_to_queue __pyx_mstate_global->__pyx_n_s_yield_to_queue
#define __pyx_float_1_0 __pyx_mstate_global->__pyx_float_1_0
#define __pyx_int_0 __pyx_mstate_global->__pyx_int_0
#define __pyx_int_1 __pyx_mstate_global->__pyx_int_1
#define __pyx_int_2 __pyx_mstate_global->__pyx_int_2
#define __pyx_int_5 __pyx_mstate_global->__pyx_int_5
#define __pyx_int_10 __pyx_mstate_global->__pyx_int_10
#define __pyx_int_1000 __pyx_mstate_global->__pyx_int_1000
#define __pyx_int_1500 __pyx_mstate_global->__pyx_int_1500
#define __pyx_int_118587260 __pyx_mstate_global->__pyx_int_118587260
#define __pyx_int_171381981 __pyx_mstate_global->__pyx_int_171381981
#define __pyx_int_171651213 __pyx_mstate_global->__pyx_int_171651213
#define __pyx_int_222419149 __pyx_mstate_global->__pyx_int_222419149
#define __pyx_int_228825662 __pyx_mstate_global->__pyx_int_228825662
#define __pyx_int_238750788 __pyx_mstate_global->__pyx_int_238750788
#define __pyx_k__9 __pyx_mstate_global->__pyx_k__9
#define __pyx_k__76 __pyx_mstate_global->__pyx_k__76
#define __pyx_k__80 __pyx_mstate_global->__pyx_k__80
#define __pyx_tuple_ __pyx_mstate_global->__pyx_tuple_
#define __pyx_tuple__4 __pyx_mstate_global->__pyx_tuple__4
#define __pyx_tuple__8 __pyx_mstate_global->__pyx_tuple__8
#define __pyx_slice__37 __pyx_mstate_global->__pyx_slice__37
#define __pyx_tuple__10 __pyx_mstate_global->__pyx_tuple__10
#define __pyx_tuple__11 __pyx_mstate_global->__pyx_tuple__11
#define __pyx_tuple__12 __pyx_mstate_global->__pyx_tuple__12
#define __pyx_tuple__14 __pyx_mstate_global->__pyx_tuple__14
#define __pyx_tuple__17 __pyx_mstate_global->__pyx_tuple__17
#define __pyx_tuple__19 __pyx_mstate_global->__pyx_tuple__19
#define __pyx_tuple__21 __pyx_mstate_global->__pyx_tuple__21
#define __pyx_tuple__23 __pyx_mstate_global->__pyx_tuple__23
#define __pyx_tuple__24 __pyx_mstate_global->__pyx_tuple__24
#define __pyx_tuple__25 __pyx_mstate_global->__pyx_tuple__25
#define __pyx_tuple__26 __pyx_mstate_global->__pyx_tuple__26
#define __pyx_tuple__27 __pyx_mstate_global->__pyx_tuple__27
#define __pyx_tuple__28 __pyx_mstate_global->__pyx_tuple__28
#define __pyx_tuple__29 __pyx_mstate_global->__pyx_tuple__29
#define __pyx_tuple__30 __pyx_mstate_global->__pyx_tuple__30
#define __pyx_tuple__31 __pyx_mstate_global->__pyx_tuple__31
#define __pyx_tuple__32 __pyx_mstate_global->__pyx_tuple__32
#define __pyx_tuple__33 __pyx_mstate_global->__pyx_tuple__33
#define __pyx_tuple__34 __pyx_mstate_global->__pyx_tuple__34
#define __pyx_tuple__35 __pyx_mstate_global->__pyx_tuple__35
#define __pyx_tuple__36 __pyx_mstate_global->__pyx_tuple__36
#define __pyx_tuple__39 __pyx_mstate_global->__pyx_tuple__39
#define __pyx_tuple__40 __pyx_mstate_global->__pyx_tuple__40
#define __pyx_tuple__46 __pyx_mstate_global->__pyx_tuple__46
#define __pyx_tuple__48 __pyx_mstate_global->__pyx_tuple__48
#define __pyx_tuple__50 __pyx_mstate_global->__pyx_tuple__50
#define __pyx_tuple__79 __pyx_mstate_global->__pyx_tuple__79
#define __pyx_tuple__83 __pyx_mstate_global->__pyx_tuple__83
#define __pyx_tuple__93 __pyx_mstate_global->__pyx_tuple__93
#define __pyx_tuple__98 __pyx_mstate_global->__pyx_tuple__98
#define __pyx_codeobj__2 __pyx_mstate_global->__pyx_codeobj__2
#define __pyx_codeobj__3 __pyx_mstate_global->__pyx_codeobj__3
#define __pyx_codeobj__5 __pyx_mstate_global->__pyx_codeobj__5
#define __pyx_codeobj__6 __pyx_mstate_global->__pyx_codeobj__6
#define __pyx_tuple__105 __pyx_mstate_global->__pyx_tuple__105
#define __pyx_tuple__106 __pyx_mstate_global->__pyx_tuple__106
#define __pyx_tuple__108 __pyx_mstate_global->__pyx_tuple__108
#define __pyx_tuple__110 __pyx_mstate_global->__pyx_tuple__110
#define __pyx_tuple__116 __pyx_mstate_global->__pyx_tuple__116
#define __pyx_tuple__118 __pyx_mstate_global->__pyx_tuple__118
#define __pyx_tuple__121 __pyx_mstate_global->__pyx_tuple__121
#define __pyx_tuple__123 __pyx_mstate_global->__pyx_tuple__123
#define __pyx_tuple__125 __pyx_mstate_global->__pyx_tuple__125
#define __pyx_tuple__127 __pyx_mstate_global->__pyx_tuple__127
#define __pyx_tuple__138 __pyx_mstate_global->__pyx_tuple__138
#define __pyx_tuple__144 __pyx_mstate_global->__pyx_tuple__144
#define __pyx_tuple__148 __pyx_mstate_global->__pyx_tuple__148
#define __pyx_tuple__150 __pyx_mstate_global->__pyx_tuple__150
#define __pyx_tuple__152 __pyx_mstate_global->__pyx_tuple__152
#define __pyx_tuple__153 __pyx_mstate_global->__pyx_tuple__153
#define __pyx_tuple__156 __pyx_mstate_global->__pyx_tuple__156
#define __pyx_tuple__158 __pyx_mstate_global->__pyx_tuple__158
#define __pyx_tuple__162 __pyx_mstate_global->__pyx_tuple__162
#define __pyx_tuple__166 __pyx_mstate_global->__pyx_tuple__166
#define __pyx_tuple__168 __pyx_mstate_global->__pyx_tuple__168
#define __pyx_tuple__170 __pyx_mstate_global->__pyx_tuple__170
#define __pyx_tuple__172 __pyx_mstate_global->__pyx_tuple__172
#define __pyx_tuple__174 __pyx_mstate_global->__pyx_tuple__174
#define __pyx_tuple__176 __pyx_mstate_global->__pyx_tuple__176
#define __pyx_tuple__178 __pyx_mstate_global->__pyx_tuple__178
#define __pyx_tuple__180 __pyx_mstate_global->__pyx_tuple__180
#define __pyx_tuple__182 __pyx_mstate_global->__pyx_tuple__182
#define __pyx_tuple__184 __pyx_mstate_global->__pyx_tuple__184
#define __pyx_tuple__186 __pyx_mstate_global->__pyx_tuple__186
#define __pyx_tuple__194 __pyx_mstate_global->__pyx_tuple__194
#define __pyx_tuple__209 __pyx_mstate_global->__pyx_tuple__209
#define __pyx_tuple__211 __pyx_mstate_global->__pyx_tuple__211
#define __pyx_tuple__213 __pyx_mstate_global->__pyx_tuple__213
#define __pyx_tuple__217 __pyx_mstate_global->__pyx_tuple__217
#define __pyx_tuple__222 __pyx_mstate_global->__pyx_tuple__222
#define __pyx_tuple__224 __pyx_mstate_global->__pyx_tuple__224
#define __pyx_tuple__226 __pyx_mstate_global->__pyx_tuple__226
#define __pyx_tuple__230 __pyx_mstate_global->__pyx_tuple__230
#define __pyx_tuple__232 __pyx_mstate_global->__pyx_tuple__232
#define __pyx_tuple__236 __pyx_mstate_global->__pyx_tuple__236
#define __pyx_tuple__238 __pyx_mstate_global->__pyx_tuple__238
#define __pyx_tuple__241 __pyx_mstate_global->__pyx_tuple__241
#define __pyx_tuple__254 __pyx_mstate_global->__pyx_tuple__254
#define __pyx_tuple__255 __pyx_mstate_global->__pyx_tuple__255
#define __pyx_tuple__293 __pyx_mstate_global->__pyx_tuple__293
#define __pyx_tuple__296 __pyx_mstate_global->__pyx_tuple__296
#define __pyx_tuple__301 __pyx_mstate_global->__pyx_tuple__301
#define __pyx_tuple__304 __pyx_mstate_global->__pyx_tuple__304
#define __pyx_tuple__306 __pyx_mstate_global->__pyx_tuple__306
#define __pyx_tuple__308 __pyx_mstate_global->__pyx_tuple__308
#define __pyx_tuple__312 __pyx_mstate_global->__pyx_tuple__312
#define __pyx_tuple__314 __pyx_mstate_global->__pyx_tuple__314
#define __pyx_tuple__316 __pyx_mstate_global->__pyx_tuple__316
#define __pyx_tuple__318 __pyx_mstate_global->__pyx_tuple__318
#define __pyx_tuple__320 __pyx_mstate_global->__pyx_tuple__320
#define __pyx_tuple__322 __pyx_mstate_global->__pyx_tuple__322
#define __pyx_tuple__323 __pyx_mstate_global->__pyx_tuple__323
#define __pyx_tuple__325 __pyx_mstate_global->__pyx_tuple__325
#define __pyx_tuple__341 __pyx_mstate_global->__pyx_tuple__341
#define __pyx_tuple__348 __pyx_mstate_global->__pyx_tuple__348
#define __pyx_tuple__352 __pyx_mstate_global->__pyx_tuple__352
#define __pyx_tuple__355 __pyx_mstate_global->__pyx_tuple__355
#define __pyx_tuple__359 __pyx_mstate_global->__pyx_tuple__359
#define __pyx_tuple__362 __pyx_mstate_global->__pyx_tuple__362
#define __pyx_tuple__364 __pyx_mstate_global->__pyx_tuple__364
#define __pyx_tuple__366 __pyx_mstate_global->__pyx_tuple__366
#define __pyx_tuple__368 __pyx_mstate_global->__pyx_tuple__368
#define __pyx_tuple__370 __pyx_mstate_global->__pyx_tuple__370
#define __pyx_tuple__372 __pyx_mstate_global->__pyx_tuple__372
#define __pyx_tuple__374 __pyx_mstate_global->__pyx_tuple__374
#define __pyx_tuple__376 __pyx_mstate_global->__pyx_tuple__376
#define __pyx_tuple__377 __pyx_mstate_global->__pyx_tuple__377
#define __pyx_tuple__378 __pyx_mstate_global->__pyx_tuple__378
#define __pyx_tuple__380 __pyx_mstate_global->__pyx_tuple__380
#define __pyx_tuple__381 __pyx_mstate_global->__pyx_tuple__381
#define __pyx_tuple__385 __pyx_mstate_global->__pyx_tuple__385
#define __pyx_tuple__391 __pyx_mstate_global->__pyx_tuple__391
#define __pyx_tuple__394 __pyx_mstate_global->__pyx_tuple__394
#define __pyx_tuple__395 __pyx_mstate_global->__pyx_tuple__395
#define __pyx_tuple__399 __pyx_mstate_global->__pyx_tuple__399
#define __pyx_tuple__401 __pyx_mstate_global->__pyx_tuple__401
#define __pyx_tuple__402 __pyx_mstate_global->__pyx_tuple__402
#define __pyx_tuple__409 __pyx_mstate_global->__pyx_tuple__409
#define __pyx_tuple__411 __pyx_mstate_global->__pyx_tuple__411
#define __pyx_tuple__412 __pyx_mstate_global->__pyx_tuple__412
#define __pyx_tuple__415 __pyx_mstate_global->__pyx_tuple__415
#define __pyx_tuple__423 __pyx_mstate_global->__pyx_tuple__423
#define __pyx_tuple__430 __pyx_mstate_global->__pyx_tuple__430
#define __pyx_tuple__433 __pyx_mstate_global->__pyx_tuple__433
#define __pyx_tuple__441 __pyx_mstate_global->__pyx_tuple__441
#define __pyx_tuple__442 __pyx_mstate_global->__pyx_tuple__442
#define __pyx_tuple__443 __pyx_mstate_global->__pyx_tuple__443
#define __pyx_tuple__444 __pyx_mstate_global->__pyx_tuple__444
#define __pyx_tuple__445 __pyx_mstate_global->__pyx_tuple__445
#define __pyx_tuple__446 __pyx_mstate_global->__pyx_tuple__446
#define __pyx_tuple__447 __pyx_mstate_global->__pyx_tuple__447
#define __pyx_tuple__450 __pyx_mstate_global->__pyx_tuple__450
#define __pyx_tuple__454 __pyx_mstate_global->__pyx_tuple__454
#define __pyx_tuple__456 __pyx_mstate_global->__pyx_tuple__456
#define __pyx_tuple__459 __pyx_mstate_global->__pyx_tuple__459
#define __pyx_tuple__463 __pyx_mstate_global->__pyx_tuple__463
#define __pyx_tuple__466 __pyx_mstate_global->__pyx_tuple__466
#define __pyx_tuple__468 __pyx_mstate_global->__pyx_tuple__468
#define __pyx_tuple__469 __pyx_mstate_global->__pyx_tuple__469
#define __pyx_tuple__470 __pyx_mstate_global->__pyx_tuple__470
#define __pyx_tuple__471 __pyx_mstate_global->__pyx_tuple__471
#define __pyx_tuple__472 __pyx_mstate_global->__pyx_tuple__472
#define __pyx_tuple__473 __pyx_mstate_global->__pyx_tuple__473
#define __pyx_tuple__474 __pyx_mstate_global->__pyx_tuple__474
#define __pyx_tuple__478 __pyx_mstate_global->__pyx_tuple__478
#define __pyx_tuple__482 __pyx_mstate_global->__pyx_tuple__482
#define __pyx_tuple__490 __pyx_mstate_global->__pyx_tuple__490
#define __pyx_tuple__491 __pyx_mstate_global->__pyx_tuple__491
#define __pyx_tuple__492 __pyx_mstate_global->__pyx_tuple__492
#define __pyx_tuple__493 __pyx_mstate_global->__pyx_tuple__493
#define __pyx_tuple__497 __pyx_mstate_global->__pyx_tuple__497
#define __pyx_tuple__500 __pyx_mstate_global->__pyx_tuple__500
#define __pyx_tuple__503 __pyx_mstate_global->__pyx_tuple__503
#define __pyx_tuple__506 __pyx_mstate_global->__pyx_tuple__506
#define __pyx_tuple__508 __pyx_mstate_global->__pyx_tuple__508
#define __pyx_tuple__510 __pyx_mstate_global->__pyx_tuple__510
#define __pyx_tuple__512 __pyx_mstate_global->__pyx_tuple__512
#define __pyx_tuple__515 __pyx_mstate_global->__pyx_tuple__515
#define __pyx_tuple__521 __pyx_mstate_global->__pyx_tuple__521
#define __pyx_tuple__523 __pyx_mstate_global->__pyx_tuple__523
#define __pyx_tuple__539 __pyx_mstate_global->__pyx_tuple__539
#define __pyx_tuple__540 __pyx_mstate_global->__pyx_tuple__540
#define __pyx_tuple__542 __pyx_mstate_global->__pyx_tuple__542
#define __pyx_tuple__543 __pyx_mstate_global->__pyx_tuple__543
#define __pyx_tuple__544 __pyx_mstate_global->__pyx_tuple__544
#define __pyx_tuple__545 __pyx_mstate_global->__pyx_tuple__545
#define __pyx_tuple__548 __pyx_mstate_global->__pyx_tuple__548
#define __pyx_tuple__549 __pyx_mstate_global->__pyx_tuple__549
#define __pyx_tuple__550 __pyx_mstate_global->__pyx_tuple__550
#define __pyx_tuple__551 __pyx_mstate_global->__pyx_tuple__551
#define __pyx_tuple__552 __pyx_mstate_global->__pyx_tuple__552
#define __pyx_tuple__554 __pyx_mstate_global->__pyx_tuple__554
#define __pyx_tuple__556 __pyx_mstate_global->__pyx_tuple__556
#define __pyx_tuple__560 __pyx_mstate_global->__pyx_tuple__560
#define __pyx_tuple__562 __pyx_mstate_global->__pyx_tuple__562
#define __pyx_tuple__564 __pyx_mstate_global->__pyx_tuple__564
#define __pyx_tuple__566 __pyx_mstate_global->__pyx_tuple__566
#define __pyx_tuple__567 __pyx_mstate_global->__pyx_tuple__567
#define __pyx_tuple__568 __pyx_mstate_global->__pyx_tuple__568
#define __pyx_tuple__570 __pyx_mstate_global->__pyx_tuple__570
#define __pyx_tuple__571 __pyx_mstate_global->__pyx_tuple__571
#define __pyx_tuple__572 __pyx_mstate_global->__pyx_tuple__572
#define __pyx_tuple__576 __pyx_mstate_global->__pyx_tuple__576
#define __pyx_codeobj__13 __pyx_mstate_global->__pyx_codeobj__13
#define __pyx_codeobj__15 __pyx_mstate_global->__pyx_codeobj__15
#define __pyx_codeobj__16 __pyx_mstate_global->__pyx_codeobj__16
#define __pyx_codeobj__18 __pyx_mstate_global->__pyx_codeobj__18
#define __pyx_codeobj__20 __pyx_mstate_global->__pyx_codeobj__20
#define __pyx_codeobj__22 __pyx_mstate_global->__pyx_codeobj__22
#define __pyx_codeobj__41 __pyx_mstate_global->__pyx_codeobj__41
#define __pyx_codeobj__42 __pyx_mstate_global->__pyx_codeobj__42
#define __pyx_codeobj__43 __pyx_mstate_global->__pyx_codeobj__43
#define __pyx_codeobj__44 __pyx_mstate_global->__pyx_codeobj__44
#define __pyx_codeobj__45 __pyx_mstate_global->__pyx_codeobj__45
#define __pyx_codeobj__47 __pyx_mstate_global->__pyx_codeobj__47
#define __pyx_codeobj__51 __pyx_mstate_global->__pyx_codeobj__51
#define __pyx_codeobj__52 __pyx_mstate_global->__pyx_codeobj__52
#define __pyx_codeobj__53 __pyx_mstate_global->__pyx_codeobj__53
#define __pyx_codeobj__54 __pyx_mstate_global->__pyx_codeobj__54
#define __pyx_codeobj__55 __pyx_mstate_global->__pyx_codeobj__55
#define __pyx_codeobj__56 __pyx_mstate_global->__pyx_codeobj__56
#define __pyx_codeobj__59 __pyx_mstate_global->__pyx_codeobj__59
#define __pyx_codeobj__60 __pyx_mstate_global->__pyx_codeobj__60
#define __pyx_codeobj__61 __pyx_mstate_global->__pyx_codeobj__61
#define __pyx_codeobj__62 __pyx_mstate_global->__pyx_codeobj__62
#define __pyx_codeobj__63 __pyx_mstate_global->__pyx_codeobj__63
#define __pyx_codeobj__64 __pyx_mstate_global->__pyx_codeobj__64
#define __pyx_codeobj__65 __pyx_mstate_global->__pyx_codeobj__65
#define __pyx_codeobj__66 __pyx_mstate_global->__pyx_codeobj__66
#define __pyx_codeobj__67 __pyx_mstate_global->__pyx_codeobj__67
#define __pyx_codeobj__68 __pyx_mstate_global->__pyx_codeobj__68
#define __pyx_codeobj__72 __pyx_mstate_global->__pyx_codeobj__72
#define __pyx_codeobj__73 __pyx_mstate_global->__pyx_codeobj__73
#define __pyx_codeobj__74 __pyx_mstate_global->__pyx_codeobj__74
#define __pyx_codeobj__75 __pyx_mstate_global->__pyx_codeobj__75
#define __pyx_codeobj__77 __pyx_mstate_global->__pyx_codeobj__77
#define __pyx_codeobj__78 __pyx_mstate_global->__pyx_codeobj__78
#define __pyx_codeobj__81 __pyx_mstate_global->__pyx_codeobj__81
#define __pyx_codeobj__82 __pyx_mstate_global->__pyx_codeobj__82
#define __pyx_codeobj__84 __pyx_mstate_global->__pyx_codeobj__84
#define __pyx_codeobj__85 __pyx_mstate_global->__pyx_codeobj__85
#define __pyx_codeobj__86 __pyx_mstate_global->__pyx_codeobj__86
#define __pyx_codeobj__87 __pyx_mstate_global->__pyx_codeobj__87
#define __pyx_codeobj__88 __pyx_mstate_global->__pyx_codeobj__88
#define __pyx_codeobj__89 __pyx_mstate_global->__pyx_codeobj__89
#define __pyx_codeobj__90 __pyx_mstate_global->__pyx_codeobj__90
#define __pyx_codeobj__91 __pyx_mstate_global->__pyx_codeobj__91
#define __pyx_codeobj__92 __pyx_mstate_global->__pyx_codeobj__92
#define __pyx_codeobj__94 __pyx_mstate_global->__pyx_codeobj__94
#define __pyx_codeobj__95 __pyx_mstate_global->__pyx_codeobj__95
#define __pyx_codeobj__96 __pyx_mstate_global->__pyx_codeobj__96
#define __pyx_codeobj__97 __pyx_mstate_global->__pyx_codeobj__97
#define __pyx_codeobj__99 __pyx_mstate_global->__pyx_codeobj__99
#define __pyx_codeobj__100 __pyx_mstate_global->__pyx_codeobj__100
#define __pyx_codeobj__101 __pyx_mstate_global->__pyx_codeobj__101
#define __pyx_codeobj__102 __pyx_mstate_global->__pyx_codeobj__102
#define __pyx_codeobj__103 __pyx_mstate_global->__pyx_codeobj__103
#define __pyx_codeobj__104 __pyx_mstate_global->__pyx_codeobj__104
#define __pyx_codeobj__109 __pyx_mstate_global->__pyx_codeobj__109
#define __pyx_codeobj__111 __pyx_mstate_global->__pyx_codeobj__111
#define __pyx_codeobj__112 __pyx_mstate_global->__pyx_codeobj__112
#define __pyx_codeobj__113 __pyx_mstate_global->__pyx_codeobj__113
#define __pyx_codeobj__114 __pyx_mstate_global->__pyx_codeobj__114
#define __pyx_codeobj__115 __pyx_mstate_global->__pyx_codeobj__115
#define __pyx_codeobj__117 __pyx_mstate_global->__pyx_codeobj__117
#define __pyx_codeobj__119 __pyx_mstate_global->__pyx_codeobj__119
#define __pyx_codeobj__120 __pyx_mstate_global->__pyx_codeobj__120
#define __pyx_codeobj__122 __pyx_mstate_global->__pyx_codeobj__122
#define __pyx_codeobj__124 __pyx_mstate_global->__pyx_codeobj__124
#define __pyx_codeobj__126 __pyx_mstate_global->__pyx_codeobj__126
#define __pyx_codeobj__128 __pyx_mstate_global->__pyx_codeobj__128
#define __pyx_codeobj__129 __pyx_mstate_global->__pyx_codeobj__129
#define __pyx_codeobj__130 __pyx_mstate_global->__pyx_codeobj__130
#define __pyx_codeobj__131 __pyx_mstate_global->__pyx_codeobj__131
#define __pyx_codeobj__132 __pyx_mstate_global->__pyx_codeobj__132
#define __pyx_codeobj__133 __pyx_mstate_global->__pyx_codeobj__133
#define __pyx_codeobj__134 __pyx_mstate_global->__pyx_codeobj__134
#define __pyx_codeobj__135 __pyx_mstate_global->__pyx_codeobj__135
#define __pyx_codeobj__136 __pyx_mstate_global->__pyx_codeobj__136
#define __pyx_codeobj__137 __pyx_mstate_global->__pyx_codeobj__137
#define __pyx_codeobj__139 __pyx_mstate_global->__pyx_codeobj__139
#define __pyx_codeobj__140 __pyx_mstate_global->__pyx_codeobj__140
#define __pyx_codeobj__141 __pyx_mstate_global->__pyx_codeobj__141
#define __pyx_codeobj__142 __pyx_mstate_global->__pyx_codeobj__142
#define __pyx_codeobj__143 __pyx_mstate_global->__pyx_codeobj__143
#define __pyx_codeobj__145 __pyx_mstate_global->__pyx_codeobj__145
#define __pyx_codeobj__146 __pyx_mstate_global->__pyx_codeobj__146
#define __pyx_codeobj__147 __pyx_mstate_global->__pyx_codeobj__147
#define __pyx_codeobj__149 __pyx_mstate_global->__pyx_codeobj__149
#define __pyx_codeobj__151 __pyx_mstate_global->__pyx_codeobj__151
#define __pyx_codeobj__154 __pyx_mstate_global->__pyx_codeobj__154
#define __pyx_codeobj__155 __pyx_mstate_global->__pyx_codeobj__155
#define __pyx_codeobj__157 __pyx_mstate_global->__pyx_codeobj__157
#define __pyx_codeobj__159 __pyx_mstate_global->__pyx_codeobj__159
#define __pyx_codeobj__160 __pyx_mstate_global->__pyx_codeobj__160
#define __pyx_codeobj__161 __pyx_mstate_global->__pyx_codeobj__161
#define __pyx_codeobj__163 __pyx_mstate_global->__pyx_codeobj__163
#define __pyx_codeobj__164 __pyx_mstate_global->__pyx_codeobj__164
#define __pyx_codeobj__165 __pyx_mstate_global->__pyx_codeobj__165
#define __pyx_codeobj__167 __pyx_mstate_global->__pyx_codeobj__167
#define __pyx_codeobj__169 __pyx_mstate_global->__pyx_codeobj__169
#define __pyx_codeobj__171 __pyx_mstate_global->__pyx_codeobj__171
#define __pyx_codeobj__173 __pyx_mstate_global->__pyx_codeobj__173
#define __pyx_codeobj__175 __pyx_mstate_global->__pyx_codeobj__175
#define __pyx_codeobj__177 __pyx_mstate_global->__pyx_codeobj__177
#define __pyx_codeobj__179 __pyx_mstate_global->__pyx_codeobj__179
#define __pyx_codeobj__181 __pyx_mstate_global->__pyx_codeobj__181
#define __pyx_codeobj__183 __pyx_mstate_global->__pyx_codeobj__183
#define __pyx_codeobj__185 __pyx_mstate_global->__pyx_codeobj__185
#define __pyx_codeobj__187 __pyx_mstate_global->__pyx_codeobj__187
#define __pyx_codeobj__188 __pyx_mstate_global->__pyx_codeobj__188
#define __pyx_codeobj__189 __pyx_mstate_global->__pyx_codeobj__189
#define __pyx_codeobj__190 __pyx_mstate_global->__pyx_codeobj__190
#define __pyx_codeobj__191 __pyx_mstate_global->__pyx_codeobj__191
#define __pyx_codeobj__192 __pyx_mstate_global->__pyx_codeobj__192
#define __pyx_codeobj__193 __pyx_mstate_global->__pyx_codeobj__193
#define __pyx_codeobj__195 __pyx_mstate_global->__pyx_codeobj__195
#define __pyx_codeobj__196 __pyx_mstate_global->__pyx_codeobj__196
#define __pyx_codeobj__197 __pyx_mstate_global->__pyx_codeobj__197
#define __pyx_codeobj__198 __pyx_mstate_global->__pyx_codeobj__198
#define __pyx_codeobj__199 __pyx_mstate_global->__pyx_codeobj__199
#define __pyx_codeobj__200 __pyx_mstate_global->__pyx_codeobj__200
#define __pyx_codeobj__201 __pyx_mstate_global->__pyx_codeobj__201
#define __pyx_codeobj__202 __pyx_mstate_global->__pyx_codeobj__202
#define __pyx_codeobj__203 __pyx_mstate_global->__pyx_codeobj__203
#define __pyx_codeobj__204 __pyx_mstate_global->__pyx_codeobj__204
#define __pyx_codeobj__205 __pyx_mstate_global->__pyx_codeobj__205
#define __pyx_codeobj__206 __pyx_mstate_global->__pyx_codeobj__206
#define __pyx_codeobj__207 __pyx_mstate_global->__pyx_codeobj__207
#define __pyx_codeobj__208 __pyx_mstate_global->__pyx_codeobj__208
#define __pyx_codeobj__210 __pyx_mstate_global->__pyx_codeobj__210
#define __pyx_codeobj__212 __pyx_mstate_global->__pyx_codeobj__212
#define __pyx_codeobj__214 __pyx_mstate_global->__pyx_codeobj__214
#define __pyx_codeobj__215 __pyx_mstate_global->__pyx_codeobj__215
#define __pyx_codeobj__216 __pyx_mstate_global->__pyx_codeobj__216
#define __pyx_codeobj__218 __pyx_mstate_global->__pyx_codeobj__218
#define __pyx_codeobj__219 __pyx_mstate_global->__pyx_codeobj__219
#define __pyx_codeobj__220 __pyx_mstate_global->__pyx_codeobj__220
#define __pyx_codeobj__221 __pyx_mstate_global->__pyx_codeobj__221
#define __pyx_codeobj__223 __pyx_mstate_global->__pyx_codeobj__223
#define __pyx_codeobj__225 __pyx_mstate_global->__pyx_codeobj__225
#define __pyx_codeobj__227 __pyx_mstate_global->__pyx_codeobj__227
#define __pyx_codeobj__228 __pyx_mstate_global->__pyx_codeobj__228
#define __pyx_codeobj__229 __pyx_mstate_global->__pyx_codeobj__229
#define __pyx_codeobj__231 __pyx_mstate_global->__pyx_codeobj__231
#define __pyx_codeobj__233 __pyx_mstate_global->__pyx_codeobj__233
#define __pyx_codeobj__234 __pyx_mstate_global->__pyx_codeobj__234
#define __pyx_codeobj__235 __pyx_mstate_global->__pyx_codeobj__235
#define __pyx_codeobj__237 __pyx_mstate_global->__pyx_codeobj__237
#define __pyx_codeobj__239 __pyx_mstate_global->__pyx_codeobj__239
#define __pyx_codeobj__240 __pyx_mstate_global->__pyx_codeobj__240
#define __pyx_codeobj__242 __pyx_mstate_global->__pyx_codeobj__242
#define __pyx_codeobj__243 __pyx_mstate_global->__pyx_codeobj__243
#define __pyx_codeobj__244 __pyx_mstate_global->__pyx_codeobj__244
#define __pyx_codeobj__245 __pyx_mstate_global->__pyx_codeobj__245
#define __pyx_codeobj__246 __pyx_mstate_global->__pyx_codeobj__246
#define __pyx_codeobj__247 __pyx_mstate_global->__pyx_codeobj__247
#define __pyx_codeobj__248 __pyx_mstate_global->__pyx_codeobj__248
#define __pyx_codeobj__249 __pyx_mstate_global->__pyx_codeobj__249
#define __pyx_codeobj__250 __pyx_mstate_global->__pyx_codeobj__250
#define __pyx_codeobj__251 __pyx_mstate_global->__pyx_codeobj__251
#define __pyx_codeobj__252 __pyx_mstate_global->__pyx_codeobj__252
#define __pyx_codeobj__253 __pyx_mstate_global->__pyx_codeobj__253
#define __pyx_codeobj__256 __pyx_mstate_global->__pyx_codeobj__256
#define __pyx_codeobj__257 __pyx_mstate_global->__pyx_codeobj__257
#define __pyx_codeobj__258 __pyx_mstate_global->__pyx_codeobj__258
#define __pyx_codeobj__259 __pyx_mstate_global->__pyx_codeobj__259
#define __pyx_codeobj__260 __pyx_mstate_global->__pyx_codeobj__260
#define __pyx_codeobj__261 __pyx_mstate_global->__pyx_codeobj__261
#define __pyx_codeobj__262 __pyx_mstate_global->__pyx_codeobj__262
#define __pyx_codeobj__263 __pyx_mstate_global->__pyx_codeobj__263
#define __pyx_codeobj__264 __pyx_mstate_global->__pyx_codeobj__264
#define __pyx_codeobj__265 __pyx_mstate_global->__pyx_codeobj__265
#define __pyx_codeobj__266 __pyx_mstate_global->__pyx_codeobj__266
#define __pyx_codeobj__267 __pyx_mstate_global->__pyx_codeobj__267
#define __pyx_codeobj__268 __pyx_mstate_global->__pyx_codeobj__268
#define __pyx_codeobj__269 __pyx_mstate_global->__pyx_codeobj__269
#define __pyx_codeobj__270 __pyx_mstate_global->__pyx_codeobj__270
#define __pyx_codeobj__271 __pyx_mstate_global->__pyx_codeobj__271
#define __pyx_codeobj__272 __pyx_mstate_global->__pyx_codeobj__272
#define __pyx_codeobj__273 __pyx_mstate_global->__pyx_codeobj__273
#define __pyx_codeobj__274 __pyx_mstate_global->__pyx_codeobj__274
#define __pyx_codeobj__275 __pyx_mstate_global->__pyx_codeobj__275
#define __pyx_codeobj__276 __pyx_mstate_global->__pyx_codeobj__276
#define __pyx_codeobj__277 __pyx_mstate_global->__pyx_codeobj__277
#define __pyx_codeobj__278 __pyx_mstate_global->__pyx_codeobj__278
#define __pyx_codeobj__279 __pyx_mstate_global->__pyx_codeobj__279
#define __pyx_codeobj__280 __pyx_mstate_global->__pyx_codeobj__280
#define __pyx_codeobj__281 __pyx_mstate_global->__pyx_codeobj__281
#define __pyx_codeobj__282 __pyx_mstate_global->__pyx_codeobj__282
#define __pyx_codeobj__283 __pyx_mstate_global->__pyx_codeobj__283
#define __pyx_codeobj__284 __pyx_mstate_global->__pyx_codeobj__284
#define __pyx_codeobj__285 __pyx_mstate_global->__pyx_codeobj__285
#define __pyx_codeobj__286 __pyx_mstate_global->__pyx_codeobj__286
#define __pyx_codeobj__287 __pyx_mstate_global->__pyx_codeobj__287
#define __pyx_codeobj__288 __pyx_mstate_global->__pyx_codeobj__288
#define __pyx_codeobj__289 __pyx_mstate_global->__pyx_codeobj__289
#define __pyx_codeobj__290 __pyx_mstate_global->__pyx_codeobj__290
#define __pyx_codeobj__291 __pyx_mstate_global->__pyx_codeobj__291
#define __pyx_codeobj__292 __pyx_mstate_global->__pyx_codeobj__292
#define __pyx_codeobj__294 __pyx_mstate_global->__pyx_codeobj__294
#define __pyx_codeobj__295 __pyx_mstate_global->__pyx_codeobj__295
#define __pyx_codeobj__297 __pyx_mstate_global->__pyx_codeobj__297
#define __pyx_codeobj__298 __pyx_mstate_global->__pyx_codeobj__298
#define __pyx_codeobj__299 __pyx_mstate_global->__pyx_codeobj__299
#define __pyx_codeobj__300 __pyx_mstate_global->__pyx_codeobj__300
#define __pyx_codeobj__302 __pyx_mstate_global->__pyx_codeobj__302
#define __pyx_codeobj__303 __pyx_mstate_global->__pyx_codeobj__303
#define __pyx_codeobj__305 __pyx_mstate_global->__pyx_codeobj__305
#define __pyx_codeobj__307 __pyx_mstate_global->__pyx_codeobj__307
#define __pyx_codeobj__309 __pyx_mstate_global->__pyx_codeobj__309
#define __pyx_codeobj__310 __pyx_mstate_global->__pyx_codeobj__310
#define __pyx_codeobj__311 __pyx_mstate_global->__pyx_codeobj__311
#define __pyx_codeobj__313 __pyx_mstate_global->__pyx_codeobj__313
#define __pyx_codeobj__315 __pyx_mstate_global->__pyx_codeobj__315
#define __pyx_codeobj__317 __pyx_mstate_global->__pyx_codeobj__317
#define __pyx_codeobj__319 __pyx_mstate_global->__pyx_codeobj__319
#define __pyx_codeobj__321 __pyx_mstate_global->__pyx_codeobj__321
#define __pyx_codeobj__324 __pyx_mstate_global->__pyx_codeobj__324
#define __pyx_codeobj__326 __pyx_mstate_global->__pyx_codeobj__326
#define __pyx_codeobj__327 __pyx_mstate_global->__pyx_codeobj__327
#define __pyx_codeobj__328 __pyx_mstate_global->__pyx_codeobj__328
#define __pyx_codeobj__329 __pyx_mstate_global->__pyx_codeobj__329
#define __pyx_codeobj__330 __pyx_mstate_global->__pyx_codeobj__330
#define __pyx_codeobj__331 __pyx_mstate_global->__pyx_codeobj__331
#define __pyx_codeobj__332 __pyx_mstate_global->__pyx_codeobj__332
#define __pyx_codeobj__333 __pyx_mstate_global->__pyx_codeobj__333
#define __pyx_codeobj__334 __pyx_mstate_global->__pyx_codeobj__334
#define __pyx_codeobj__335 __pyx_mstate_global->__pyx_codeobj__335
#define __pyx_codeobj__336 __pyx_mstate_global->__pyx_codeobj__336
#define __pyx_codeobj__337 __pyx_mstate_global->__pyx_codeobj__337
#define __pyx_codeobj__338 __pyx_mstate_global->__pyx_codeobj__338
#define __pyx_codeobj__339 __pyx_mstate_global->__pyx_codeobj__339
#define __pyx_codeobj__340 __pyx_mstate_global->__pyx_codeobj__340
#define __pyx_codeobj__342 __pyx_mstate_global->__pyx_codeobj__342
#define __pyx_codeobj__343 __pyx_mstate_global->__pyx_codeobj__343
#define __pyx_codeobj__344 __pyx_mstate_global->__pyx_codeobj__344
#define __pyx_codeobj__345 __pyx_mstate_global->__pyx_codeobj__345
#define __pyx_codeobj__346 __pyx_mstate_global->__pyx_codeobj__346
#define __pyx_codeobj__347 __pyx_mstate_global->__pyx_codeobj__347
#define __pyx_codeobj__349 __pyx_mstate_global->__pyx_codeobj__349
#define __pyx_codeobj__350 __pyx_mstate_global->__pyx_codeobj__350
#define __pyx_codeobj__351 __pyx_mstate_global->__pyx_codeobj__351
#define __pyx_codeobj__353 __pyx_mstate_global->__pyx_codeobj__353
#define __pyx_codeobj__354 __pyx_mstate_global->__pyx_codeobj__354
#define __pyx_codeobj__356 __pyx_mstate_global->__pyx_codeobj__356
#define __pyx_codeobj__357 __pyx_mstate_global->__pyx_codeobj__357
#define __pyx_codeobj__358 __pyx_mstate_global->__pyx_codeobj__358
#define __pyx_codeobj__360 __pyx_mstate_global->__pyx_codeobj__360
#define __pyx_codeobj__361 __pyx_mstate_global->__pyx_codeobj__361
#define __pyx_codeobj__363 __pyx_mstate_global->__pyx_codeobj__363
#define __pyx_codeobj__365 __pyx_mstate_global->__pyx_codeobj__365
#define __pyx_codeobj__367 __pyx_mstate_global->__pyx_codeobj__367
#define __pyx_codeobj__369 __pyx_mstate_global->__pyx_codeobj__369
#define __pyx_codeobj__371 __pyx_mstate_global->__pyx_codeobj__371
#define __pyx_codeobj__373 __pyx_mstate_global->__pyx_codeobj__373
#define __pyx_codeobj__375 __pyx_mstate_global->__pyx_codeobj__375
#define __pyx_codeobj__379 __pyx_mstate_global->__pyx_codeobj__379
#define __pyx_codeobj__382 __pyx_mstate_global->__pyx_codeobj__382
#define __pyx_codeobj__383 __pyx_mstate_global->__pyx_codeobj__383
#define __pyx_codeobj__384 __pyx_mstate_global->__pyx_codeobj__384
#define __pyx_codeobj__386 __pyx_mstate_global->__pyx_codeobj__386
#define __pyx_codeobj__387 __pyx_mstate_global->__pyx_codeobj__387
#define __pyx_codeobj__388 __pyx_mstate_global->__pyx_codeobj__388
#define __pyx_codeobj__389 __pyx_mstate_global->__pyx_codeobj__389
#define __pyx_codeobj__390 __pyx_mstate_global->__pyx_codeobj__390
#define __pyx_codeobj__392 __pyx_mstate_global->__pyx_codeobj__392
#define __pyx_codeobj__393 __pyx_mstate_global->__pyx_codeobj__393
#define __pyx_codeobj__396 __pyx_mstate_global->__pyx_codeobj__396
#define __pyx_codeobj__397 __pyx_mstate_global->__pyx_codeobj__397
#define __pyx_codeobj__398 __pyx_mstate_global->__pyx_codeobj__398
#define __pyx_codeobj__400 __pyx_mstate_global->__pyx_codeobj__400
#define __pyx_codeobj__403 __pyx_mstate_global->__pyx_codeobj__403
#define __pyx_codeobj__404 __pyx_mstate_global->__pyx_codeobj__404
#define __pyx_codeobj__405 __pyx_mstate_global->__pyx_codeobj__405
#define __pyx_codeobj__406 __pyx_mstate_global->__pyx_codeobj__406
#define __pyx_codeobj__407 __pyx_mstate_global->__pyx_codeobj__407
#define __pyx_codeobj__408 __pyx_mstate_global->__pyx_codeobj__408
#define __pyx_codeobj__410 __pyx_mstate_global->__pyx_codeobj__410
#define __pyx_codeobj__413 __pyx_mstate_global->__pyx_codeobj__413
#define __pyx_codeobj__414 __pyx_mstate_global->__pyx_codeobj__414
#define __pyx_codeobj__416 __pyx_mstate_global->__pyx_codeobj__416
#define __pyx_codeobj__417 __pyx_mstate_global->__pyx_codeobj__417
#define __pyx_codeobj__418 __pyx_mstate_global->__pyx_codeobj__418
#define __pyx_codeobj__419 __pyx_mstate_global->__pyx_codeobj__419
#define __pyx_codeobj__420 __pyx_mstate_global->__pyx_codeobj__420
#define __pyx_codeobj__421 __pyx_mstate_global->__pyx_codeobj__421
#define __pyx_codeobj__422 __pyx_mstate_global->__pyx_codeobj__422
#define __pyx_codeobj__424 __pyx_mstate_global->__pyx_codeobj__424
#define __pyx_codeobj__425 __pyx_mstate_global->__pyx_codeobj__425
#define __pyx_codeobj__426 __pyx_mstate_global->__pyx_codeobj__426
#define __pyx_codeobj__427 __pyx_mstate_global->__pyx_codeobj__427
#define __pyx_codeobj__428 __pyx_mstate_global->__pyx_codeobj__428
#define __pyx_codeobj__429 __pyx_mstate_global->__pyx_codeobj__429
#define __pyx_codeobj__431 __pyx_mstate_global->__pyx_codeobj__431
#define __pyx_codeobj__432 __pyx_mstate_global->__pyx_codeobj__432
#define __pyx_codeobj__434 __pyx_mstate_global->__pyx_codeobj__434
#define __pyx_codeobj__435 __pyx_mstate_global->__pyx_codeobj__435
#define __pyx_codeobj__436 __pyx_mstate_global->__pyx_codeobj__436
#define __pyx_codeobj__437 __pyx_mstate_global->__pyx_codeobj__437
#define __pyx_codeobj__438 __pyx_mstate_global->__pyx_codeobj__438
#define __pyx_codeobj__439 __pyx_mstate_global->__pyx_codeobj__439
#define __pyx_codeobj__440 __pyx_mstate_global->__pyx_codeobj__440
#define __pyx_codeobj__448 __pyx_mstate_global->__pyx_codeobj__448
#define __pyx_codeobj__449 __pyx_mstate_global->__pyx_codeobj__449
#define __pyx_codeobj__451 __pyx_mstate_global->__pyx_codeobj__451
#define __pyx_codeobj__452 __pyx_mstate_global->__pyx_codeobj__452
#define __pyx_codeobj__453 __pyx_mstate_global->__pyx_codeobj__453
#define __pyx_codeobj__455 __pyx_mstate_global->__pyx_codeobj__455
#define __pyx_codeobj__457 __pyx_mstate_global->__pyx_codeobj__457
#define __pyx_codeobj__458 __pyx_mstate_global->__pyx_codeobj__458
#define __pyx_codeobj__460 __pyx_mstate_global->__pyx_codeobj__460
#define __pyx_codeobj__461 __pyx_mstate_global->__pyx_codeobj__461
#define __pyx_codeobj__462 __pyx_mstate_global->__pyx_codeobj__462
#define __pyx_codeobj__464 __pyx_mstate_global->__pyx_codeobj__464
#define __pyx_codeobj__465 __pyx_mstate_global->__pyx_codeobj__465
#define __pyx_codeobj__467 __pyx_mstate_global->__pyx_codeobj__467
#define __pyx_codeobj__475 __pyx_mstate_global->__pyx_codeobj__475
#define __pyx_codeobj__476 __pyx_mstate_global->__pyx_codeobj__476
#define __pyx_codeobj__477 __pyx_mstate_global->__pyx_codeobj__477
#define __pyx_codeobj__479 __pyx_mstate_global->__pyx_codeobj__479
#define __pyx_codeobj__480 __pyx_mstate_global->__pyx_codeobj__480
#define __pyx_codeobj__481 __pyx_mstate_global->__pyx_codeobj__481
#define __pyx_codeobj__483 __pyx_mstate_global->__pyx_codeobj__483
#define __pyx_codeobj__484 __pyx_mstate_global->__pyx_codeobj__484
#define __pyx_codeobj__485 __pyx_mstate_global->__pyx_codeobj__485
#define __pyx_codeobj__486 __pyx_mstate_global->__pyx_codeobj__486
#define __pyx_codeobj__487 __pyx_mstate_global->__pyx_codeobj__487
#define __pyx_codeobj__488 __pyx_mstate_global->__pyx_codeobj__488
#define __pyx_codeobj__489 __pyx_mstate_global->__pyx_codeobj__489
#define __pyx_codeobj__494 __pyx_mstate_global->__pyx_codeobj__494
#define __pyx_codeobj__495 __pyx_mstate_global->__pyx_codeobj__495
#define __pyx_codeobj__496 __pyx_mstate_global->__pyx_codeobj__496
#define __pyx_codeobj__498 __pyx_mstate_global->__pyx_codeobj__498
#define __pyx_codeobj__499 __pyx_mstate_global->__pyx_codeobj__499
#define __pyx_codeobj__501 __pyx_mstate_global->__pyx_codeobj__501
#define __pyx_codeobj__502 __pyx_mstate_global->__pyx_codeobj__502
#define __pyx_codeobj__504 __pyx_mstate_global->__pyx_codeobj__504
#define __pyx_codeobj__505 __pyx_mstate_global->__pyx_codeobj__505
#define __pyx_codeobj__507 __pyx_mstate_global->__pyx_codeobj__507
#define __pyx_codeobj__509 __pyx_mstate_global->__pyx_codeobj__509
#define __pyx_codeobj__511 __pyx_mstate_global->__pyx_codeobj__511
#define __pyx_codeobj__513 __pyx_mstate_global->__pyx_codeobj__513
#define __pyx_codeobj__514 __pyx_mstate_global->__pyx_codeobj__514
#define __pyx_codeobj__516 __pyx_mstate_global->__pyx_codeobj__516
#define __pyx_codeobj__517 __pyx_mstate_global->__pyx_codeobj__517
#define __pyx_codeobj__518 __pyx_mstate_global->__pyx_codeobj__518
#define __pyx_codeobj__519 __pyx_mstate_global->__pyx_codeobj__519
#define __pyx_codeobj__520 __pyx_mstate_global->__pyx_codeobj__520
#define __pyx_codeobj__522 __pyx_mstate_global->__pyx_codeobj__522
#define __pyx_codeobj__524 __pyx_mstate_global->__pyx_codeobj__524
#define __pyx_codeobj__525 __pyx_mstate_global->__pyx_codeobj__525
#define __pyx_codeobj__526 __pyx_mstate_global->__pyx_codeobj__526
#define __pyx_codeobj__527 __pyx_mstate_global->__pyx_codeobj__527
#define __pyx_codeobj__528 __pyx_mstate_global->__pyx_codeobj__528
#define __pyx_codeobj__529 __pyx_mstate_global->__pyx_codeobj__529
#define __pyx_codeobj__530 __pyx_mstate_global->__pyx_codeobj__530
#define __pyx_codeobj__531 __pyx_mstate_global->__pyx_codeobj__531
#define __pyx_codeobj__532 __pyx_mstate_global->__pyx_codeobj__532
#define __pyx_codeobj__533 __pyx_mstate_global->__pyx_codeobj__533
#define __pyx_codeobj__534 __pyx_mstate_global->__pyx_codeobj__534
#define __pyx_codeobj__535 __pyx_mstate_global->__pyx_codeobj__535
#define __pyx_codeobj__536 __pyx_mstate_global->__pyx_codeobj__536
#define __pyx_codeobj__537 __pyx_mstate_global->__pyx_codeobj__537
#define __pyx_codeobj__538 __pyx_mstate_global->__pyx_codeobj__538
#define __pyx_codeobj__541 __pyx_mstate_global->__pyx_codeobj__541
#define __pyx_codeobj__546 __pyx_mstate_global->__pyx_codeobj__546
#define __pyx_codeobj__547 __pyx_mstate_global->__pyx_codeobj__547
#define __pyx_codeobj__553 __pyx_mstate_global->__pyx_codeobj__553
#define __pyx_codeobj__555 __pyx_mstate_global->__pyx_codeobj__555
#define __pyx_codeobj__557 __pyx_mstate_global->__pyx_codeobj__557
#define __pyx_codeobj__558 __pyx_mstate_global->__pyx_codeobj__558
#define __pyx_codeobj__559 __pyx_mstate_global->__pyx_codeobj__559
#define __pyx_codeobj__561 __pyx_mstate_global->__pyx_codeobj__561
#define __pyx_codeobj__563 __pyx_mstate_global->__pyx_codeobj__563
#define __pyx_codeobj__565 __pyx_mstate_global->__pyx_codeobj__565
#define __pyx_codeobj__569 __pyx_mstate_global->__pyx_codeobj__569
#define __pyx_codeobj__573 __pyx_mstate_global->__pyx_codeobj__573
#define __pyx_codeobj__574 __pyx_mstate_global->__pyx_codeobj__574
#define __pyx_codeobj__575 __pyx_mstate_global->__pyx_codeobj__575
#define __pyx_codeobj__577 __pyx_mstate_global->__pyx_codeobj__577
#define __pyx_codeobj__578 __pyx_mstate_global->__pyx_codeobj__578
#define __pyx_codeobj__579 __pyx_mstate_global->__pyx_codeobj__579
#define __pyx_codeobj__580 __pyx_mstate_global->__pyx_codeobj__580
#define __pyx_codeobj__581 __pyx_mstate_global->__pyx_codeobj__581
/* #### Code section: module_code ### */

/* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(object (*f)(_LatentEventArg) ):
 *     def wrap(_LatentEventArg latent_event_arg):             # <<<<<<<<<<<<<<
 *         """wrap(latent_event_arg: '_LatentEventArg')"""
 *         return f(latent_event_arg)
 */

/* Python wrapper */
static PyObject *__pyx_pw_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_1wrap(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_wrap, "wrap(latent_event_arg: '_LatentEventArg')");
static PyMethodDef __pyx_mdef_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_1wrap = {"wrap", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_1wrap, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_wrap};
static PyObject *__pyx_pw_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_1wrap(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *__pyx_v_latent_event_arg = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("wrap (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_latent_event_arg,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_latent_event_arg)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 67, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "wrap") < 0)) __PYX_ERR(10, 67, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_latent_event_arg = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("wrap", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 67, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_latent_event_arg), __pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg, 1, "latent_event_arg", 0))) __PYX_ERR(10, 67, __pyx_L1_error)
  __pyx_r = __pyx_pf_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_wrap(__pyx_self, __pyx_v_latent_event_arg);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_wrap(PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *__pyx_v_latent_event_arg) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *__pyx_cur_scope;
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap", 1);
  __pyx_outer_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "cfunc.to_py":69
 *     def wrap(_LatentEventArg latent_event_arg):
 *         """wrap(latent_event_arg: '_LatentEventArg')"""
 *         return f(latent_event_arg)             # <<<<<<<<<<<<<<
 *     return wrap
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_f(__pyx_v_latent_event_arg); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(object (*f)(_LatentEventArg) ):
 *     def wrap(_LatentEventArg latent_event_arg):             # <<<<<<<<<<<<<<
 *         """wrap(latent_event_arg: '_LatentEventArg')"""
 *         return f(latent_event_arg)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":66
 * 
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(object (*f)(_LatentEventArg) ):             # <<<<<<<<<<<<<<
 *     def wrap(_LatentEventArg latent_event_arg):
 *         """wrap(latent_event_arg: '_LatentEventArg')"""
 */

static PyObject *__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(PyObject *(*__pyx_v_f)(struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *__pyx_cur_scope;
  PyObject *__pyx_v_wrap = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg", 0);
  __pyx_cur_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(10, 66, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_f = __pyx_v_f;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(object (*f)(_LatentEventArg) ):
 *     def wrap(_LatentEventArg latent_event_arg):             # <<<<<<<<<<<<<<
 *         """wrap(latent_event_arg: '_LatentEventArg')"""
 *         return f(latent_event_arg)
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_1wrap, 0, __pyx_n_s_Pyx_CFunc_4grpc_7_cython_6cygr, ((PyObject*)__pyx_cur_scope), __pyx_n_s_cfunc_to_py, __pyx_d, ((PyObject *)__pyx_codeobj__2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_wrap = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cfunc.to_py":70
 *         """wrap(latent_event_arg: '_LatentEventArg')"""
 *         return f(latent_event_arg)
 *     return wrap             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_wrap);
  __pyx_r = __pyx_v_wrap;
  goto __pyx_L0;

  /* "cfunc.to_py":66
 * 
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(object (*f)(_LatentEventArg) ):             # <<<<<<<<<<<<<<
 *     def wrap(_LatentEventArg latent_event_arg):
 *         """wrap(latent_event_arg: '_LatentEventArg')"""
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_wrap);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":31
 * 
 * @cname("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string", 1);

  /* "string.to_py":32
 * @cname("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyUnicode_FromStringAndSize(const char*, size_t)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":31
 * 
 * @cname("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":37
 * 
 * @cname("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string", 1);

  /* "string.to_py":38
 * @cname("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyStr_FromStringAndSize(const char*, size_t)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":37
 * 
 * @cname("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":43
 * 
 * @cname("__pyx_convert_PyStr_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyStr_string_to_py_6libcpp_6string_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyStr_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyStr_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_PyStr_string_to_py_6libcpp_6string_std__in_string", 1);

  /* "string.to_py":44
 * @cname("__pyx_convert_PyStr_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyStr_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyStr_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyBytes_FromStringAndSize(const char*, size_t)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyStr_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":43
 * 
 * @cname("__pyx_convert_PyStr_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyStr_string_to_py_6libcpp_6string_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyStr_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyStr_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":49
 * 
 * @cname("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string", 1);

  /* "string.to_py":50
 * @cname("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyByteArray_FromStringAndSize(const char*, size_t)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":49
 * 
 * @cname("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":55
 * 
 * @cname("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), s.size())
 * 
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string", 1);

  /* "string.to_py":56
 * @cname("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyByteArray_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":55
 * 
 * @cname("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), s.size())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(object (*f)() ):
 *     def wrap():             # <<<<<<<<<<<<<<
 *         """wrap()"""
 *         return f()
 */

/* Python wrapper */
static PyObject *__pyx_pw_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__1wrap(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__wrap, "wrap()");
static PyMethodDef __pyx_mdef_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__1wrap = {"wrap", (PyCFunction)__pyx_pw_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__1wrap, METH_NOARGS, __pyx_doc_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__wrap};
static PyObject *__pyx_pw_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__1wrap(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("wrap (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__wrap(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__wrap(PyObject *__pyx_self) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *__pyx_cur_scope;
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap", 1);
  __pyx_outer_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "cfunc.to_py":69
 *     def wrap():
 *         """wrap()"""
 *         return f()             # <<<<<<<<<<<<<<
 *     return wrap
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_f(); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(object (*f)() ):
 *     def wrap():             # <<<<<<<<<<<<<<
 *         """wrap()"""
 *         return f()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":66
 * 
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(object (*f)() ):             # <<<<<<<<<<<<<<
 *     def wrap():
 *         """wrap()"""
 */

static PyObject *__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(PyObject *(*__pyx_v_f)(void)) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *__pyx_cur_scope;
  PyObject *__pyx_v_wrap = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_", 0);
  __pyx_cur_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(10, 66, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_f = __pyx_v_f;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(object (*f)() ):
 *     def wrap():             # <<<<<<<<<<<<<<
 *         """wrap()"""
 *         return f()
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__1wrap, 0, __pyx_n_s_Pyx_CFunc_4grpc_7_cython_6cygr_2, ((PyObject*)__pyx_cur_scope), __pyx_n_s_cfunc_to_py, __pyx_d, ((PyObject *)__pyx_codeobj__3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_wrap = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cfunc.to_py":70
 *         """wrap()"""
 *         return f()
 *     return wrap             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_wrap);
  __pyx_r = __pyx_v_wrap;
  goto __pyx_L0;

  /* "cfunc.to_py":66
 * 
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(object (*f)() ):             # <<<<<<<<<<<<<<
 *     def wrap():
 *         """wrap()"""
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_wrap);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args")
 * cdef object __Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(object (*f)(object, tuple) ):
 *     def wrap(object cb, tuple args):             # <<<<<<<<<<<<<<
 *         """wrap(cb, args: tuple)"""
 *         return f(cb, args)
 */

/* Python wrapper */
static PyObject *__pyx_pw_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_1wrap(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_wrap, "wrap(cb, args: tuple)");
static PyMethodDef __pyx_mdef_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_1wrap = {"wrap", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_1wrap, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_wrap};
static PyObject *__pyx_pw_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_1wrap(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_cb = 0;
  PyObject *__pyx_v_args = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("wrap (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cb,&__pyx_n_s_args,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_cb)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 67, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_args)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 67, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("wrap", 1, 2, 2, 1); __PYX_ERR(10, 67, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "wrap") < 0)) __PYX_ERR(10, 67, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_cb = values[0];
    __pyx_v_args = ((PyObject*)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("wrap", 1, 2, 2, __pyx_nargs); __PYX_ERR(10, 67, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(10, 67, __pyx_L1_error)
  __pyx_r = __pyx_pf_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_wrap(__pyx_self, __pyx_v_cb, __pyx_v_args);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_wrap(PyObject *__pyx_self, PyObject *__pyx_v_cb, PyObject *__pyx_v_args) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *__pyx_cur_scope;
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap", 1);
  __pyx_outer_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "cfunc.to_py":69
 *     def wrap(object cb, tuple args):
 *         """wrap(cb, args: tuple)"""
 *         return f(cb, args)             # <<<<<<<<<<<<<<
 *     return wrap
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_f(__pyx_v_cb, __pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args")
 * cdef object __Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(object (*f)(object, tuple) ):
 *     def wrap(object cb, tuple args):             # <<<<<<<<<<<<<<
 *         """wrap(cb, args: tuple)"""
 *         return f(cb, args)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":66
 * 
 * @cname("__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args")
 * cdef object __Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(object (*f)(object, tuple) ):             # <<<<<<<<<<<<<<
 *     def wrap(object cb, tuple args):
 *         """wrap(cb, args: tuple)"""
 */

static PyObject *__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(PyObject *(*__pyx_v_f)(PyObject *, PyObject *)) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *__pyx_cur_scope;
  PyObject *__pyx_v_wrap = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args", 0);
  __pyx_cur_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(10, 66, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_f = __pyx_v_f;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args")
 * cdef object __Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(object (*f)(object, tuple) ):
 *     def wrap(object cb, tuple args):             # <<<<<<<<<<<<<<
 *         """wrap(cb, args: tuple)"""
 *         return f(cb, args)
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_1wrap, 0, __pyx_n_s_Pyx_CFunc_1f6ebd__4grpc_7_cyth, ((PyObject*)__pyx_cur_scope), __pyx_n_s_cfunc_to_py, __pyx_d, ((PyObject *)__pyx_codeobj__5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_wrap = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cfunc.to_py":70
 *         """wrap(cb, args: tuple)"""
 *         return f(cb, args)
 *     return wrap             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_wrap);
  __pyx_r = __pyx_v_wrap;
  goto __pyx_L0;

  /* "cfunc.to_py":66
 * 
 * @cname("__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args")
 * cdef object __Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(object (*f)(object, tuple) ):             # <<<<<<<<<<<<<<
 *     def wrap(object cb, tuple args):
 *         """wrap(cb, args: tuple)"""
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_wrap);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_")
 * cdef object __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*f)() except *):
 *     def wrap():             # <<<<<<<<<<<<<<
 *         """wrap() -> 'void'"""
 *         f()
 */

/* Python wrapper */
static PyObject *__pyx_pw_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__1wrap(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__wrap, "wrap() -> 'void'");
static PyMethodDef __pyx_mdef_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__1wrap = {"wrap", (PyCFunction)__pyx_pw_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__1wrap, METH_NOARGS, __pyx_doc_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__wrap};
static PyObject *__pyx_pw_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__1wrap(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("wrap (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__wrap(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__wrap(PyObject *__pyx_self) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *__pyx_cur_scope;
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap", 1);
  __pyx_outer_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "cfunc.to_py":69
 *     def wrap():
 *         """wrap() -> 'void'"""
 *         f()             # <<<<<<<<<<<<<<
 *     return wrap
 * 
 */
  __pyx_cur_scope->__pyx_v_f(); if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 69, __pyx_L1_error)

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_")
 * cdef object __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*f)() except *):
 *     def wrap():             # <<<<<<<<<<<<<<
 *         """wrap() -> 'void'"""
 *         f()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":66
 * 
 * @cname("__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_")
 * cdef object __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*f)() except *):             # <<<<<<<<<<<<<<
 *     def wrap():
 *         """wrap() -> 'void'"""
 */

static PyObject *__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*__pyx_v_f)(void)) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *__pyx_cur_scope;
  PyObject *__pyx_v_wrap = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_", 0);
  __pyx_cur_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(10, 66, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_f = __pyx_v_f;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_")
 * cdef object __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*f)() except *):
 *     def wrap():             # <<<<<<<<<<<<<<
 *         """wrap() -> 'void'"""
 *         f()
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__1wrap, 0, __pyx_n_s_Pyx_CFunc_7f0cf6__4grpc_7_cyth, ((PyObject*)__pyx_cur_scope), __pyx_n_s_cfunc_to_py, __pyx_d, ((PyObject *)__pyx_codeobj__6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_wrap = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cfunc.to_py":70
 *         """wrap() -> 'void'"""
 *         f()
 *     return wrap             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_wrap);
  __pyx_r = __pyx_v_wrap;
  goto __pyx_L0;

  /* "cfunc.to_py":66
 * 
 * @cname("__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_")
 * cdef object __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*f)() except *):             # <<<<<<<<<<<<<<
 *     def wrap():
 *         """wrap() -> 'void'"""
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_wrap);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/complex.pxd":19
 * 
 *         @property
 *         cdef inline double real(self) noexcept:             # <<<<<<<<<<<<<<
 *             return self.cval.real
 * 
 */

static CYTHON_INLINE double __pyx_f_7cpython_7complex_7complex_4real_real(PyComplexObject *__pyx_v_self) {
  double __pyx_r;

  /* "cpython/complex.pxd":20
 *         @property
 *         cdef inline double real(self) noexcept:
 *             return self.cval.real             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = __pyx_v_self->cval.real;
  goto __pyx_L0;

  /* "cpython/complex.pxd":19
 * 
 *         @property
 *         cdef inline double real(self) noexcept:             # <<<<<<<<<<<<<<
 *             return self.cval.real
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/complex.pxd":23
 * 
 *         @property
 *         cdef inline double imag(self) noexcept:             # <<<<<<<<<<<<<<
 *             return self.cval.imag
 * 
 */

static CYTHON_INLINE double __pyx_f_7cpython_7complex_7complex_4imag_imag(PyComplexObject *__pyx_v_self) {
  double __pyx_r;

  /* "cpython/complex.pxd":24
 *         @property
 *         cdef inline double imag(self) noexcept:
 *             return self.cval.imag             # <<<<<<<<<<<<<<
 * 
 *     # PyTypeObject PyComplex_Type
 */
  __pyx_r = __pyx_v_self->cval.imag;
  goto __pyx_L0;

  /* "cpython/complex.pxd":23
 * 
 *         @property
 *         cdef inline double imag(self) noexcept:             # <<<<<<<<<<<<<<
 *             return self.cval.imag
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/contextvars.pxd":112
 * 
 * 
 * cdef inline object get_value(var, default_value=None):             # <<<<<<<<<<<<<<
 *     """Return a new reference to the value of the context variable,
 *     or the default value of the context variable,
 */

static CYTHON_INLINE PyObject *__pyx_f_7cpython_11contextvars_get_value(PyObject *__pyx_v_var, struct __pyx_opt_args_7cpython_11contextvars_get_value *__pyx_optional_args) {
  PyObject *__pyx_v_default_value = ((PyObject *)Py_None);
  PyObject *__pyx_v_value;
  PyObject *__pyx_v_pyvalue = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_value", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_default_value = __pyx_optional_args->default_value;
    }
  }

  /* "cpython/contextvars.pxd":117
 *     or None if no such value or default was found.
 *     """
 *     cdef PyObject *value = NULL             # <<<<<<<<<<<<<<
 *     PyContextVar_Get(var, NULL, &value)
 *     if value is NULL:
 */
  __pyx_v_value = NULL;

  /* "cpython/contextvars.pxd":118
 *     """
 *     cdef PyObject *value = NULL
 *     PyContextVar_Get(var, NULL, &value)             # <<<<<<<<<<<<<<
 *     if value is NULL:
 *         # context variable does not have a default
 */
  __pyx_t_1 = PyContextVar_Get(__pyx_v_var, NULL, (&__pyx_v_value)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(11, 118, __pyx_L1_error)

  /* "cpython/contextvars.pxd":119
 *     cdef PyObject *value = NULL
 *     PyContextVar_Get(var, NULL, &value)
 *     if value is NULL:             # <<<<<<<<<<<<<<
 *         # context variable does not have a default
 *         pyvalue = default_value
 */
  __pyx_t_2 = (__pyx_v_value == NULL);
  if (__pyx_t_2) {

    /* "cpython/contextvars.pxd":121
 *     if value is NULL:
 *         # context variable does not have a default
 *         pyvalue = default_value             # <<<<<<<<<<<<<<
 *     else:
 *         # value or default value of context variable
 */
    __Pyx_INCREF(__pyx_v_default_value);
    __pyx_v_pyvalue = __pyx_v_default_value;

    /* "cpython/contextvars.pxd":119
 *     cdef PyObject *value = NULL
 *     PyContextVar_Get(var, NULL, &value)
 *     if value is NULL:             # <<<<<<<<<<<<<<
 *         # context variable does not have a default
 *         pyvalue = default_value
 */
    goto __pyx_L3;
  }

  /* "cpython/contextvars.pxd":124
 *     else:
 *         # value or default value of context variable
 *         pyvalue = <object>value             # <<<<<<<<<<<<<<
 *         Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'
 *     return pyvalue
 */
  /*else*/ {
    __pyx_t_3 = ((PyObject *)__pyx_v_value);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_pyvalue = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "cpython/contextvars.pxd":125
 *         # value or default value of context variable
 *         pyvalue = <object>value
 *         Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'             # <<<<<<<<<<<<<<
 *     return pyvalue
 * 
 */
    Py_XDECREF(__pyx_v_value);
  }
  __pyx_L3:;

  /* "cpython/contextvars.pxd":126
 *         pyvalue = <object>value
 *         Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'
 *     return pyvalue             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_pyvalue);
  __pyx_r = __pyx_v_pyvalue;
  goto __pyx_L0;

  /* "cpython/contextvars.pxd":112
 * 
 * 
 * cdef inline object get_value(var, default_value=None):             # <<<<<<<<<<<<<<
 *     """Return a new reference to the value of the context variable,
 *     or the default value of the context variable,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cpython.contextvars.get_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pyvalue);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/contextvars.pxd":129
 * 
 * 
 * cdef inline object get_value_no_default(var, default_value=None):             # <<<<<<<<<<<<<<
 *     """Return a new reference to the value of the context variable,
 *     or the provided default value if no such value was found.
 */

static CYTHON_INLINE PyObject *__pyx_f_7cpython_11contextvars_get_value_no_default(PyObject *__pyx_v_var, struct __pyx_opt_args_7cpython_11contextvars_get_value_no_default *__pyx_optional_args) {
  PyObject *__pyx_v_default_value = ((PyObject *)Py_None);
  PyObject *__pyx_v_value;
  PyObject *__pyx_v_pyvalue = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_value_no_default", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_default_value = __pyx_optional_args->default_value;
    }
  }

  /* "cpython/contextvars.pxd":135
 *     Ignores the default value of the context variable, if any.
 *     """
 *     cdef PyObject *value = NULL             # <<<<<<<<<<<<<<
 *     PyContextVar_Get(var, <PyObject*>default_value, &value)
 *     # value of context variable or 'default_value'
 */
  __pyx_v_value = NULL;

  /* "cpython/contextvars.pxd":136
 *     """
 *     cdef PyObject *value = NULL
 *     PyContextVar_Get(var, <PyObject*>default_value, &value)             # <<<<<<<<<<<<<<
 *     # value of context variable or 'default_value'
 *     pyvalue = <object>value
 */
  __pyx_t_1 = PyContextVar_Get(__pyx_v_var, ((PyObject *)__pyx_v_default_value), (&__pyx_v_value)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(11, 136, __pyx_L1_error)

  /* "cpython/contextvars.pxd":138
 *     PyContextVar_Get(var, <PyObject*>default_value, &value)
 *     # value of context variable or 'default_value'
 *     pyvalue = <object>value             # <<<<<<<<<<<<<<
 *     Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'
 *     return pyvalue
 */
  __pyx_t_2 = ((PyObject *)__pyx_v_value);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_pyvalue = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "cpython/contextvars.pxd":139
 *     # value of context variable or 'default_value'
 *     pyvalue = <object>value
 *     Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'             # <<<<<<<<<<<<<<
 *     return pyvalue
 */
  Py_XDECREF(__pyx_v_value);

  /* "cpython/contextvars.pxd":140
 *     pyvalue = <object>value
 *     Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'
 *     return pyvalue             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_pyvalue);
  __pyx_r = __pyx_v_pyvalue;
  goto __pyx_L0;

  /* "cpython/contextvars.pxd":129
 * 
 * 
 * cdef inline object get_value_no_default(var, default_value=None):             # <<<<<<<<<<<<<<
 *     """Return a new reference to the value of the context variable,
 *     or the provided default value if no such value was found.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cpython.contextvars.get_value_no_default", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pyvalue);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":18
 * # This function will ascii encode unicode string inputs if necessary.
 * # In Python3, unicode strings are the default str type.
 * cdef bytes str_to_bytes(object s):             # <<<<<<<<<<<<<<
 *   if s is None or isinstance(s, bytes):
 *     return s
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(PyObject *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("str_to_bytes", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":19
 * # In Python3, unicode strings are the default str type.
 * cdef bytes str_to_bytes(object s):
 *   if s is None or isinstance(s, bytes):             # <<<<<<<<<<<<<<
 *     return s
 *   elif isinstance(s, unicode):
 */
  __pyx_t_2 = (__pyx_v_s == Py_None);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = PyBytes_Check(__pyx_v_s); 
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":20
 * cdef bytes str_to_bytes(object s):
 *   if s is None or isinstance(s, bytes):
 *     return s             # <<<<<<<<<<<<<<
 *   elif isinstance(s, unicode):
 *     return s.encode('ascii')
 */
    __Pyx_XDECREF(__pyx_r);
    if (!(likely(PyBytes_CheckExact(__pyx_v_s))||((__pyx_v_s) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_s))) __PYX_ERR(2, 20, __pyx_L1_error)
    __Pyx_INCREF(__pyx_v_s);
    __pyx_r = ((PyObject*)__pyx_v_s);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":19
 * # In Python3, unicode strings are the default str type.
 * cdef bytes str_to_bytes(object s):
 *   if s is None or isinstance(s, bytes):             # <<<<<<<<<<<<<<
 *     return s
 *   elif isinstance(s, unicode):
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":21
 *   if s is None or isinstance(s, bytes):
 *     return s
 *   elif isinstance(s, unicode):             # <<<<<<<<<<<<<<
 *     return s.encode('ascii')
 *   else:
 */
  __pyx_t_1 = PyUnicode_Check(__pyx_v_s); 
  if (likely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":22
 *     return s
 *   elif isinstance(s, unicode):
 *     return s.encode('ascii')             # <<<<<<<<<<<<<<
 *   else:
 *     raise TypeError('Expected bytes, str, or unicode, not {}'.format(type(s)))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s_encode); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 22, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_n_s_ascii};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 22, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_3))) __PYX_ERR(2, 22, __pyx_L1_error)
    __pyx_r = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":21
 *   if s is None or isinstance(s, bytes):
 *     return s
 *   elif isinstance(s, unicode):             # <<<<<<<<<<<<<<
 *     return s.encode('ascii')
 *   else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":24
 *     return s.encode('ascii')
 *   else:
 *     raise TypeError('Expected bytes, str, or unicode, not {}'.format(type(s)))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Expected_bytes_str_or_unicode_no, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 24, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, ((PyObject *)Py_TYPE(__pyx_v_s))};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 24, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 24, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(2, 24, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":18
 * # This function will ascii encode unicode string inputs if necessary.
 * # In Python3, unicode strings are the default str type.
 * cdef bytes str_to_bytes(object s):             # <<<<<<<<<<<<<<
 *   if s is None or isinstance(s, bytes):
 *     return s
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.str_to_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":32
 * # parameter rather than "object"), but would it be nice for our users? Right
 * # now we haven't yet heard from enough users to know one way or another.
 * cdef bytes _encode(object string_or_none):             # <<<<<<<<<<<<<<
 *   if string_or_none is None:
 *     return b''
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__encode(PyObject *__pyx_v_string_or_none) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_encode", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":33
 * # now we haven't yet heard from enough users to know one way or another.
 * cdef bytes _encode(object string_or_none):
 *   if string_or_none is None:             # <<<<<<<<<<<<<<
 *     return b''
 *   elif isinstance(string_or_none, (bytes,)):
 */
  __pyx_t_1 = (__pyx_v_string_or_none == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":34
 * cdef bytes _encode(object string_or_none):
 *   if string_or_none is None:
 *     return b''             # <<<<<<<<<<<<<<
 *   elif isinstance(string_or_none, (bytes,)):
 *     return <bytes>string_or_none
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_b__7);
    __pyx_r = __pyx_kp_b__7;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":33
 * # now we haven't yet heard from enough users to know one way or another.
 * cdef bytes _encode(object string_or_none):
 *   if string_or_none is None:             # <<<<<<<<<<<<<<
 *     return b''
 *   elif isinstance(string_or_none, (bytes,)):
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":35
 *   if string_or_none is None:
 *     return b''
 *   elif isinstance(string_or_none, (bytes,)):             # <<<<<<<<<<<<<<
 *     return <bytes>string_or_none
 *   elif isinstance(string_or_none, (unicode,)):
 */
  __pyx_t_1 = PyBytes_Check(__pyx_v_string_or_none); 
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":36
 *     return b''
 *   elif isinstance(string_or_none, (bytes,)):
 *     return <bytes>string_or_none             # <<<<<<<<<<<<<<
 *   elif isinstance(string_or_none, (unicode,)):
 *     return string_or_none.encode('utf8')
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject*)__pyx_v_string_or_none));
    __pyx_r = ((PyObject*)__pyx_v_string_or_none);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":35
 *   if string_or_none is None:
 *     return b''
 *   elif isinstance(string_or_none, (bytes,)):             # <<<<<<<<<<<<<<
 *     return <bytes>string_or_none
 *   elif isinstance(string_or_none, (unicode,)):
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":37
 *   elif isinstance(string_or_none, (bytes,)):
 *     return <bytes>string_or_none
 *   elif isinstance(string_or_none, (unicode,)):             # <<<<<<<<<<<<<<
 *     return string_or_none.encode('utf8')
 *   else:
 */
  __pyx_t_1 = PyUnicode_Check(__pyx_v_string_or_none); 
  if (likely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":38
 *     return <bytes>string_or_none
 *   elif isinstance(string_or_none, (unicode,)):
 *     return string_or_none.encode('utf8')             # <<<<<<<<<<<<<<
 *   else:
 *     raise TypeError('Expected str, not {}'.format(type(string_or_none)))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_string_or_none, __pyx_n_s_encode); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 38, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_n_s_utf8};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 38, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    if (!(likely(PyBytes_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_2))) __PYX_ERR(2, 38, __pyx_L1_error)
    __pyx_r = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":37
 *   elif isinstance(string_or_none, (bytes,)):
 *     return <bytes>string_or_none
 *   elif isinstance(string_or_none, (unicode,)):             # <<<<<<<<<<<<<<
 *     return string_or_none.encode('utf8')
 *   else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":40
 *     return string_or_none.encode('utf8')
 *   else:
 *     raise TypeError('Expected str, not {}'.format(type(string_or_none)))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Expected_str_not, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)Py_TYPE(__pyx_v_string_or_none))};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 40, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(2, 40, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":32
 * # parameter rather than "object"), but would it be nice for our users? Right
 * # now we haven't yet heard from enough users to know one way or another.
 * cdef bytes _encode(object string_or_none):             # <<<<<<<<<<<<<<
 *   if string_or_none is None:
 *     return b''
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._encode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":43
 * 
 * 
 * cdef str _decode(bytes bytestring):             # <<<<<<<<<<<<<<
 *     if isinstance(bytestring, (str,)):
 *         return <str>bytestring
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__decode(PyObject *__pyx_v_bytestring) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  unsigned int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_decode", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":44
 * 
 * cdef str _decode(bytes bytestring):
 *     if isinstance(bytestring, (str,)):             # <<<<<<<<<<<<<<
 *         return <str>bytestring
 *     else:
 */
  __pyx_t_1 = PyString_Check(__pyx_v_bytestring); 
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":45
 * cdef str _decode(bytes bytestring):
 *     if isinstance(bytestring, (str,)):
 *         return <str>bytestring             # <<<<<<<<<<<<<<
 *     else:
 *         try:
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject*)__pyx_v_bytestring));
    __pyx_r = ((PyObject*)__pyx_v_bytestring);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":44
 * 
 * cdef str _decode(bytes bytestring):
 *     if isinstance(bytestring, (str,)):             # <<<<<<<<<<<<<<
 *         return <str>bytestring
 *     else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":47
 *         return <str>bytestring
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return bytestring.decode('utf8')
 *         except UnicodeDecodeError:
 */
  /*else*/ {
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_4);
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":48
 *     else:
 *         try:
 *             return bytestring.decode('utf8')             # <<<<<<<<<<<<<<
 *         except UnicodeDecodeError:
 *             _LOGGER.exception('Invalid encoding on %s', bytestring)
 */
        __Pyx_XDECREF(__pyx_r);
        if (unlikely(__pyx_v_bytestring == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
          __PYX_ERR(2, 48, __pyx_L4_error)
        }
        __pyx_t_5 = __Pyx_decode_bytes(__pyx_v_bytestring, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 48, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (!(likely(PyString_CheckExact(__pyx_t_5)) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_5))) __PYX_ERR(2, 48, __pyx_L4_error)
        __pyx_r = ((PyObject*)__pyx_t_5);
        __pyx_t_5 = 0;
        goto __pyx_L8_try_return;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":47
 *         return <str>bytestring
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return bytestring.decode('utf8')
 *         except UnicodeDecodeError:
 */
      }
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":49
 *         try:
 *             return bytestring.decode('utf8')
 *         except UnicodeDecodeError:             # <<<<<<<<<<<<<<
 *             _LOGGER.exception('Invalid encoding on %s', bytestring)
 *             return bytestring.decode('latin1')
 */
      __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
      if (__pyx_t_6) {
        __Pyx_AddTraceback("grpc._cython.cygrpc._decode", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(2, 49, __pyx_L6_except_error)
        __Pyx_XGOTREF(__pyx_t_5);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":50
 *             return bytestring.decode('utf8')
 *         except UnicodeDecodeError:
 *             _LOGGER.exception('Invalid encoding on %s', bytestring)             # <<<<<<<<<<<<<<
 *             return bytestring.decode('latin1')
 */
        __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 50, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_exception); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 50, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = NULL;
        __pyx_t_12 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_11))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
          if (likely(__pyx_t_10)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
            __Pyx_INCREF(__pyx_t_10);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_11, function);
            __pyx_t_12 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_10, __pyx_kp_s_Invalid_encoding_on_s, __pyx_v_bytestring};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_12, 2+__pyx_t_12);
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 50, __pyx_L6_except_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":51
 *         except UnicodeDecodeError:
 *             _LOGGER.exception('Invalid encoding on %s', bytestring)
 *             return bytestring.decode('latin1')             # <<<<<<<<<<<<<<
 */
        __Pyx_XDECREF(__pyx_r);
        if (unlikely(__pyx_v_bytestring == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
          __PYX_ERR(2, 51, __pyx_L6_except_error)
        }
        __pyx_t_9 = __Pyx_decode_bytes(__pyx_v_bytestring, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 51, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_9);
        if (!(likely(PyString_CheckExact(__pyx_t_9)) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_9))) __PYX_ERR(2, 51, __pyx_L6_except_error)
        __pyx_r = ((PyObject*)__pyx_t_9);
        __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L7_except_return;
      }
      goto __pyx_L6_except_error;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":47
 *         return <str>bytestring
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return bytestring.decode('utf8')
 *         except UnicodeDecodeError:
 */
      __pyx_L6_except_error:;
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
      goto __pyx_L1_error;
      __pyx_L8_try_return:;
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
      goto __pyx_L0;
      __pyx_L7_except_return:;
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
      goto __pyx_L0;
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":43
 * 
 * 
 * cdef str _decode(bytes bytestring):             # <<<<<<<<<<<<<<
 *     if isinstance(bytestring, (str,)):
 *         return <str>bytestring
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("grpc._cython.cygrpc._decode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_arg_cannot_be_converted_to, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._GrpcArgWrapper.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._GrpcArgWrapper.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_arg_cannot_be_converted_to, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._GrpcArgWrapper.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":21
 * 
 * 
 * cdef tuple _wrap_grpc_arg(grpc_arg arg):             # <<<<<<<<<<<<<<
 *   wrapped = _GrpcArgWrapper()
 *   wrapped.arg = arg
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__wrap_grpc_arg(grpc_arg __pyx_v_arg) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *__pyx_v_wrapped = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_grpc_arg", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":22
 * 
 * cdef tuple _wrap_grpc_arg(grpc_arg arg):
 *   wrapped = _GrpcArgWrapper()             # <<<<<<<<<<<<<<
 *   wrapped.arg = arg
 *   return ("grpc.python._cygrpc._GrpcArgWrapper", wrapped)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_wrapped = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":23
 * cdef tuple _wrap_grpc_arg(grpc_arg arg):
 *   wrapped = _GrpcArgWrapper()
 *   wrapped.arg = arg             # <<<<<<<<<<<<<<
 *   return ("grpc.python._cygrpc._GrpcArgWrapper", wrapped)
 * 
 */
  __pyx_v_wrapped->arg = __pyx_v_arg;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":24
 *   wrapped = _GrpcArgWrapper()
 *   wrapped.arg = arg
 *   return ("grpc.python._cygrpc._GrpcArgWrapper", wrapped)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_kp_s_grpc_python__cygrpc__GrpcArgWrap);
  __Pyx_GIVEREF(__pyx_kp_s_grpc_python__cygrpc__GrpcArgWrap);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_s_grpc_python__cygrpc__GrpcArgWrap)) __PYX_ERR(3, 24, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_wrapped);
  __Pyx_GIVEREF((PyObject *)__pyx_v_wrapped);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_wrapped))) __PYX_ERR(3, 24, __pyx_L1_error);
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":21
 * 
 * 
 * cdef tuple _wrap_grpc_arg(grpc_arg arg):             # <<<<<<<<<<<<<<
 *   wrapped = _GrpcArgWrapper()
 *   wrapped.arg = arg
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._wrap_grpc_arg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_wrapped);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":27
 * 
 * 
 * cdef grpc_arg _unwrap_grpc_arg(tuple wrapped_arg):             # <<<<<<<<<<<<<<
 *   cdef _GrpcArgWrapper wrapped = wrapped_arg[1]
 *   return wrapped.arg
 */

static grpc_arg __pyx_f_4grpc_7_cython_6cygrpc__unwrap_grpc_arg(PyObject *__pyx_v_wrapped_arg) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *__pyx_v_wrapped = 0;
  grpc_arg __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_unwrap_grpc_arg", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":28
 * 
 * cdef grpc_arg _unwrap_grpc_arg(tuple wrapped_arg):
 *   cdef _GrpcArgWrapper wrapped = wrapped_arg[1]             # <<<<<<<<<<<<<<
 *   return wrapped.arg
 * 
 */
  if (unlikely(__pyx_v_wrapped_arg == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(3, 28, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_wrapped_arg, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper))))) __PYX_ERR(3, 28, __pyx_L1_error)
  __pyx_v_wrapped = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":29
 * cdef grpc_arg _unwrap_grpc_arg(tuple wrapped_arg):
 *   cdef _GrpcArgWrapper wrapped = wrapped_arg[1]
 *   return wrapped.arg             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_wrapped->arg;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":27
 * 
 * 
 * cdef grpc_arg _unwrap_grpc_arg(tuple wrapped_arg):             # <<<<<<<<<<<<<<
 *   cdef _GrpcArgWrapper wrapped = wrapped_arg[1]
 *   return wrapped.arg
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._unwrap_grpc_arg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_wrapped);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":34
 * cdef class _ChannelArg:
 * 
 *   cdef void c(self, argument, references) except *:             # <<<<<<<<<<<<<<
 *     key, value = argument
 *     cdef bytes encoded_key = _encode(key)
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_11_ChannelArg_c(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_v_self, PyObject *__pyx_v_argument, PyObject *__pyx_v_references) {
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_encoded_key = 0;
  PyObject *__pyx_v_encoded_value = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  int __pyx_t_6;
  char *__pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  grpc_arg __pyx_t_10;
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_11;
  unsigned int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":35
 * 
 *   cdef void c(self, argument, references) except *:
 *     key, value = argument             # <<<<<<<<<<<<<<
 *     cdef bytes encoded_key = _encode(key)
 *     if encoded_key is not key:
 */
  if ((likely(PyTuple_CheckExact(__pyx_v_argument))) || (PyList_CheckExact(__pyx_v_argument))) {
    PyObject* sequence = __pyx_v_argument;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(3, 35, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_2);
    #else
    __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_v_argument); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3);
    index = 0; __pyx_t_1 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_1);
    index = 1; __pyx_t_2 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_4(__pyx_t_3), 2) < 0) __PYX_ERR(3, 35, __pyx_L1_error)
    __pyx_t_4 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(3, 35, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_key = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_v_value = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":36
 *   cdef void c(self, argument, references) except *:
 *     key, value = argument
 *     cdef bytes encoded_key = _encode(key)             # <<<<<<<<<<<<<<
 *     if encoded_key is not key:
 *       references.append(encoded_key)
 */
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__encode(__pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_encoded_key = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":37
 *     key, value = argument
 *     cdef bytes encoded_key = _encode(key)
 *     if encoded_key is not key:             # <<<<<<<<<<<<<<
 *       references.append(encoded_key)
 *     self.c_argument.key = encoded_key
 */
  __pyx_t_5 = (__pyx_v_encoded_key != ((PyObject*)__pyx_v_key));
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":38
 *     cdef bytes encoded_key = _encode(key)
 *     if encoded_key is not key:
 *       references.append(encoded_key)             # <<<<<<<<<<<<<<
 *     self.c_argument.key = encoded_key
 *     if isinstance(value, int):
 */
    __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_references, __pyx_v_encoded_key); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 38, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":37
 *     key, value = argument
 *     cdef bytes encoded_key = _encode(key)
 *     if encoded_key is not key:             # <<<<<<<<<<<<<<
 *       references.append(encoded_key)
 *     self.c_argument.key = encoded_key
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":39
 *     if encoded_key is not key:
 *       references.append(encoded_key)
 *     self.c_argument.key = encoded_key             # <<<<<<<<<<<<<<
 *     if isinstance(value, int):
 *       self.c_argument.type = GRPC_ARG_INTEGER
 */
  if (unlikely(__pyx_v_encoded_key == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(3, 39, __pyx_L1_error)
  }
  __pyx_t_7 = __Pyx_PyBytes_AsWritableString(__pyx_v_encoded_key); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(3, 39, __pyx_L1_error)
  __pyx_v_self->c_argument.key = __pyx_t_7;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":40
 *       references.append(encoded_key)
 *     self.c_argument.key = encoded_key
 *     if isinstance(value, int):             # <<<<<<<<<<<<<<
 *       self.c_argument.type = GRPC_ARG_INTEGER
 *       self.c_argument.value.integer = value
 */
  __pyx_t_5 = PyInt_Check(__pyx_v_value); 
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":41
 *     self.c_argument.key = encoded_key
 *     if isinstance(value, int):
 *       self.c_argument.type = GRPC_ARG_INTEGER             # <<<<<<<<<<<<<<
 *       self.c_argument.value.integer = value
 *     elif isinstance(value, (bytes, str, unicode,)):
 */
    __pyx_v_self->c_argument.type = GRPC_ARG_INTEGER;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":42
 *     if isinstance(value, int):
 *       self.c_argument.type = GRPC_ARG_INTEGER
 *       self.c_argument.value.integer = value             # <<<<<<<<<<<<<<
 *     elif isinstance(value, (bytes, str, unicode,)):
 *       self.c_argument.type = GRPC_ARG_STRING
 */
    __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 42, __pyx_L1_error)
    __pyx_v_self->c_argument.value.integer = __pyx_t_8;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":40
 *       references.append(encoded_key)
 *     self.c_argument.key = encoded_key
 *     if isinstance(value, int):             # <<<<<<<<<<<<<<
 *       self.c_argument.type = GRPC_ARG_INTEGER
 *       self.c_argument.value.integer = value
 */
    goto __pyx_L6;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":43
 *       self.c_argument.type = GRPC_ARG_INTEGER
 *       self.c_argument.value.integer = value
 *     elif isinstance(value, (bytes, str, unicode,)):             # <<<<<<<<<<<<<<
 *       self.c_argument.type = GRPC_ARG_STRING
 *       encoded_value = _encode(value)
 */
  __pyx_t_9 = PyBytes_Check(__pyx_v_value); 
  if (!__pyx_t_9) {
  } else {
    __pyx_t_5 = __pyx_t_9;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_9 = PyString_Check(__pyx_v_value); 
  if (!__pyx_t_9) {
  } else {
    __pyx_t_5 = __pyx_t_9;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_9 = PyUnicode_Check(__pyx_v_value); 
  __pyx_t_5 = __pyx_t_9;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":44
 *       self.c_argument.value.integer = value
 *     elif isinstance(value, (bytes, str, unicode,)):
 *       self.c_argument.type = GRPC_ARG_STRING             # <<<<<<<<<<<<<<
 *       encoded_value = _encode(value)
 *       if encoded_value is not value:
 */
    __pyx_v_self->c_argument.type = GRPC_ARG_STRING;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":45
 *     elif isinstance(value, (bytes, str, unicode,)):
 *       self.c_argument.type = GRPC_ARG_STRING
 *       encoded_value = _encode(value)             # <<<<<<<<<<<<<<
 *       if encoded_value is not value:
 *         references.append(encoded_value)
 */
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__encode(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 45, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_encoded_value = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":46
 *       self.c_argument.type = GRPC_ARG_STRING
 *       encoded_value = _encode(value)
 *       if encoded_value is not value:             # <<<<<<<<<<<<<<
 *         references.append(encoded_value)
 *       self.c_argument.value.string = encoded_value
 */
    __pyx_t_5 = (__pyx_v_encoded_value != ((PyObject*)__pyx_v_value));
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":47
 *       encoded_value = _encode(value)
 *       if encoded_value is not value:
 *         references.append(encoded_value)             # <<<<<<<<<<<<<<
 *       self.c_argument.value.string = encoded_value
 *     elif isinstance(value, _GrpcArgWrapper):
 */
      __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_references, __pyx_v_encoded_value); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 47, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":46
 *       self.c_argument.type = GRPC_ARG_STRING
 *       encoded_value = _encode(value)
 *       if encoded_value is not value:             # <<<<<<<<<<<<<<
 *         references.append(encoded_value)
 *       self.c_argument.value.string = encoded_value
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":48
 *       if encoded_value is not value:
 *         references.append(encoded_value)
 *       self.c_argument.value.string = encoded_value             # <<<<<<<<<<<<<<
 *     elif isinstance(value, _GrpcArgWrapper):
 *       self.c_argument = (<_GrpcArgWrapper>value).arg
 */
    if (unlikely(__pyx_v_encoded_value == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
      __PYX_ERR(3, 48, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_PyBytes_AsWritableString(__pyx_v_encoded_value); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(3, 48, __pyx_L1_error)
    __pyx_v_self->c_argument.value.string = __pyx_t_7;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":43
 *       self.c_argument.type = GRPC_ARG_INTEGER
 *       self.c_argument.value.integer = value
 *     elif isinstance(value, (bytes, str, unicode,)):             # <<<<<<<<<<<<<<
 *       self.c_argument.type = GRPC_ARG_STRING
 *       encoded_value = _encode(value)
 */
    goto __pyx_L6;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":49
 *         references.append(encoded_value)
 *       self.c_argument.value.string = encoded_value
 *     elif isinstance(value, _GrpcArgWrapper):             # <<<<<<<<<<<<<<
 *       self.c_argument = (<_GrpcArgWrapper>value).arg
 *     elif hasattr(value, '__int__'):
 */
  __pyx_t_5 = __Pyx_TypeCheck(__pyx_v_value, __pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper); 
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":50
 *       self.c_argument.value.string = encoded_value
 *     elif isinstance(value, _GrpcArgWrapper):
 *       self.c_argument = (<_GrpcArgWrapper>value).arg             # <<<<<<<<<<<<<<
 *     elif hasattr(value, '__int__'):
 *       # Pointer objects must override __int__() to return
 */
    __pyx_t_10 = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *)__pyx_v_value)->arg;
    __pyx_v_self->c_argument = __pyx_t_10;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":49
 *         references.append(encoded_value)
 *       self.c_argument.value.string = encoded_value
 *     elif isinstance(value, _GrpcArgWrapper):             # <<<<<<<<<<<<<<
 *       self.c_argument = (<_GrpcArgWrapper>value).arg
 *     elif hasattr(value, '__int__'):
 */
    goto __pyx_L6;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":51
 *     elif isinstance(value, _GrpcArgWrapper):
 *       self.c_argument = (<_GrpcArgWrapper>value).arg
 *     elif hasattr(value, '__int__'):             # <<<<<<<<<<<<<<
 *       # Pointer objects must override __int__() to return
 *       # the underlying C address (Python ints are word size). The
 */
  __pyx_t_5 = __Pyx_HasAttr(__pyx_v_value, __pyx_n_s_int); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(3, 51, __pyx_L1_error)
  if (likely(__pyx_t_5)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":56
 *       # lifecycle of the pointer is fixed to the lifecycle of the
 *       # python object wrapping it.
 *       self.c_argument.type = GRPC_ARG_POINTER             # <<<<<<<<<<<<<<
 *       self.c_argument.value.pointer.vtable = &default_vtable
 *       self.c_argument.value.pointer.address = <void*>(<intptr_t>int(value))
 */
    __pyx_v_self->c_argument.type = GRPC_ARG_POINTER;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":57
 *       # python object wrapping it.
 *       self.c_argument.type = GRPC_ARG_POINTER
 *       self.c_argument.value.pointer.vtable = &default_vtable             # <<<<<<<<<<<<<<
 *       self.c_argument.value.pointer.address = <void*>(<intptr_t>int(value))
 *     else:
 */
    __pyx_v_self->c_argument.value.pointer.vtable = (&__pyx_v_4grpc_7_cython_6cygrpc_default_vtable);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":58
 *       self.c_argument.type = GRPC_ARG_POINTER
 *       self.c_argument.value.pointer.vtable = &default_vtable
 *       self.c_argument.value.pointer.address = <void*>(<intptr_t>int(value))             # <<<<<<<<<<<<<<
 *     else:
 *       raise TypeError(
 */
    __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 58, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_11 = PyInt_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 58, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_self->c_argument.value.pointer.p = ((void *)((__pyx_t_4grpc_7_cython_6cygrpc_intptr_t)__pyx_t_11));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":51
 *     elif isinstance(value, _GrpcArgWrapper):
 *       self.c_argument = (<_GrpcArgWrapper>value).arg
 *     elif hasattr(value, '__int__'):             # <<<<<<<<<<<<<<
 *       # Pointer objects must override __int__() to return
 *       # the underlying C address (Python ints are word size). The
 */
    goto __pyx_L6;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":60
 *       self.c_argument.value.pointer.address = <void*>(<intptr_t>int(value))
 *     else:
 *       raise TypeError(             # <<<<<<<<<<<<<<
 *           'Expected int, bytes, or behavior, got {}'.format(type(value)))
 * 
 */
  /*else*/ {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":61
 *     else:
 *       raise TypeError(
 *           'Expected int, bytes, or behavior, got {}'.format(type(value)))             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Expected_int_bytes_or_behavior_g, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 61, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_12 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_12 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(__pyx_v_value))};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_12, 1+__pyx_t_12);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 61, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":60
 *       self.c_argument.value.pointer.address = <void*>(<intptr_t>int(value))
 *     else:
 *       raise TypeError(             # <<<<<<<<<<<<<<
 *           'Expected int, bytes, or behavior, got {}'.format(type(value)))
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(3, 60, __pyx_L1_error)
  }
  __pyx_L6:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":34
 * cdef class _ChannelArg:
 * 
 *   cdef void c(self, argument, references) except *:             # <<<<<<<<<<<<<<
 *     key, value = argument
 *     cdef bytes encoded_key = _encode(key)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArg.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_encoded_key);
  __Pyx_XDECREF(__pyx_v_encoded_value);
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_11_ChannelArg_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11_ChannelArg___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11_ChannelArg___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_c_argument_cannot_be_conver, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArg.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_11_ChannelArg_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArg.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11_ChannelArg_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11_ChannelArg_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_c_argument_cannot_be_conver, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArg.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":66
 * cdef class _ChannelArgs:
 * 
 *   def __cinit__(self, arguments):             # <<<<<<<<<<<<<<
 *     self._arguments = () if arguments is None else tuple(arguments)
 *     self._channel_args = []
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_arguments = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_arguments,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_arguments)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 66, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(3, 66, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_arguments = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 66, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArgs.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_self), __pyx_v_arguments);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self, PyObject *__pyx_v_arguments) {
  PyObject *__pyx_v_index = NULL;
  PyObject *__pyx_v_argument = NULL;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_v_channel_arg = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  grpc_arg __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":67
 * 
 *   def __cinit__(self, arguments):
 *     self._arguments = () if arguments is None else tuple(arguments)             # <<<<<<<<<<<<<<
 *     self._channel_args = []
 *     self._references = []
 */
  __pyx_t_2 = (__pyx_v_arguments == Py_None);
  if (__pyx_t_2) {
    __Pyx_INCREF(__pyx_empty_tuple);
    __pyx_t_1 = __pyx_empty_tuple;
  } else {
    __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_v_arguments); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_arguments);
  __Pyx_DECREF(__pyx_v_self->_arguments);
  __pyx_v_self->_arguments = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":68
 *   def __cinit__(self, arguments):
 *     self._arguments = () if arguments is None else tuple(arguments)
 *     self._channel_args = []             # <<<<<<<<<<<<<<
 *     self._references = []
 *     self._c_arguments.arguments_length = len(self._arguments)
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_channel_args);
  __Pyx_DECREF(__pyx_v_self->_channel_args);
  __pyx_v_self->_channel_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":69
 *     self._arguments = () if arguments is None else tuple(arguments)
 *     self._channel_args = []
 *     self._references = []             # <<<<<<<<<<<<<<
 *     self._c_arguments.arguments_length = len(self._arguments)
 *     if self._c_arguments.arguments_length != 0:
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_references);
  __Pyx_DECREF(__pyx_v_self->_references);
  __pyx_v_self->_references = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":70
 *     self._channel_args = []
 *     self._references = []
 *     self._c_arguments.arguments_length = len(self._arguments)             # <<<<<<<<<<<<<<
 *     if self._c_arguments.arguments_length != 0:
 *       self._c_arguments.arguments = <grpc_arg *>gpr_malloc(
 */
  __pyx_t_1 = __pyx_v_self->_arguments;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(3, 70, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(3, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->_c_arguments.num_args = __pyx_t_4;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":71
 *     self._references = []
 *     self._c_arguments.arguments_length = len(self._arguments)
 *     if self._c_arguments.arguments_length != 0:             # <<<<<<<<<<<<<<
 *       self._c_arguments.arguments = <grpc_arg *>gpr_malloc(
 *           self._c_arguments.arguments_length * sizeof(grpc_arg))
 */
  __pyx_t_2 = (__pyx_v_self->_c_arguments.num_args != 0);
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":72
 *     self._c_arguments.arguments_length = len(self._arguments)
 *     if self._c_arguments.arguments_length != 0:
 *       self._c_arguments.arguments = <grpc_arg *>gpr_malloc(             # <<<<<<<<<<<<<<
 *           self._c_arguments.arguments_length * sizeof(grpc_arg))
 *       for index, argument in enumerate(self._arguments):
 */
    __pyx_v_self->_c_arguments.args = ((grpc_arg *)gpr_malloc((__pyx_v_self->_c_arguments.num_args * (sizeof(grpc_arg)))));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":74
 *       self._c_arguments.arguments = <grpc_arg *>gpr_malloc(
 *           self._c_arguments.arguments_length * sizeof(grpc_arg))
 *       for index, argument in enumerate(self._arguments):             # <<<<<<<<<<<<<<
 *         channel_arg = _ChannelArg()
 *         channel_arg.c(argument, self._references)
 */
    __Pyx_INCREF(__pyx_int_0);
    __pyx_t_1 = __pyx_int_0;
    __pyx_t_3 = __pyx_v_self->_arguments; __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = 0;
    for (;;) {
      {
        Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
        #if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 74, __pyx_L1_error)
        #endif
        if (__pyx_t_4 >= __pyx_temp) break;
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(3, 74, __pyx_L1_error)
      #else
      __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 74, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_argument, __pyx_t_5);
      __pyx_t_5 = 0;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_1);
      __pyx_t_5 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 74, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1);
      __pyx_t_1 = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":75
 *           self._c_arguments.arguments_length * sizeof(grpc_arg))
 *       for index, argument in enumerate(self._arguments):
 *         channel_arg = _ChannelArg()             # <<<<<<<<<<<<<<
 *         channel_arg.c(argument, self._references)
 *         self._c_arguments.arguments[index] = channel_arg.c_argument
 */
      __pyx_t_5 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 75, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_XDECREF_SET(__pyx_v_channel_arg, ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *)__pyx_t_5));
      __pyx_t_5 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":76
 *       for index, argument in enumerate(self._arguments):
 *         channel_arg = _ChannelArg()
 *         channel_arg.c(argument, self._references)             # <<<<<<<<<<<<<<
 *         self._c_arguments.arguments[index] = channel_arg.c_argument
 *         self._channel_args.append(channel_arg)
 */
      __pyx_t_5 = __pyx_v_self->_references;
      __Pyx_INCREF(__pyx_t_5);
      ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArg *)__pyx_v_channel_arg->__pyx_vtab)->c(__pyx_v_channel_arg, __pyx_v_argument, __pyx_t_5); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 76, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":77
 *         channel_arg = _ChannelArg()
 *         channel_arg.c(argument, self._references)
 *         self._c_arguments.arguments[index] = channel_arg.c_argument             # <<<<<<<<<<<<<<
 *         self._channel_args.append(channel_arg)
 * 
 */
      __pyx_t_6 = __pyx_v_channel_arg->c_argument;
      __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 77, __pyx_L1_error)
      (__pyx_v_self->_c_arguments.args[__pyx_t_7]) = __pyx_t_6;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":78
 *         channel_arg.c(argument, self._references)
 *         self._c_arguments.arguments[index] = channel_arg.c_argument
 *         self._channel_args.append(channel_arg)             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_args *c_args(self) except *:
 */
      if (unlikely(__pyx_v_self->_channel_args == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
        __PYX_ERR(3, 78, __pyx_L1_error)
      }
      __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_self->_channel_args, ((PyObject *)__pyx_v_channel_arg)); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(3, 78, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":74
 *       self._c_arguments.arguments = <grpc_arg *>gpr_malloc(
 *           self._c_arguments.arguments_length * sizeof(grpc_arg))
 *       for index, argument in enumerate(self._arguments):             # <<<<<<<<<<<<<<
 *         channel_arg = _ChannelArg()
 *         channel_arg.c(argument, self._references)
 */
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":71
 *     self._references = []
 *     self._c_arguments.arguments_length = len(self._arguments)
 *     if self._c_arguments.arguments_length != 0:             # <<<<<<<<<<<<<<
 *       self._c_arguments.arguments = <grpc_arg *>gpr_malloc(
 *           self._c_arguments.arguments_length * sizeof(grpc_arg))
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":66
 * cdef class _ChannelArgs:
 * 
 *   def __cinit__(self, arguments):             # <<<<<<<<<<<<<<
 *     self._arguments = () if arguments is None else tuple(arguments)
 *     self._channel_args = []
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArgs.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_index);
  __Pyx_XDECREF(__pyx_v_argument);
  __Pyx_XDECREF((PyObject *)__pyx_v_channel_arg);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":80
 *         self._channel_args.append(channel_arg)
 * 
 *   cdef grpc_channel_args *c_args(self) except *:             # <<<<<<<<<<<<<<
 *     return &self._c_arguments
 * 
 */

static grpc_channel_args *__pyx_f_4grpc_7_cython_6cygrpc_12_ChannelArgs_c_args(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self) {
  grpc_channel_args *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":81
 * 
 *   cdef grpc_channel_args *c_args(self) except *:
 *     return &self._c_arguments             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
 */
  __pyx_r = (&__pyx_v_self->_c_arguments);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":80
 *         self._channel_args.append(channel_arg)
 * 
 *   cdef grpc_channel_args *c_args(self) except *:             # <<<<<<<<<<<<<<
 *     return &self._c_arguments
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":83
 *     return &self._c_arguments
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self._c_arguments.arguments != NULL:
 *       gpr_free(self._c_arguments.arguments)
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":84
 * 
 *   def __dealloc__(self):
 *     if self._c_arguments.arguments != NULL:             # <<<<<<<<<<<<<<
 *       gpr_free(self._c_arguments.arguments)
 */
  __pyx_t_1 = (__pyx_v_self->_c_arguments.args != NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":85
 *   def __dealloc__(self):
 *     if self._c_arguments.arguments != NULL:
 *       gpr_free(self._c_arguments.arguments)             # <<<<<<<<<<<<<<
 */
    gpr_free(__pyx_v_self->_c_arguments.args);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":84
 * 
 *   def __dealloc__(self):
 *     if self._c_arguments.arguments != NULL:             # <<<<<<<<<<<<<<
 *       gpr_free(self._c_arguments.arguments)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":83
 *     return &self._c_arguments
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self._c_arguments.arguments != NULL:
 *       gpr_free(self._c_arguments.arguments)
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pxd.pxi":31
 * cdef class _ChannelArgs:
 * 
 *   cdef readonly tuple _arguments             # <<<<<<<<<<<<<<
 *   cdef list _channel_args
 *   cdef readonly list _references
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_10_arguments_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_10_arguments_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_10_arguments___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_10_arguments___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_arguments);
  __pyx_r = __pyx_v_self->_arguments;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pxd.pxi":33
 *   cdef readonly tuple _arguments
 *   cdef list _channel_args
 *   cdef readonly list _references             # <<<<<<<<<<<<<<
 *   cdef grpc_channel_args _c_arguments
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_11_references_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_11_references_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_11_references___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_11_references___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_references);
  __pyx_r = __pyx_v_self->_references;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12_ChannelArgs_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArgs.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12_ChannelArgs_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArgs.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArgs.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":18
 * cdef class Call:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     # Create an *empty* call
 *     fork_handlers_and_grpc_init()
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_4Call_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_4Call_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_4Call___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":20
 *   def __cinit__(self):
 *     # Create an *empty* call
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     self.c_call = NULL
 *     self.references = []
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":21
 *     # Create an *empty* call
 *     fork_handlers_and_grpc_init()
 *     self.c_call = NULL             # <<<<<<<<<<<<<<
 *     self.references = []
 * 
 */
  __pyx_v_self->c_call = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":22
 *     fork_handlers_and_grpc_init()
 *     self.c_call = NULL
 *     self.references = []             # <<<<<<<<<<<<<<
 * 
 *   def _start_batch(self, operations, tag, retain_self):
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->references);
  __Pyx_DECREF(__pyx_v_self->references);
  __pyx_v_self->references = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":18
 * cdef class Call:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     # Create an *empty* call
 *     fork_handlers_and_grpc_init()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":24
 *     self.references = []
 * 
 *   def _start_batch(self, operations, tag, retain_self):             # <<<<<<<<<<<<<<
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_3_start_batch(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_3_start_batch = {"_start_batch", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_3_start_batch, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_3_start_batch(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_operations = 0;
  PyObject *__pyx_v_tag = 0;
  PyObject *__pyx_v_retain_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_start_batch (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_operations,&__pyx_n_s_tag,&__pyx_n_s_retain_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_operations)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 24, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 24, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_start_batch", 1, 3, 3, 1); __PYX_ERR(4, 24, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_retain_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 24, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_start_batch", 1, 3, 3, 2); __PYX_ERR(4, 24, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_start_batch") < 0)) __PYX_ERR(4, 24, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_operations = values[0];
    __pyx_v_tag = values[1];
    __pyx_v_retain_self = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_start_batch", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 24, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call._start_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_2_start_batch(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self), __pyx_v_operations, __pyx_v_tag, __pyx_v_retain_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_2_start_batch(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag, PyObject *__pyx_v_retain_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_batch_operation_tag = 0;
  grpc_call_error __pyx_v_error;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_start_batch", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":25
 * 
 *   def _start_batch(self, operations, tag, retain_self):
 *     if not self.is_valid:             # <<<<<<<<<<<<<<
 *       raise ValueError("invalid call object cannot be used from Python")
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_is_valid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(4, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (unlikely(__pyx_t_3)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":26
 *   def _start_batch(self, operations, tag, retain_self):
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")             # <<<<<<<<<<<<<<
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(
 *         tag, operations, self if retain_self else None)
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 26, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(4, 26, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":25
 * 
 *   def _start_batch(self, operations, tag, retain_self):
 *     if not self.is_valid:             # <<<<<<<<<<<<<<
 *       raise ValueError("invalid call object cannot be used from Python")
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":28
 *       raise ValueError("invalid call object cannot be used from Python")
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(
 *         tag, operations, self if retain_self else None)             # <<<<<<<<<<<<<<
 *     batch_operation_tag.prepare()
 *     cpython.Py_INCREF(batch_operation_tag)
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_retain_self); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(4, 28, __pyx_L1_error)
  if (__pyx_t_3) {
    __Pyx_INCREF((PyObject *)__pyx_v_self);
    __pyx_t_1 = ((PyObject *)__pyx_v_self);
  } else {
    __Pyx_INCREF(Py_None);
    __pyx_t_1 = Py_None;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":27
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(             # <<<<<<<<<<<<<<
 *         tag, operations, self if retain_self else None)
 *     batch_operation_tag.prepare()
 */
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_tag);
  __Pyx_GIVEREF(__pyx_v_tag);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_tag)) __PYX_ERR(4, 27, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_operations);
  __Pyx_GIVEREF(__pyx_v_operations);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_operations)) __PYX_ERR(4, 27, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_1)) __PYX_ERR(4, 27, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag), __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_batch_operation_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":29
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(
 *         tag, operations, self if retain_self else None)
 *     batch_operation_tag.prepare()             # <<<<<<<<<<<<<<
 *     cpython.Py_INCREF(batch_operation_tag)
 *     cdef grpc_call_error error
 */
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_batch_operation_tag->__pyx_base.__pyx_vtab)->prepare(__pyx_v_batch_operation_tag); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 29, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":30
 *         tag, operations, self if retain_self else None)
 *     batch_operation_tag.prepare()
 *     cpython.Py_INCREF(batch_operation_tag)             # <<<<<<<<<<<<<<
 *     cdef grpc_call_error error
 *     with nogil:
 */
  Py_INCREF(((PyObject *)__pyx_v_batch_operation_tag));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":32
 *     cpython.Py_INCREF(batch_operation_tag)
 *     cdef grpc_call_error error
 *     with nogil:             # <<<<<<<<<<<<<<
 *       error = grpc_call_start_batch(
 *           self.c_call, batch_operation_tag.c_ops, batch_operation_tag.c_nops,
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":33
 *     cdef grpc_call_error error
 *     with nogil:
 *       error = grpc_call_start_batch(             # <<<<<<<<<<<<<<
 *           self.c_call, batch_operation_tag.c_ops, batch_operation_tag.c_nops,
 *           <cpython.PyObject *>batch_operation_tag, NULL)
 */
        __pyx_v_error = grpc_call_start_batch(__pyx_v_self->c_call, __pyx_v_batch_operation_tag->c_ops, __pyx_v_batch_operation_tag->c_nops, ((PyObject *)__pyx_v_batch_operation_tag), NULL);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":32
 *     cpython.Py_INCREF(batch_operation_tag)
 *     cdef grpc_call_error error
 *     with nogil:             # <<<<<<<<<<<<<<
 *       error = grpc_call_start_batch(
 *           self.c_call, batch_operation_tag.c_ops, batch_operation_tag.c_nops,
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L6;
        }
        __pyx_L6:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":36
 *           self.c_call, batch_operation_tag.c_ops, batch_operation_tag.c_nops,
 *           <cpython.PyObject *>batch_operation_tag, NULL)
 *     return error             # <<<<<<<<<<<<<<
 * 
 *   def start_client_batch(self, operations, tag):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_call_error(__pyx_v_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":24
 *     self.references = []
 * 
 *   def _start_batch(self, operations, tag, retain_self):             # <<<<<<<<<<<<<<
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call._start_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_batch_operation_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":38
 *     return error
 * 
 *   def start_client_batch(self, operations, tag):             # <<<<<<<<<<<<<<
 *     # We don't reference this call in the operations tag because
 *     # it should be cancelled when it goes out of scope
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_5start_client_batch(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_5start_client_batch = {"start_client_batch", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_5start_client_batch, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_5start_client_batch(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_operations = 0;
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("start_client_batch (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_operations,&__pyx_n_s_tag,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_operations)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 38, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 38, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("start_client_batch", 1, 2, 2, 1); __PYX_ERR(4, 38, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "start_client_batch") < 0)) __PYX_ERR(4, 38, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_operations = values[0];
    __pyx_v_tag = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("start_client_batch", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 38, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.start_client_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_4start_client_batch(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self), __pyx_v_operations, __pyx_v_tag);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_4start_client_batch(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("start_client_batch", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":41
 *     # We don't reference this call in the operations tag because
 *     # it should be cancelled when it goes out of scope
 *     return self._start_batch(operations, tag, False)             # <<<<<<<<<<<<<<
 * 
 *   def start_server_batch(self, operations, tag):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_start_batch); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_v_operations, __pyx_v_tag, Py_False};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 41, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":38
 *     return error
 * 
 *   def start_client_batch(self, operations, tag):             # <<<<<<<<<<<<<<
 *     # We don't reference this call in the operations tag because
 *     # it should be cancelled when it goes out of scope
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.start_client_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":43
 *     return self._start_batch(operations, tag, False)
 * 
 *   def start_server_batch(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return self._start_batch(operations, tag, True)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_7start_server_batch(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_7start_server_batch = {"start_server_batch", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_7start_server_batch, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_7start_server_batch(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_operations = 0;
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("start_server_batch (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_operations,&__pyx_n_s_tag,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_operations)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 43, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 43, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("start_server_batch", 1, 2, 2, 1); __PYX_ERR(4, 43, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "start_server_batch") < 0)) __PYX_ERR(4, 43, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_operations = values[0];
    __pyx_v_tag = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("start_server_batch", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 43, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.start_server_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_6start_server_batch(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self), __pyx_v_operations, __pyx_v_tag);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_6start_server_batch(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("start_server_batch", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":44
 * 
 *   def start_server_batch(self, operations, tag):
 *     return self._start_batch(operations, tag, True)             # <<<<<<<<<<<<<<
 * 
 *   def cancel(
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_start_batch); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_v_operations, __pyx_v_tag, Py_True};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":43
 *     return self._start_batch(operations, tag, False)
 * 
 *   def start_server_batch(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return self._start_batch(operations, tag, True)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.start_server_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":46
 *     return self._start_batch(operations, tag, True)
 * 
 *   def cancel(             # <<<<<<<<<<<<<<
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_9cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_9cancel = {"cancel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_9cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_9cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_status_code __pyx_v_error_code;
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_error_code,&__pyx_n_s_details,0};

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":48
 *   def cancel(
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):             # <<<<<<<<<<<<<<
 *     details = str_to_bytes(details)
 *     if not self.is_valid:
 */
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_error_code);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 46, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_details);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 46, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "cancel") < 0)) __PYX_ERR(4, 46, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_error_code = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 47, __pyx_L3_error)
    } else {
      __pyx_v_error_code = __pyx_k__9;
    }
    __pyx_v_details = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cancel", 0, 0, 2, __pyx_nargs); __PYX_ERR(4, 46, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_8cancel(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self), __pyx_v_error_code, __pyx_v_details);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":46
 *     return self._start_batch(operations, tag, True)
 * 
 *   def cancel(             # <<<<<<<<<<<<<<
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):
 */

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_8cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, grpc_status_code __pyx_v_error_code, PyObject *__pyx_v_details) {
  grpc_call_error __pyx_v_result;
  char *__pyx_v_c_details;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  char *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cancel", 0);
  __Pyx_INCREF(__pyx_v_details);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":49
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):
 *     details = str_to_bytes(details)             # <<<<<<<<<<<<<<
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_details); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_details, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":50
 *       details=None):
 *     details = str_to_bytes(details)
 *     if not self.is_valid:             # <<<<<<<<<<<<<<
 *       raise ValueError("invalid call object cannot be used from Python")
 *     if (details is None) != (error_code == GRPC_STATUS__DO_NOT_USE):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_is_valid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(4, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (unlikely(__pyx_t_3)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":51
 *     details = str_to_bytes(details)
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")             # <<<<<<<<<<<<<<
 *     if (details is None) != (error_code == GRPC_STATUS__DO_NOT_USE):
 *       raise ValueError("if error_code is specified, so must details "
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(4, 51, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":50
 *       details=None):
 *     details = str_to_bytes(details)
 *     if not self.is_valid:             # <<<<<<<<<<<<<<
 *       raise ValueError("invalid call object cannot be used from Python")
 *     if (details is None) != (error_code == GRPC_STATUS__DO_NOT_USE):
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":52
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
 *     if (details is None) != (error_code == GRPC_STATUS__DO_NOT_USE):             # <<<<<<<<<<<<<<
 *       raise ValueError("if error_code is specified, so must details "
 *                        "(and vice-versa)")
 */
  __pyx_t_3 = (__pyx_v_details == Py_None);
  __pyx_t_2 = (__pyx_t_3 != (__pyx_v_error_code == GRPC_STATUS__DO_NOT_USE));
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":53
 *       raise ValueError("invalid call object cannot be used from Python")
 *     if (details is None) != (error_code == GRPC_STATUS__DO_NOT_USE):
 *       raise ValueError("if error_code is specified, so must details "             # <<<<<<<<<<<<<<
 *                        "(and vice-versa)")
 *     cdef grpc_call_error result
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 53, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(4, 53, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":52
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
 *     if (details is None) != (error_code == GRPC_STATUS__DO_NOT_USE):             # <<<<<<<<<<<<<<
 *       raise ValueError("if error_code is specified, so must details "
 *                        "(and vice-versa)")
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":56
 *                        "(and vice-versa)")
 *     cdef grpc_call_error result
 *     cdef char *c_details = NULL             # <<<<<<<<<<<<<<
 *     if error_code != GRPC_STATUS__DO_NOT_USE:
 *       self.references.append(details)
 */
  __pyx_v_c_details = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":57
 *     cdef grpc_call_error result
 *     cdef char *c_details = NULL
 *     if error_code != GRPC_STATUS__DO_NOT_USE:             # <<<<<<<<<<<<<<
 *       self.references.append(details)
 *       c_details = details
 */
  __pyx_t_2 = (__pyx_v_error_code != GRPC_STATUS__DO_NOT_USE);
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":58
 *     cdef char *c_details = NULL
 *     if error_code != GRPC_STATUS__DO_NOT_USE:
 *       self.references.append(details)             # <<<<<<<<<<<<<<
 *       c_details = details
 *       with nogil:
 */
    if (unlikely(__pyx_v_self->references == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
      __PYX_ERR(4, 58, __pyx_L1_error)
    }
    __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_self->references, __pyx_v_details); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(4, 58, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":59
 *     if error_code != GRPC_STATUS__DO_NOT_USE:
 *       self.references.append(details)
 *       c_details = details             # <<<<<<<<<<<<<<
 *       with nogil:
 *         result = grpc_call_cancel_with_status(
 */
    __pyx_t_5 = __Pyx_PyObject_AsWritableString(__pyx_v_details); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) __PYX_ERR(4, 59, __pyx_L1_error)
    __pyx_v_c_details = __pyx_t_5;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":60
 *       self.references.append(details)
 *       c_details = details
 *       with nogil:             # <<<<<<<<<<<<<<
 *         result = grpc_call_cancel_with_status(
 *             self.c_call, error_code, c_details, NULL)
 */
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        #endif
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":61
 *       c_details = details
 *       with nogil:
 *         result = grpc_call_cancel_with_status(             # <<<<<<<<<<<<<<
 *             self.c_call, error_code, c_details, NULL)
 *       return result
 */
          __pyx_v_result = grpc_call_cancel_with_status(__pyx_v_self->c_call, __pyx_v_error_code, __pyx_v_c_details, NULL);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":60
 *       self.references.append(details)
 *       c_details = details
 *       with nogil:             # <<<<<<<<<<<<<<
 *         result = grpc_call_cancel_with_status(
 *             self.c_call, error_code, c_details, NULL)
 */
        /*finally:*/ {
          /*normal exit:*/{
            #ifdef WITH_THREAD
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L8;
          }
          __pyx_L8:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":63
 *         result = grpc_call_cancel_with_status(
 *             self.c_call, error_code, c_details, NULL)
 *       return result             # <<<<<<<<<<<<<<
 *     else:
 *       with nogil:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_From_grpc_call_error(__pyx_v_result); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 63, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":57
 *     cdef grpc_call_error result
 *     cdef char *c_details = NULL
 *     if error_code != GRPC_STATUS__DO_NOT_USE:             # <<<<<<<<<<<<<<
 *       self.references.append(details)
 *       c_details = details
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":65
 *       return result
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         result = grpc_call_cancel(self.c_call, NULL)
 *       return result
 */
  /*else*/ {
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        #endif
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":66
 *     else:
 *       with nogil:
 *         result = grpc_call_cancel(self.c_call, NULL)             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
          __pyx_v_result = grpc_call_cancel(__pyx_v_self->c_call, NULL);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":65
 *       return result
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         result = grpc_call_cancel(self.c_call, NULL)
 *       return result
 */
        /*finally:*/ {
          /*normal exit:*/{
            #ifdef WITH_THREAD
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L11;
          }
          __pyx_L11:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":67
 *       with nogil:
 *         result = grpc_call_cancel(self.c_call, NULL)
 *       return result             # <<<<<<<<<<<<<<
 * 
 *   def set_credentials(self, CallCredentials call_credentials not None):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_From_grpc_call_error(__pyx_v_result); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":46
 *     return self._start_batch(operations, tag, True)
 * 
 *   def cancel(             # <<<<<<<<<<<<<<
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_details);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":69
 *       return result
 * 
 *   def set_credentials(self, CallCredentials call_credentials not None):             # <<<<<<<<<<<<<<
 *     cdef grpc_call_credentials *c_call_credentials = call_credentials.c()
 *     cdef grpc_call_error call_error = grpc_call_set_credentials(
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_11set_credentials(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_11set_credentials = {"set_credentials", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_11set_credentials, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_11set_credentials(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_credentials = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_credentials (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_call_credentials,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call_credentials)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 69, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_credentials") < 0)) __PYX_ERR(4, 69, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_call_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_credentials", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 69, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.set_credentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_credentials), __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, 0, "call_credentials", 0))) __PYX_ERR(4, 69, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_10set_credentials(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self), __pyx_v_call_credentials);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_10set_credentials(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_credentials) {
  grpc_call_credentials *__pyx_v_c_call_credentials;
  grpc_call_error __pyx_v_call_error;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  grpc_call_credentials *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_credentials", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":70
 * 
 *   def set_credentials(self, CallCredentials call_credentials not None):
 *     cdef grpc_call_credentials *c_call_credentials = call_credentials.c()             # <<<<<<<<<<<<<<
 *     cdef grpc_call_error call_error = grpc_call_set_credentials(
 *         self.c_call, c_call_credentials)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_call_credentials->__pyx_vtab)->c(__pyx_v_call_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 70, __pyx_L1_error)
  __pyx_v_c_call_credentials = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":71
 *   def set_credentials(self, CallCredentials call_credentials not None):
 *     cdef grpc_call_credentials *c_call_credentials = call_credentials.c()
 *     cdef grpc_call_error call_error = grpc_call_set_credentials(             # <<<<<<<<<<<<<<
 *         self.c_call, c_call_credentials)
 *     grpc_call_credentials_release(c_call_credentials)
 */
  __pyx_v_call_error = grpc_call_set_credentials(__pyx_v_self->c_call, __pyx_v_c_call_credentials);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":73
 *     cdef grpc_call_error call_error = grpc_call_set_credentials(
 *         self.c_call, c_call_credentials)
 *     grpc_call_credentials_release(c_call_credentials)             # <<<<<<<<<<<<<<
 *     return call_error
 * 
 */
  grpc_call_credentials_release(__pyx_v_c_call_credentials);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":74
 *         self.c_call, c_call_credentials)
 *     grpc_call_credentials_release(c_call_credentials)
 *     return call_error             # <<<<<<<<<<<<<<
 * 
 *   def peer(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyInt_From_grpc_call_error(__pyx_v_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":69
 *       return result
 * 
 *   def set_credentials(self, CallCredentials call_credentials not None):             # <<<<<<<<<<<<<<
 *     cdef grpc_call_credentials *c_call_credentials = call_credentials.c()
 *     cdef grpc_call_error call_error = grpc_call_set_credentials(
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.set_credentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":76
 *     return call_error
 * 
 *   def peer(self):             # <<<<<<<<<<<<<<
 *     cdef char *peer = NULL
 *     with nogil:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_13peer(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_13peer = {"peer", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_13peer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_13peer(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("peer", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "peer", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_12peer(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_12peer(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self) {
  char *__pyx_v_peer;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":77
 * 
 *   def peer(self):
 *     cdef char *peer = NULL             # <<<<<<<<<<<<<<
 *     with nogil:
 *       peer = grpc_call_get_peer(self.c_call)
 */
  __pyx_v_peer = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":78
 *   def peer(self):
 *     cdef char *peer = NULL
 *     with nogil:             # <<<<<<<<<<<<<<
 *       peer = grpc_call_get_peer(self.c_call)
 *     result = <bytes>peer
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":79
 *     cdef char *peer = NULL
 *     with nogil:
 *       peer = grpc_call_get_peer(self.c_call)             # <<<<<<<<<<<<<<
 *     result = <bytes>peer
 *     with nogil:
 */
        __pyx_v_peer = grpc_call_get_peer(__pyx_v_self->c_call);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":78
 *   def peer(self):
 *     cdef char *peer = NULL
 *     with nogil:             # <<<<<<<<<<<<<<
 *       peer = grpc_call_get_peer(self.c_call)
 *     result = <bytes>peer
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":80
 *     with nogil:
 *       peer = grpc_call_get_peer(self.c_call)
 *     result = <bytes>peer             # <<<<<<<<<<<<<<
 *     with nogil:
 *       gpr_free(peer)
 */
  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_peer); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_t_1;
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":81
 *       peer = grpc_call_get_peer(self.c_call)
 *     result = <bytes>peer
 *     with nogil:             # <<<<<<<<<<<<<<
 *       gpr_free(peer)
 *     return result
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":82
 *     result = <bytes>peer
 *     with nogil:
 *       gpr_free(peer)             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
        gpr_free(__pyx_v_peer);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":81
 *       peer = grpc_call_get_peer(self.c_call)
 *     result = <bytes>peer
 *     with nogil:             # <<<<<<<<<<<<<<
 *       gpr_free(peer)
 *     return result
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L8;
        }
        __pyx_L8:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":83
 *     with nogil:
 *       gpr_free(peer)
 *     return result             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":76
 *     return call_error
 * 
 *   def peer(self):             # <<<<<<<<<<<<<<
 *     cdef char *peer = NULL
 *     with nogil:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.peer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":85
 *     return result
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       if self.c_call != NULL:
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_4Call_15__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_4Call_15__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_4Call_14__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_4Call_14__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":86
 * 
 *   def __dealloc__(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       if self.c_call != NULL:
 *         grpc_call_unref(self.c_call)
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":87
 *   def __dealloc__(self):
 *     with nogil:
 *       if self.c_call != NULL:             # <<<<<<<<<<<<<<
 *         grpc_call_unref(self.c_call)
 *       grpc_shutdown()
 */
        __pyx_t_1 = (__pyx_v_self->c_call != NULL);
        if (__pyx_t_1) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":88
 *     with nogil:
 *       if self.c_call != NULL:
 *         grpc_call_unref(self.c_call)             # <<<<<<<<<<<<<<
 *       grpc_shutdown()
 * 
 */
          grpc_call_unref(__pyx_v_self->c_call);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":87
 *   def __dealloc__(self):
 *     with nogil:
 *       if self.c_call != NULL:             # <<<<<<<<<<<<<<
 *         grpc_call_unref(self.c_call)
 *       grpc_shutdown()
 */
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":89
 *       if self.c_call != NULL:
 *         grpc_call_unref(self.c_call)
 *       grpc_shutdown()             # <<<<<<<<<<<<<<
 * 
 *   # The object *should* always be valid from Python. Used for debugging.
 */
        grpc_shutdown();
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":86
 * 
 *   def __dealloc__(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       if self.c_call != NULL:
 *         grpc_call_unref(self.c_call)
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":85
 *     return result
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       if self.c_call != NULL:
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":92
 * 
 *   # The object *should* always be valid from Python. Used for debugging.
 *   @property             # <<<<<<<<<<<<<<
 *   def is_valid(self):
 *     return self.c_call != NULL
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_8is_valid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_8is_valid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_8is_valid___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_8is_valid___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":94
 *   @property
 *   def is_valid(self):
 *     return self.c_call != NULL             # <<<<<<<<<<<<<<
 * 
 *   def _custom_op_on_c_call(self, int op):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_self->c_call != NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":92
 * 
 *   # The object *should* always be valid from Python. Used for debugging.
 *   @property             # <<<<<<<<<<<<<<
 *   def is_valid(self):
 *     return self.c_call != NULL
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.is_valid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":96
 *     return self.c_call != NULL
 * 
 *   def _custom_op_on_c_call(self, int op):             # <<<<<<<<<<<<<<
 *     return _custom_op_on_c_call(op, self.c_call)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_17_custom_op_on_c_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_17_custom_op_on_c_call = {"_custom_op_on_c_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_17_custom_op_on_c_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_17_custom_op_on_c_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_op;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_custom_op_on_c_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_op,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_op)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 96, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_custom_op_on_c_call") < 0)) __PYX_ERR(4, 96, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_op = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_op == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 96, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_custom_op_on_c_call", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 96, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call._custom_op_on_c_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_16_custom_op_on_c_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self), __pyx_v_op);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_16_custom_op_on_c_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, int __pyx_v_op) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_custom_op_on_c_call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":97
 * 
 *   def _custom_op_on_c_call(self, int op):
 *     return _custom_op_on_c_call(op, self.c_call)             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__custom_op_on_c_call(__pyx_v_op, __pyx_v_self->c_call); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 97, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":96
 *     return self.c_call != NULL
 * 
 *   def _custom_op_on_c_call(self, int op):             # <<<<<<<<<<<<<<
 *     return _custom_op_on_c_call(op, self.c_call)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call._custom_op_on_c_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_19__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_19__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_19__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_19__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_18__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_18__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_21__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_21__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_21__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_21__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_20__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_20__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":22
 * 
 * 
 * cdef str _call_error_metadata(metadata):             # <<<<<<<<<<<<<<
 *   return 'metadata was invalid: %s' % metadata
 * 
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__call_error_metadata(PyObject *__pyx_v_metadata) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_call_error_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":23
 * 
 * cdef str _call_error_metadata(metadata):
 *   return 'metadata was invalid: %s' % metadata             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyString_FormatSafe(__pyx_kp_s_metadata_was_invalid_s, __pyx_v_metadata); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyString_CheckExact(__pyx_t_1)) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(12, 23, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":22
 * 
 * 
 * cdef str _call_error_metadata(metadata):             # <<<<<<<<<<<<<<
 *   return 'metadata was invalid: %s' % metadata
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._call_error_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":26
 * 
 * 
 * cdef str _call_error_no_metadata(c_call_error):             # <<<<<<<<<<<<<<
 *   return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error
 * 
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__call_error_no_metadata(PyObject *__pyx_v_c_call_error) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_call_error_no_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":27
 * 
 * cdef str _call_error_no_metadata(c_call_error):
 *   return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_INTERNAL_CALL_ERROR_MESSAGE_FOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Remainder(__pyx_t_1, __pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyString_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(12, 27, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":26
 * 
 * 
 * cdef str _call_error_no_metadata(c_call_error):             # <<<<<<<<<<<<<<
 *   return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._call_error_no_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":30
 * 
 * 
 * cdef str _call_error(c_call_error, metadata):             # <<<<<<<<<<<<<<
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:
 *     return _call_error_metadata(metadata)
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__call_error(PyObject *__pyx_v_c_call_error, PyObject *__pyx_v_metadata) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_call_error", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":31
 * 
 * cdef str _call_error(c_call_error, metadata):
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:             # <<<<<<<<<<<<<<
 *     return _call_error_metadata(metadata)
 *   else:
 */
  __pyx_t_1 = __Pyx_PyInt_From_grpc_call_error(GRPC_CALL_ERROR_INVALID_METADATA); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_c_call_error, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(12, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":32
 * cdef str _call_error(c_call_error, metadata):
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:
 *     return _call_error_metadata(metadata)             # <<<<<<<<<<<<<<
 *   else:
 *     return _call_error_no_metadata(c_call_error)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__call_error_metadata(__pyx_v_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 32, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":31
 * 
 * cdef str _call_error(c_call_error, metadata):
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:             # <<<<<<<<<<<<<<
 *     return _call_error_metadata(metadata)
 *   else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":34
 *     return _call_error_metadata(metadata)
 *   else:
 *     return _call_error_no_metadata(c_call_error)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__call_error_no_metadata(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 34, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":30
 * 
 * 
 * cdef str _call_error(c_call_error, metadata):             # <<<<<<<<<<<<<<
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:
 *     return _call_error_metadata(metadata)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._call_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":37
 * 
 * 
 * cdef _check_call_error_no_metadata(c_call_error):             # <<<<<<<<<<<<<<
 *   if c_call_error != GRPC_CALL_OK:
 *     return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__check_call_error_no_metadata(PyObject *__pyx_v_c_call_error) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_check_call_error_no_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":38
 * 
 * cdef _check_call_error_no_metadata(c_call_error):
 *   if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *     return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error
 *   else:
 */
  __pyx_t_1 = __Pyx_PyInt_From_grpc_call_error(GRPC_CALL_OK); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_c_call_error, __pyx_t_1, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 38, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(12, 38, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":39
 * cdef _check_call_error_no_metadata(c_call_error):
 *   if c_call_error != GRPC_CALL_OK:
 *     return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error             # <<<<<<<<<<<<<<
 *   else:
 *     return None
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_INTERNAL_CALL_ERROR_MESSAGE_FOR); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 39, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyNumber_Remainder(__pyx_t_2, __pyx_v_c_call_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 39, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":38
 * 
 * cdef _check_call_error_no_metadata(c_call_error):
 *   if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *     return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error
 *   else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":41
 *     return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error
 *   else:
 *     return None             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":37
 * 
 * 
 * cdef _check_call_error_no_metadata(c_call_error):             # <<<<<<<<<<<<<<
 *   if c_call_error != GRPC_CALL_OK:
 *     return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._check_call_error_no_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":44
 * 
 * 
 * cdef _check_and_raise_call_error_no_metadata(c_call_error):             # <<<<<<<<<<<<<<
 *   error = _check_call_error_no_metadata(c_call_error)
 *   if error is not None:
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__check_and_raise_call_error_no_metadata(PyObject *__pyx_v_c_call_error) {
  PyObject *__pyx_v_error = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_check_and_raise_call_error_no_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":45
 * 
 * cdef _check_and_raise_call_error_no_metadata(c_call_error):
 *   error = _check_call_error_no_metadata(c_call_error)             # <<<<<<<<<<<<<<
 *   if error is not None:
 *     raise ValueError(error)
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__check_call_error_no_metadata(__pyx_v_c_call_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_error = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":46
 * cdef _check_and_raise_call_error_no_metadata(c_call_error):
 *   error = _check_call_error_no_metadata(c_call_error)
 *   if error is not None:             # <<<<<<<<<<<<<<
 *     raise ValueError(error)
 * 
 */
  __pyx_t_2 = (__pyx_v_error != Py_None);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":47
 *   error = _check_call_error_no_metadata(c_call_error)
 *   if error is not None:
 *     raise ValueError(error)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 47, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(12, 47, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":46
 * cdef _check_and_raise_call_error_no_metadata(c_call_error):
 *   error = _check_call_error_no_metadata(c_call_error)
 *   if error is not None:             # <<<<<<<<<<<<<<
 *     raise ValueError(error)
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":44
 * 
 * 
 * cdef _check_and_raise_call_error_no_metadata(c_call_error):             # <<<<<<<<<<<<<<
 *   error = _check_call_error_no_metadata(c_call_error)
 *   if error is not None:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._check_and_raise_call_error_no_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_error);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":50
 * 
 * 
 * cdef _check_call_error(c_call_error, metadata):             # <<<<<<<<<<<<<<
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:
 *     return _call_error_metadata(metadata)
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__check_call_error(PyObject *__pyx_v_c_call_error, PyObject *__pyx_v_metadata) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_check_call_error", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":51
 * 
 * cdef _check_call_error(c_call_error, metadata):
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:             # <<<<<<<<<<<<<<
 *     return _call_error_metadata(metadata)
 *   else:
 */
  __pyx_t_1 = __Pyx_PyInt_From_grpc_call_error(GRPC_CALL_ERROR_INVALID_METADATA); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_c_call_error, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(12, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":52
 * cdef _check_call_error(c_call_error, metadata):
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:
 *     return _call_error_metadata(metadata)             # <<<<<<<<<<<<<<
 *   else:
 *     return _check_call_error_no_metadata(c_call_error)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__call_error_metadata(__pyx_v_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 52, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":51
 * 
 * cdef _check_call_error(c_call_error, metadata):
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:             # <<<<<<<<<<<<<<
 *     return _call_error_metadata(metadata)
 *   else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":54
 *     return _call_error_metadata(metadata)
 *   else:
 *     return _check_call_error_no_metadata(c_call_error)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__check_call_error_no_metadata(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 54, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":50
 * 
 * 
 * cdef _check_call_error(c_call_error, metadata):             # <<<<<<<<<<<<<<
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:
 *     return _call_error_metadata(metadata)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._check_call_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":57
 * 
 * 
 * cdef void _raise_call_error_no_metadata(c_call_error) except *:             # <<<<<<<<<<<<<<
 *   raise ValueError(_call_error_no_metadata(c_call_error))
 * 
 */

static void __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error_no_metadata(PyObject *__pyx_v_c_call_error) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_raise_call_error_no_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":58
 * 
 * cdef void _raise_call_error_no_metadata(c_call_error) except *:
 *   raise ValueError(_call_error_no_metadata(c_call_error))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__call_error_no_metadata(__pyx_v_c_call_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(12, 58, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":57
 * 
 * 
 * cdef void _raise_call_error_no_metadata(c_call_error) except *:             # <<<<<<<<<<<<<<
 *   raise ValueError(_call_error_no_metadata(c_call_error))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._raise_call_error_no_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":61
 * 
 * 
 * cdef void _raise_call_error(c_call_error, metadata) except *:             # <<<<<<<<<<<<<<
 *   raise ValueError(_call_error(c_call_error, metadata))
 * 
 */

static void __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error(PyObject *__pyx_v_c_call_error, PyObject *__pyx_v_metadata) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_raise_call_error", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":62
 * 
 * cdef void _raise_call_error(c_call_error, metadata) except *:
 *   raise ValueError(_call_error(c_call_error, metadata))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__call_error(__pyx_v_c_call_error, __pyx_v_metadata); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(12, 62, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":61
 * 
 * 
 * cdef void _raise_call_error(c_call_error, metadata) except *:             # <<<<<<<<<<<<<<
 *   raise ValueError(_call_error(c_call_error, metadata))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._raise_call_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":65
 * 
 * 
 * cdef _destroy_c_completion_queue(grpc_completion_queue *c_completion_queue):             # <<<<<<<<<<<<<<
 *   grpc_completion_queue_shutdown(c_completion_queue)
 *   grpc_completion_queue_destroy(c_completion_queue)
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__destroy_c_completion_queue(grpc_completion_queue *__pyx_v_c_completion_queue) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_destroy_c_completion_queue", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":66
 * 
 * cdef _destroy_c_completion_queue(grpc_completion_queue *c_completion_queue):
 *   grpc_completion_queue_shutdown(c_completion_queue)             # <<<<<<<<<<<<<<
 *   grpc_completion_queue_destroy(c_completion_queue)
 * 
 */
  grpc_completion_queue_shutdown(__pyx_v_c_completion_queue);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":67
 * cdef _destroy_c_completion_queue(grpc_completion_queue *c_completion_queue):
 *   grpc_completion_queue_shutdown(c_completion_queue)
 *   grpc_completion_queue_destroy(c_completion_queue)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  grpc_completion_queue_destroy(__pyx_v_c_completion_queue);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":65
 * 
 * 
 * cdef _destroy_c_completion_queue(grpc_completion_queue *c_completion_queue):             # <<<<<<<<<<<<<<
 *   grpc_completion_queue_shutdown(c_completion_queue)
 *   grpc_completion_queue_destroy(c_completion_queue)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":72
 * cdef class _CallState:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     self.due = set()
 * 
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10_CallState___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_10_CallState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":73
 * 
 *   def __cinit__(self):
 *     self.due = set()             # <<<<<<<<<<<<<<
 * 
 *   cdef void delete_call(self) except *:
 */
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->due);
  __Pyx_DECREF(__pyx_v_self->due);
  __pyx_v_self->due = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":72
 * cdef class _CallState:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     self.due = set()
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":75
 *     self.due = set()
 * 
 *   cdef void delete_call(self) except *:             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_call_unref(self.c_call)
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_10_CallState_delete_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self) {

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":76
 * 
 *   cdef void delete_call(self) except *:
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_call_unref(self.c_call)
 *     self.c_call = NULL
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":77
 *   cdef void delete_call(self) except *:
 *     with nogil:
 *       grpc_call_unref(self.c_call)             # <<<<<<<<<<<<<<
 *     self.c_call = NULL
 * 
 */
        grpc_call_unref(__pyx_v_self->c_call);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":76
 * 
 *   cdef void delete_call(self) except *:
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_call_unref(self.c_call)
 *     self.c_call = NULL
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":78
 *     with nogil:
 *       grpc_call_unref(self.c_call)
 *     self.c_call = NULL             # <<<<<<<<<<<<<<
 * 
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:
 */
  __pyx_v_self->c_call = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":75
 *     self.due = set()
 * 
 *   cdef void delete_call(self) except *:             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_call_unref(self.c_call)
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":80
 *     self.c_call = NULL
 * 
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:             # <<<<<<<<<<<<<<
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_10_CallState_maybe_save_registered_method(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self, PyObject *__pyx_v_method_name) {
  PyObject *__pyx_v_plugin = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("maybe_save_registered_method", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":81
 * 
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:
 *     with _observability.get_plugin() as plugin:             # <<<<<<<<<<<<<<
 *       if plugin and plugin.observability_enabled:
 *         plugin.save_registered_method(method_name)
 */
  /*with:*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_observability); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get_plugin); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 81, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 81, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 81, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = __pyx_t_3;
    __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {
          __pyx_v_plugin = __pyx_t_2;
          __pyx_t_2 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":82
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:             # <<<<<<<<<<<<<<
 *         plugin.save_registered_method(method_name)
 * 
 */
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v_plugin); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(12, 82, __pyx_L7_error)
          if (__pyx_t_11) {
          } else {
            __pyx_t_10 = __pyx_t_11;
            goto __pyx_L14_bool_binop_done;
          }
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_n_s_observability_enabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 82, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(12, 82, __pyx_L7_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_10 = __pyx_t_11;
          __pyx_L14_bool_binop_done:;
          if (__pyx_t_10) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":83
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:
 *         plugin.save_registered_method(method_name)             # <<<<<<<<<<<<<<
 * 
 *   cdef void maybe_set_client_call_tracer_on_call(self, bytes method_name, bytes target) except *:
 */
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_n_s_save_registered_method); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 83, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_3 = NULL;
            __pyx_t_4 = 0;
            #if CYTHON_UNPACK_METHODS
            if (likely(PyMethod_Check(__pyx_t_1))) {
              __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
              if (likely(__pyx_t_3)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                __Pyx_INCREF(__pyx_t_3);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_1, function);
                __pyx_t_4 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_method_name};
              __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
              __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
              if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 83, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            }
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":82
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:             # <<<<<<<<<<<<<<
 *         plugin.save_registered_method(method_name)
 * 
 */
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":81
 * 
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:
 *     with _observability.get_plugin() as plugin:             # <<<<<<<<<<<<<<
 *       if plugin and plugin.observability_enabled:
 *         plugin.save_registered_method(method_name)
 */
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.maybe_save_registered_method", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(12, 81, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_6 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 81, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_12)) __PYX_ERR(12, 81, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (__pyx_t_10 < 0) __PYX_ERR(12, 81, __pyx_L9_except_error)
          __pyx_t_11 = (!__pyx_t_10);
          if (unlikely(__pyx_t_11)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_XGIVEREF(__pyx_t_3);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_3);
            __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0; 
            __PYX_ERR(12, 81, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_5) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 81, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L19;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L1_error;
    __pyx_L19:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":80
 *     self.c_call = NULL
 * 
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:             # <<<<<<<<<<<<<<
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.maybe_save_registered_method", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_plugin);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":85
 *         plugin.save_registered_method(method_name)
 * 
 *   cdef void maybe_set_client_call_tracer_on_call(self, bytes method_name, bytes target) except *:             # <<<<<<<<<<<<<<
 *     # TODO(xuanwn): use channel args to exclude those metrics.
 *     for exclude_prefix in _observability._SERVICES_TO_EXCLUDE:
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_10_CallState_maybe_set_client_call_tracer_on_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self, PyObject *__pyx_v_method_name, PyObject *__pyx_v_target) {
  PyObject *__pyx_v_exclude_prefix = NULL;
  PyObject *__pyx_v_plugin = NULL;
  PyObject *__pyx_v_capsule = NULL;
  void *__pyx_v_capsule_ptr;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  unsigned int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  void *__pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("maybe_set_client_call_tracer_on_call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":87
 *   cdef void maybe_set_client_call_tracer_on_call(self, bytes method_name, bytes target) except *:
 *     # TODO(xuanwn): use channel args to exclude those metrics.
 *     for exclude_prefix in _observability._SERVICES_TO_EXCLUDE:             # <<<<<<<<<<<<<<
 *       if exclude_prefix in method_name:
 *         return
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_observability); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SERVICES_TO_EXCLUDE); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 87, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(12, 87, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(12, 87, __pyx_L1_error)
        #else
        __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 87, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(12, 87, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(12, 87, __pyx_L1_error)
        #else
        __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 87, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(12, 87, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_exclude_prefix, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":88
 *     # TODO(xuanwn): use channel args to exclude those metrics.
 *     for exclude_prefix in _observability._SERVICES_TO_EXCLUDE:
 *       if exclude_prefix in method_name:             # <<<<<<<<<<<<<<
 *         return
 *     with _observability.get_plugin() as plugin:
 */
    __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_exclude_prefix, __pyx_v_method_name, Py_EQ)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(12, 88, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":89
 *     for exclude_prefix in _observability._SERVICES_TO_EXCLUDE:
 *       if exclude_prefix in method_name:
 *         return             # <<<<<<<<<<<<<<
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:
 */
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":88
 *     # TODO(xuanwn): use channel args to exclude those metrics.
 *     for exclude_prefix in _observability._SERVICES_TO_EXCLUDE:
 *       if exclude_prefix in method_name:             # <<<<<<<<<<<<<<
 *         return
 *     with _observability.get_plugin() as plugin:
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":87
 *   cdef void maybe_set_client_call_tracer_on_call(self, bytes method_name, bytes target) except *:
 *     # TODO(xuanwn): use channel args to exclude those metrics.
 *     for exclude_prefix in _observability._SERVICES_TO_EXCLUDE:             # <<<<<<<<<<<<<<
 *       if exclude_prefix in method_name:
 *         return
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":90
 *       if exclude_prefix in method_name:
 *         return
 *     with _observability.get_plugin() as plugin:             # <<<<<<<<<<<<<<
 *       if plugin and plugin.observability_enabled:
 *         capsule = plugin.create_client_call_tracer(method_name, target)
 */
  /*with:*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_observability); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get_plugin); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 90, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 90, __pyx_L7_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, NULL};
      __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 90, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = __pyx_t_6;
    __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
        __Pyx_XGOTREF(__pyx_t_10);
        __Pyx_XGOTREF(__pyx_t_11);
        __Pyx_XGOTREF(__pyx_t_12);
        /*try:*/ {
          __pyx_v_plugin = __pyx_t_2;
          __pyx_t_2 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":91
 *         return
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:             # <<<<<<<<<<<<<<
 *         capsule = plugin.create_client_call_tracer(method_name, target)
 *         capsule_ptr = cpython.PyCapsule_GetPointer(capsule, CLIENT_CALL_TRACER)
 */
          __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_plugin); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(12, 91, __pyx_L11_error)
          if (__pyx_t_13) {
          } else {
            __pyx_t_5 = __pyx_t_13;
            goto __pyx_L18_bool_binop_done;
          }
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_n_s_observability_enabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 91, __pyx_L11_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(12, 91, __pyx_L11_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_5 = __pyx_t_13;
          __pyx_L18_bool_binop_done:;
          if (__pyx_t_5) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":92
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:
 *         capsule = plugin.create_client_call_tracer(method_name, target)             # <<<<<<<<<<<<<<
 *         capsule_ptr = cpython.PyCapsule_GetPointer(capsule, CLIENT_CALL_TRACER)
 *         _set_call_tracer(self.c_call, capsule_ptr)
 */
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_n_s_create_client_call_tracer); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 92, __pyx_L11_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_6 = NULL;
            __pyx_t_7 = 0;
            #if CYTHON_UNPACK_METHODS
            if (likely(PyMethod_Check(__pyx_t_1))) {
              __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
              if (likely(__pyx_t_6)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                __Pyx_INCREF(__pyx_t_6);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_1, function);
                __pyx_t_7 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_v_method_name, __pyx_v_target};
              __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 92, __pyx_L11_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            }
            __pyx_v_capsule = __pyx_t_2;
            __pyx_t_2 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":93
 *       if plugin and plugin.observability_enabled:
 *         capsule = plugin.create_client_call_tracer(method_name, target)
 *         capsule_ptr = cpython.PyCapsule_GetPointer(capsule, CLIENT_CALL_TRACER)             # <<<<<<<<<<<<<<
 *         _set_call_tracer(self.c_call, capsule_ptr)
 *         self.call_tracer_capsule = capsule
 */
            __pyx_t_14 = PyCapsule_GetPointer(__pyx_v_capsule, __pyx_v_4grpc_7_cython_6cygrpc_CLIENT_CALL_TRACER); if (unlikely(__pyx_t_14 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(12, 93, __pyx_L11_error)
            __pyx_v_capsule_ptr = __pyx_t_14;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":94
 *         capsule = plugin.create_client_call_tracer(method_name, target)
 *         capsule_ptr = cpython.PyCapsule_GetPointer(capsule, CLIENT_CALL_TRACER)
 *         _set_call_tracer(self.c_call, capsule_ptr)             # <<<<<<<<<<<<<<
 *         self.call_tracer_capsule = capsule
 * 
 */
            __pyx_f_4grpc_7_cython_6cygrpc__set_call_tracer(__pyx_v_self->c_call, __pyx_v_capsule_ptr); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 94, __pyx_L11_error)

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":95
 *         capsule_ptr = cpython.PyCapsule_GetPointer(capsule, CLIENT_CALL_TRACER)
 *         _set_call_tracer(self.c_call, capsule_ptr)
 *         self.call_tracer_capsule = capsule             # <<<<<<<<<<<<<<
 * 
 * cdef class _ChannelState:
 */
            __Pyx_INCREF(__pyx_v_capsule);
            __Pyx_GIVEREF(__pyx_v_capsule);
            __Pyx_GOTREF(__pyx_v_self->call_tracer_capsule);
            __Pyx_DECREF(__pyx_v_self->call_tracer_capsule);
            __pyx_v_self->call_tracer_capsule = __pyx_v_capsule;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":91
 *         return
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:             # <<<<<<<<<<<<<<
 *         capsule = plugin.create_client_call_tracer(method_name, target)
 *         capsule_ptr = cpython.PyCapsule_GetPointer(capsule, CLIENT_CALL_TRACER)
 */
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":90
 *       if exclude_prefix in method_name:
 *         return
 *     with _observability.get_plugin() as plugin:             # <<<<<<<<<<<<<<
 *       if plugin and plugin.observability_enabled:
 *         capsule = plugin.create_client_call_tracer(method_name, target)
 */
        }
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        goto __pyx_L16_try_end;
        __pyx_L11_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.maybe_set_client_call_tracer_on_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_6) < 0) __PYX_ERR(12, 90, __pyx_L13_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_6);
          __pyx_t_9 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 90, __pyx_L13_except_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_15)) __PYX_ERR(12, 90, __pyx_L13_except_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (__pyx_t_5 < 0) __PYX_ERR(12, 90, __pyx_L13_except_error)
          __pyx_t_13 = (!__pyx_t_5);
          if (unlikely(__pyx_t_13)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_XGIVEREF(__pyx_t_6);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_6);
            __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_6 = 0; 
            __PYX_ERR(12, 90, __pyx_L13_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          goto __pyx_L12_exception_handled;
        }
        __pyx_L13_except_error:;
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
        goto __pyx_L1_error;
        __pyx_L12_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
        __pyx_L16_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_8) {
          __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (unlikely(!__pyx_t_12)) __PYX_ERR(12, 90, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        }
        goto __pyx_L10;
      }
      __pyx_L10:;
    }
    goto __pyx_L23;
    __pyx_L7_error:;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    goto __pyx_L1_error;
    __pyx_L23:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":85
 *         plugin.save_registered_method(method_name)
 * 
 *   cdef void maybe_set_client_call_tracer_on_call(self, bytes method_name, bytes target) except *:             # <<<<<<<<<<<<<<
 *     # TODO(xuanwn): use channel args to exclude those metrics.
 *     for exclude_prefix in _observability._SERVICES_TO_EXCLUDE:
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.maybe_set_client_call_tracer_on_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_exclude_prefix);
  __Pyx_XDECREF(__pyx_v_plugin);
  __Pyx_XDECREF(__pyx_v_capsule);
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10_CallState_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10_CallState_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10_CallState_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10_CallState_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10_CallState_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10_CallState_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":99
 * cdef class _ChannelState:
 * 
 *   def __cinit__(self, target):             # <<<<<<<<<<<<<<
 *     self.target = target
 *     self.condition = threading.Condition()
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_target = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_target,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_target)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 99, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(12, 99, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_target = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 99, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_v_self), __pyx_v_target);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_self, PyObject *__pyx_v_target) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":100
 * 
 *   def __cinit__(self, target):
 *     self.target = target             # <<<<<<<<<<<<<<
 *     self.condition = threading.Condition()
 *     self.open = True
 */
  if (!(likely(PyBytes_CheckExact(__pyx_v_target))||((__pyx_v_target) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_target))) __PYX_ERR(12, 100, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_target;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->target);
  __Pyx_DECREF(__pyx_v_self->target);
  __pyx_v_self->target = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":101
 *   def __cinit__(self, target):
 *     self.target = target
 *     self.condition = threading.Condition()             # <<<<<<<<<<<<<<
 *     self.open = True
 *     self.integrated_call_states = {}
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_threading); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Condition); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->condition);
  __Pyx_DECREF(__pyx_v_self->condition);
  __pyx_v_self->condition = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":102
 *     self.target = target
 *     self.condition = threading.Condition()
 *     self.open = True             # <<<<<<<<<<<<<<
 *     self.integrated_call_states = {}
 *     self.segregated_call_states = set()
 */
  __Pyx_INCREF(Py_True);
  __Pyx_GIVEREF(Py_True);
  __Pyx_GOTREF(__pyx_v_self->open);
  __Pyx_DECREF(__pyx_v_self->open);
  __pyx_v_self->open = Py_True;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":103
 *     self.condition = threading.Condition()
 *     self.open = True
 *     self.integrated_call_states = {}             # <<<<<<<<<<<<<<
 *     self.segregated_call_states = set()
 *     self.connectivity_due = set()
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->integrated_call_states);
  __Pyx_DECREF(__pyx_v_self->integrated_call_states);
  __pyx_v_self->integrated_call_states = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":104
 *     self.open = True
 *     self.integrated_call_states = {}
 *     self.segregated_call_states = set()             # <<<<<<<<<<<<<<
 *     self.connectivity_due = set()
 *     self.closed_reason = None
 */
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->segregated_call_states);
  __Pyx_DECREF(__pyx_v_self->segregated_call_states);
  __pyx_v_self->segregated_call_states = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":105
 *     self.integrated_call_states = {}
 *     self.segregated_call_states = set()
 *     self.connectivity_due = set()             # <<<<<<<<<<<<<<
 *     self.closed_reason = None
 * 
 */
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->connectivity_due);
  __Pyx_DECREF(__pyx_v_self->connectivity_due);
  __pyx_v_self->connectivity_due = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":106
 *     self.segregated_call_states = set()
 *     self.connectivity_due = set()
 *     self.closed_reason = None             # <<<<<<<<<<<<<<
 * 
 * cdef class CallHandle:
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->closed_reason);
  __Pyx_DECREF(__pyx_v_self->closed_reason);
  __pyx_v_self->closed_reason = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":99
 * cdef class _ChannelState:
 * 
 *   def __cinit__(self, target):             # <<<<<<<<<<<<<<
 *     self.target = target
 *     self.condition = threading.Condition()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_13_ChannelState_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelState.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_13_ChannelState_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":110
 * cdef class CallHandle:
 * 
 *   def __cinit__(self, _ChannelState channel_state, object method):             # <<<<<<<<<<<<<<
 *     self.method = method
 *     cpython.Py_INCREF(method)
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state = 0;
  PyObject *__pyx_v_method = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_channel_state,&__pyx_n_s_method,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_channel_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 110, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 110, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(12, 110, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(12, 110, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_channel_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)values[0]);
    __pyx_v_method = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 110, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallHandle.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_channel_state), __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState, 1, "channel_state", 0))) __PYX_ERR(12, 110, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)__pyx_v_self), __pyx_v_channel_state, __pyx_v_method);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, PyObject *__pyx_v_method) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  char const *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":111
 * 
 *   def __cinit__(self, _ChannelState channel_state, object method):
 *     self.method = method             # <<<<<<<<<<<<<<
 *     cpython.Py_INCREF(method)
 *     # Note that since we always pass None for host, we set the
 */
  __Pyx_INCREF(__pyx_v_method);
  __Pyx_GIVEREF(__pyx_v_method);
  __Pyx_GOTREF(__pyx_v_self->method);
  __Pyx_DECREF(__pyx_v_self->method);
  __pyx_v_self->method = __pyx_v_method;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":112
 *   def __cinit__(self, _ChannelState channel_state, object method):
 *     self.method = method
 *     cpython.Py_INCREF(method)             # <<<<<<<<<<<<<<
 *     # Note that since we always pass None for host, we set the
 *     # second-to-last parameter of grpc_channel_register_call to a fixed
 */
  Py_INCREF(__pyx_v_method);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":117
 *     # NULL value.
 *     self.c_call_handle = grpc_channel_register_call(
 *       channel_state.c_channel, <const char *>method, NULL, NULL)             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
 */
  __pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_method); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(12, 117, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":116
 *     # second-to-last parameter of grpc_channel_register_call to a fixed
 *     # NULL value.
 *     self.c_call_handle = grpc_channel_register_call(             # <<<<<<<<<<<<<<
 *       channel_state.c_channel, <const char *>method, NULL, NULL)
 * 
 */
  __pyx_v_self->c_call_handle = grpc_channel_register_call(__pyx_v_channel_state->c_channel, ((char const *)__pyx_t_1), NULL, NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":110
 * cdef class CallHandle:
 * 
 *   def __cinit__(self, _ChannelState channel_state, object method):             # <<<<<<<<<<<<<<
 *     self.method = method
 *     cpython.Py_INCREF(method)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallHandle.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":119
 *       channel_state.c_channel, <const char *>method, NULL, NULL)
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     cpython.Py_DECREF(self.method)
 * 
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__dealloc__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":120
 * 
 *   def __dealloc__(self):
 *     cpython.Py_DECREF(self.method)             # <<<<<<<<<<<<<<
 * 
 *   @property
 */
  __pyx_t_1 = __pyx_v_self->method;
  __Pyx_INCREF(__pyx_t_1);
  Py_DECREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":119
 *       channel_state.c_channel, <const char *>method, NULL, NULL)
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     cpython.Py_DECREF(self.method)
 * 
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":122
 *     cpython.Py_DECREF(self.method)
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def call_handle(self):
 *     return cpython.PyLong_FromVoidPtr(self.c_call_handle)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_11call_handle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_11call_handle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_11call_handle___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_11call_handle___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":124
 *   @property
 *   def call_handle(self):
 *     return cpython.PyLong_FromVoidPtr(self.c_call_handle)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyLong_FromVoidPtr(__pyx_v_self->c_call_handle); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":122
 *     cpython.Py_DECREF(self.method)
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def call_handle(self):
 *     return cpython.PyLong_FromVoidPtr(self.c_call_handle)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallHandle.call_handle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10CallHandle_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallHandle.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10CallHandle_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallHandle.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallHandle.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":128
 * 
 * 
 * cdef tuple _operate(grpc_call *c_call, object operations, object user_tag):             # <<<<<<<<<<<<<<
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag = _BatchOperationTag(user_tag, operations, None)
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__operate(grpc_call *__pyx_v_c_call, PyObject *__pyx_v_operations, PyObject *__pyx_v_user_tag) {
  grpc_call_error __pyx_v_c_call_error;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_tag = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_operate", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":130
 * cdef tuple _operate(grpc_call *c_call, object operations, object user_tag):
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag = _BatchOperationTag(user_tag, operations, None)             # <<<<<<<<<<<<<<
 *   tag.prepare()
 *   cpython.Py_INCREF(tag)
 */
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_user_tag);
  __Pyx_GIVEREF(__pyx_v_user_tag);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_user_tag)) __PYX_ERR(12, 130, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_operations);
  __Pyx_GIVEREF(__pyx_v_operations);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_operations)) __PYX_ERR(12, 130, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(12, 130, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":131
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag = _BatchOperationTag(user_tag, operations, None)
 *   tag.prepare()             # <<<<<<<<<<<<<<
 *   cpython.Py_INCREF(tag)
 *   with nogil:
 */
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_tag->__pyx_base.__pyx_vtab)->prepare(__pyx_v_tag); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 131, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":132
 *   cdef _BatchOperationTag tag = _BatchOperationTag(user_tag, operations, None)
 *   tag.prepare()
 *   cpython.Py_INCREF(tag)             # <<<<<<<<<<<<<<
 *   with nogil:
 *     c_call_error = grpc_call_start_batch(
 */
  Py_INCREF(((PyObject *)__pyx_v_tag));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":133
 *   tag.prepare()
 *   cpython.Py_INCREF(tag)
 *   with nogil:             # <<<<<<<<<<<<<<
 *     c_call_error = grpc_call_start_batch(
 *         c_call, tag.c_ops, tag.c_nops, <cpython.PyObject *>tag, NULL)
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":134
 *   cpython.Py_INCREF(tag)
 *   with nogil:
 *     c_call_error = grpc_call_start_batch(             # <<<<<<<<<<<<<<
 *         c_call, tag.c_ops, tag.c_nops, <cpython.PyObject *>tag, NULL)
 *   return c_call_error, tag
 */
        __pyx_v_c_call_error = grpc_call_start_batch(__pyx_v_c_call, __pyx_v_tag->c_ops, __pyx_v_tag->c_nops, ((PyObject *)__pyx_v_tag), NULL);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":133
 *   tag.prepare()
 *   cpython.Py_INCREF(tag)
 *   with nogil:             # <<<<<<<<<<<<<<
 *     c_call_error = grpc_call_start_batch(
 *         c_call, tag.c_ops, tag.c_nops, <cpython.PyObject *>tag, NULL)
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":136
 *     c_call_error = grpc_call_start_batch(
 *         c_call, tag.c_ops, tag.c_nops, <cpython.PyObject *>tag, NULL)
 *   return c_call_error, tag             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyInt_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(12, 136, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_tag);
  __Pyx_GIVEREF((PyObject *)__pyx_v_tag);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_tag))) __PYX_ERR(12, 136, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":128
 * 
 * 
 * cdef tuple _operate(grpc_call *c_call, object operations, object user_tag):             # <<<<<<<<<<<<<<
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag = _BatchOperationTag(user_tag, operations, None)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._operate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":139
 * 
 * 
 * cdef object _operate_from_integrated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state, object operations,
 *     object user_tag):
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__operate_from_integrated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state, PyObject *__pyx_v_operations, PyObject *__pyx_v_user_tag) {
  grpc_call_error __pyx_v_c_call_error;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_tag = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  grpc_call_error __pyx_t_10;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_operate_from_integrated_call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":144
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 */
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_n_s_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 144, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 144, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":145
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:
 *     if call_state.due:             # <<<<<<<<<<<<<<
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:
 */
          __pyx_t_9 = (__pyx_v_call_state->due != Py_None)&&(PySet_GET_SIZE(__pyx_v_call_state->due) != 0);
          if (__pyx_t_9) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":146
 *   with channel_state.condition:
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)             # <<<<<<<<<<<<<<
 *       if c_call_error == GRPC_CALL_OK:
 *         call_state.due.add(tag)
 */
            __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__operate(__pyx_v_call_state->c_call, __pyx_v_operations, __pyx_v_user_tag); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 146, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (likely(__pyx_t_2 != Py_None)) {
              PyObject* sequence = __pyx_t_2;
              Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
              if (unlikely(size != 2)) {
                if (size > 2) __Pyx_RaiseTooManyValuesError(2);
                else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
                __PYX_ERR(12, 146, __pyx_L7_error)
              }
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
              __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_4);
              #else
              __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 146, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 146, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            } else {
              __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(12, 146, __pyx_L7_error)
            }
            __pyx_t_10 = ((grpc_call_error)__Pyx_PyInt_As_grpc_call_error(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 146, __pyx_L7_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag))))) __PYX_ERR(12, 146, __pyx_L7_error)
            __pyx_v_c_call_error = __pyx_t_10;
            __pyx_v_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_t_4);
            __pyx_t_4 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":147
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *         call_state.due.add(tag)
 *         channel_state.integrated_call_states[tag] = call_state
 */
            __pyx_t_9 = (__pyx_v_c_call_error == GRPC_CALL_OK);
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":148
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:
 *         call_state.due.add(tag)             # <<<<<<<<<<<<<<
 *         channel_state.integrated_call_states[tag] = call_state
 *         return True
 */
              if (unlikely(__pyx_v_call_state->due == Py_None)) {
                PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
                __PYX_ERR(12, 148, __pyx_L7_error)
              }
              __pyx_t_11 = PySet_Add(__pyx_v_call_state->due, ((PyObject *)__pyx_v_tag)); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(12, 148, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":149
 *       if c_call_error == GRPC_CALL_OK:
 *         call_state.due.add(tag)
 *         channel_state.integrated_call_states[tag] = call_state             # <<<<<<<<<<<<<<
 *         return True
 *       else:
 */
              if (unlikely(__pyx_v_channel_state->integrated_call_states == Py_None)) {
                PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                __PYX_ERR(12, 149, __pyx_L7_error)
              }
              if (unlikely((PyDict_SetItem(__pyx_v_channel_state->integrated_call_states, ((PyObject *)__pyx_v_tag), ((PyObject *)__pyx_v_call_state)) < 0))) __PYX_ERR(12, 149, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":150
 *         call_state.due.add(tag)
 *         channel_state.integrated_call_states[tag] = call_state
 *         return True             # <<<<<<<<<<<<<<
 *       else:
 *         _raise_call_error_no_metadata(c_call_error)
 */
              __Pyx_XDECREF(__pyx_r);
              __Pyx_INCREF(Py_True);
              __pyx_r = Py_True;
              goto __pyx_L11_try_return;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":147
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *         call_state.due.add(tag)
 *         channel_state.integrated_call_states[tag] = call_state
 */
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":152
 *         return True
 *       else:
 *         _raise_call_error_no_metadata(c_call_error)             # <<<<<<<<<<<<<<
 *     else:
 *       return False
 */
            /*else*/ {
              __pyx_t_2 = __Pyx_PyInt_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 152, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_2);
              __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error_no_metadata(__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 152, __pyx_L7_error)
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":145
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:
 *     if call_state.due:             # <<<<<<<<<<<<<<
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:
 */
            goto __pyx_L13;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":154
 *         _raise_call_error_no_metadata(c_call_error)
 *     else:
 *       return False             # <<<<<<<<<<<<<<
 * 
 * 
 */
          /*else*/ {
            __Pyx_XDECREF(__pyx_r);
            __Pyx_INCREF(Py_False);
            __pyx_r = Py_False;
            goto __pyx_L11_try_return;
          }
          __pyx_L13:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":144
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 */
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._operate_from_integrated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_3) < 0) __PYX_ERR(12, 144, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_12 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(12, 144, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(12, 144, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(12, 144, __pyx_L9_except_error)
          __pyx_t_14 = (!__pyx_t_9);
          if (unlikely(__pyx_t_14)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_4);
            __Pyx_XGIVEREF(__pyx_t_3);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_4, __pyx_t_3);
            __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_3 = 0; 
            __PYX_ERR(12, 144, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L11_try_return:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L4_return;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 144, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L4_return: {
        __pyx_t_8 = __pyx_r;
        __pyx_r = 0;
        if (__pyx_t_1) {
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 144, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }
      __pyx_L6:;
    }
    goto __pyx_L18;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L18:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":139
 * 
 * 
 * cdef object _operate_from_integrated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state, object operations,
 *     object user_tag):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("grpc._cython.cygrpc._operate_from_integrated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":157
 * 
 * 
 * cdef object _operate_from_segregated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state, object operations,
 *     object user_tag):
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__operate_from_segregated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state, PyObject *__pyx_v_operations, PyObject *__pyx_v_user_tag) {
  grpc_call_error __pyx_v_c_call_error;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_tag = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  grpc_call_error __pyx_t_10;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_operate_from_segregated_call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":162
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 */
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_n_s_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 162, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 162, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 162, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":163
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:
 *     if call_state.due:             # <<<<<<<<<<<<<<
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:
 */
          __pyx_t_9 = (__pyx_v_call_state->due != Py_None)&&(PySet_GET_SIZE(__pyx_v_call_state->due) != 0);
          if (__pyx_t_9) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":164
 *   with channel_state.condition:
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)             # <<<<<<<<<<<<<<
 *       if c_call_error == GRPC_CALL_OK:
 *         call_state.due.add(tag)
 */
            __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__operate(__pyx_v_call_state->c_call, __pyx_v_operations, __pyx_v_user_tag); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 164, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (likely(__pyx_t_2 != Py_None)) {
              PyObject* sequence = __pyx_t_2;
              Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
              if (unlikely(size != 2)) {
                if (size > 2) __Pyx_RaiseTooManyValuesError(2);
                else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
                __PYX_ERR(12, 164, __pyx_L7_error)
              }
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
              __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_4);
              #else
              __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 164, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 164, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            } else {
              __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(12, 164, __pyx_L7_error)
            }
            __pyx_t_10 = ((grpc_call_error)__Pyx_PyInt_As_grpc_call_error(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 164, __pyx_L7_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag))))) __PYX_ERR(12, 164, __pyx_L7_error)
            __pyx_v_c_call_error = __pyx_t_10;
            __pyx_v_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_t_4);
            __pyx_t_4 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":165
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *         call_state.due.add(tag)
 *         return True
 */
            __pyx_t_9 = (__pyx_v_c_call_error == GRPC_CALL_OK);
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":166
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:
 *         call_state.due.add(tag)             # <<<<<<<<<<<<<<
 *         return True
 *       else:
 */
              if (unlikely(__pyx_v_call_state->due == Py_None)) {
                PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
                __PYX_ERR(12, 166, __pyx_L7_error)
              }
              __pyx_t_11 = PySet_Add(__pyx_v_call_state->due, ((PyObject *)__pyx_v_tag)); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(12, 166, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":167
 *       if c_call_error == GRPC_CALL_OK:
 *         call_state.due.add(tag)
 *         return True             # <<<<<<<<<<<<<<
 *       else:
 *         _raise_call_error_no_metadata(c_call_error)
 */
              __Pyx_XDECREF(__pyx_r);
              __Pyx_INCREF(Py_True);
              __pyx_r = Py_True;
              goto __pyx_L11_try_return;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":165
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *         call_state.due.add(tag)
 *         return True
 */
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":169
 *         return True
 *       else:
 *         _raise_call_error_no_metadata(c_call_error)             # <<<<<<<<<<<<<<
 *     else:
 *       return False
 */
            /*else*/ {
              __pyx_t_2 = __Pyx_PyInt_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 169, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_2);
              __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error_no_metadata(__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 169, __pyx_L7_error)
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":163
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:
 *     if call_state.due:             # <<<<<<<<<<<<<<
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:
 */
            goto __pyx_L13;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":171
 *         _raise_call_error_no_metadata(c_call_error)
 *     else:
 *       return False             # <<<<<<<<<<<<<<
 * 
 * 
 */
          /*else*/ {
            __Pyx_XDECREF(__pyx_r);
            __Pyx_INCREF(Py_False);
            __pyx_r = Py_False;
            goto __pyx_L11_try_return;
          }
          __pyx_L13:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":162
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 */
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._operate_from_segregated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_3) < 0) __PYX_ERR(12, 162, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_12 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(12, 162, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(12, 162, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(12, 162, __pyx_L9_except_error)
          __pyx_t_14 = (!__pyx_t_9);
          if (unlikely(__pyx_t_14)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_4);
            __Pyx_XGIVEREF(__pyx_t_3);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_4, __pyx_t_3);
            __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_3 = 0; 
            __PYX_ERR(12, 162, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L11_try_return:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L4_return;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 162, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L4_return: {
        __pyx_t_8 = __pyx_r;
        __pyx_r = 0;
        if (__pyx_t_1) {
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 162, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }
      __pyx_L6:;
    }
    goto __pyx_L18;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L18:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":157
 * 
 * 
 * cdef object _operate_from_segregated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state, object operations,
 *     object user_tag):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("grpc._cython.cygrpc._operate_from_segregated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":174
 * 
 * 
 * cdef _cancel(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state, grpc_status_code code,
 *     str details):
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state, grpc_status_code __pyx_v_code, PyObject *__pyx_v_details) {
  grpc_call_error __pyx_v_c_call_error;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  char const *__pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_cancel", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":178
 *     str details):
 *   cdef grpc_call_error c_call_error
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if call_state.due:
 *       c_call_error = grpc_call_cancel_with_status(
 */
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_n_s_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 178, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 178, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":179
 *   cdef grpc_call_error c_call_error
 *   with channel_state.condition:
 *     if call_state.due:             # <<<<<<<<<<<<<<
 *       c_call_error = grpc_call_cancel_with_status(
 *           call_state.c_call, code, _encode(details), NULL)
 */
          __pyx_t_9 = (__pyx_v_call_state->due != Py_None)&&(PySet_GET_SIZE(__pyx_v_call_state->due) != 0);
          if (__pyx_t_9) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":181
 *     if call_state.due:
 *       c_call_error = grpc_call_cancel_with_status(
 *           call_state.c_call, code, _encode(details), NULL)             # <<<<<<<<<<<<<<
 *       _check_and_raise_call_error_no_metadata(c_call_error)
 * 
 */
            __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__encode(__pyx_v_details); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 181, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (unlikely(__pyx_t_2 == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
              __PYX_ERR(12, 181, __pyx_L7_error)
            }
            __pyx_t_10 = __Pyx_PyBytes_AsString(__pyx_t_2); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) __PYX_ERR(12, 181, __pyx_L7_error)

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":180
 *   with channel_state.condition:
 *     if call_state.due:
 *       c_call_error = grpc_call_cancel_with_status(             # <<<<<<<<<<<<<<
 *           call_state.c_call, code, _encode(details), NULL)
 *       _check_and_raise_call_error_no_metadata(c_call_error)
 */
            __pyx_v_c_call_error = grpc_call_cancel_with_status(__pyx_v_call_state->c_call, __pyx_v_code, __pyx_t_10, NULL);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":182
 *       c_call_error = grpc_call_cancel_with_status(
 *           call_state.c_call, code, _encode(details), NULL)
 *       _check_and_raise_call_error_no_metadata(c_call_error)             # <<<<<<<<<<<<<<
 * 
 * 
 */
            __pyx_t_2 = __Pyx_PyInt_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 182, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__check_and_raise_call_error_no_metadata(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 182, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":179
 *   cdef grpc_call_error c_call_error
 *   with channel_state.condition:
 *     if call_state.due:             # <<<<<<<<<<<<<<
 *       c_call_error = grpc_call_cancel_with_status(
 *           call_state.c_call, code, _encode(details), NULL)
 */
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":178
 *     str details):
 *   cdef grpc_call_error c_call_error
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if call_state.due:
 *       c_call_error = grpc_call_cancel_with_status(
 */
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_4) < 0) __PYX_ERR(12, 178, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_11 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(12, 178, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(!__pyx_t_12)) __PYX_ERR(12, 178, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(12, 178, __pyx_L9_except_error)
          __pyx_t_13 = (!__pyx_t_9);
          if (unlikely(__pyx_t_13)) {
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_2, __pyx_t_4);
            __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_4 = 0; 
            __PYX_ERR(12, 178, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":174
 * 
 * 
 * cdef _cancel(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state, grpc_status_code code,
 *     str details):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("grpc._cython.cygrpc._cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":185
 * 
 * 
 * cdef _next_call_event(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, grpc_completion_queue *c_completion_queue,
 *     on_success, on_failure, deadline):
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__next_call_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, grpc_completion_queue *__pyx_v_c_completion_queue, PyObject *__pyx_v_on_success, PyObject *__pyx_v_on_failure, PyObject *__pyx_v_deadline) {
  PyObject *__pyx_v_tag = NULL;
  PyObject *__pyx_v_event = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  PyObject *__pyx_t_9 = NULL;
  unsigned int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_t_15;
  int __pyx_t_16;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_next_call_event", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":204
 *     deadline: The point after which the RPC will time out.
 *   """
 *   try:             # <<<<<<<<<<<<<<
 *     tag, event = _latent_event(c_completion_queue, deadline)
 *   # NOTE(rbellevi): This broad except enables us to clean up resources before
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":205
 *   """
 *   try:
 *     tag, event = _latent_event(c_completion_queue, deadline)             # <<<<<<<<<<<<<<
 *   # NOTE(rbellevi): This broad except enables us to clean up resources before
 *   # propagating any exceptions raised by signal handlers to the application.
 */
      __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__latent_event(__pyx_v_c_completion_queue, __pyx_v_deadline); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 205, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
        PyObject* sequence = __pyx_t_4;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(12, 205, __pyx_L3_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        #else
        __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 205, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 205, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 205, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_7);
        index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L9_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_5);
        index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L9_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(12, 205, __pyx_L3_error)
        __pyx_t_8 = NULL;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L10_unpacking_done;
        __pyx_L9_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_8 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(12, 205, __pyx_L3_error)
        __pyx_L10_unpacking_done:;
      }
      __pyx_v_tag = __pyx_t_5;
      __pyx_t_5 = 0;
      __pyx_v_event = __pyx_t_6;
      __pyx_t_6 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":204
 *     deadline: The point after which the RPC will time out.
 *   """
 *   try:             # <<<<<<<<<<<<<<
 *     tag, event = _latent_event(c_completion_queue, deadline)
 *   # NOTE(rbellevi): This broad except enables us to clean up resources before
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":213
 *     raise
 *   else:
 *     with channel_state.condition:             # <<<<<<<<<<<<<<
 *       on_success(tag)
 *       channel_state.condition.notify_all()
 */
    /*else:*/ {
      /*with:*/ {
        __pyx_t_9 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_n_s_exit); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 213, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_n_s_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 213, __pyx_L11_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = NULL;
        __pyx_t_10 = 0;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
            __pyx_t_10 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
          __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_10, 0+__pyx_t_10);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 213, __pyx_L11_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
            __Pyx_XGOTREF(__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_12);
            __Pyx_XGOTREF(__pyx_t_13);
            /*try:*/ {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":214
 *   else:
 *     with channel_state.condition:
 *       on_success(tag)             # <<<<<<<<<<<<<<
 *       channel_state.condition.notify_all()
 *     return event
 */
              __Pyx_INCREF(__pyx_v_on_success);
              __pyx_t_6 = __pyx_v_on_success; __pyx_t_5 = NULL;
              __pyx_t_10 = 0;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_5)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_5);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_10 = 1;
                }
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_tag};
                __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
                __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
                if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 214, __pyx_L15_error)
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":215
 *     with channel_state.condition:
 *       on_success(tag)
 *       channel_state.condition.notify_all()             # <<<<<<<<<<<<<<
 *     return event
 * 
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_channel_state->condition, __pyx_n_s_notify_all); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 215, __pyx_L15_error)
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_5 = NULL;
              __pyx_t_10 = 0;
              #if CYTHON_UNPACK_METHODS
              if (likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_5)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_5);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_10 = 1;
                }
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
                __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_10, 0+__pyx_t_10);
                __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
                if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 215, __pyx_L15_error)
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":213
 *     raise
 *   else:
 *     with channel_state.condition:             # <<<<<<<<<<<<<<
 *       on_success(tag)
 *       channel_state.condition.notify_all()
 */
            }
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            goto __pyx_L20_try_end;
            __pyx_L15_error:;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            /*except:*/ {
              __Pyx_AddTraceback("grpc._cython.cygrpc._next_call_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(12, 213, __pyx_L17_except_error)
              __Pyx_XGOTREF(__pyx_t_4);
              __Pyx_XGOTREF(__pyx_t_6);
              __Pyx_XGOTREF(__pyx_t_5);
              __pyx_t_7 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 213, __pyx_L17_except_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, NULL);
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              if (unlikely(!__pyx_t_14)) __PYX_ERR(12, 213, __pyx_L17_except_error)
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              if (__pyx_t_15 < 0) __PYX_ERR(12, 213, __pyx_L17_except_error)
              __pyx_t_16 = (!__pyx_t_15);
              if (unlikely(__pyx_t_16)) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_5);
                __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_6, __pyx_t_5);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; 
                __PYX_ERR(12, 213, __pyx_L17_except_error)
              }
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
              goto __pyx_L16_exception_handled;
            }
            __pyx_L17_except_error:;
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_XGIVEREF(__pyx_t_12);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
            goto __pyx_L5_except_error;
            __pyx_L16_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_XGIVEREF(__pyx_t_12);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
            __pyx_L20_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_9) {
              __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__11, NULL);
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              if (unlikely(!__pyx_t_13)) __PYX_ERR(12, 213, __pyx_L5_except_error)
              __Pyx_GOTREF(__pyx_t_13);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            }
            goto __pyx_L14;
          }
          __pyx_L14:;
        }
        goto __pyx_L24;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L5_except_error;
        __pyx_L24:;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":216
 *       on_success(tag)
 *       channel_state.condition.notify_all()
 *     return event             # <<<<<<<<<<<<<<
 * 
 * 
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_event);
      __pyx_r = __pyx_v_event;
      goto __pyx_L6_except_return;
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":208
 *   # NOTE(rbellevi): This broad except enables us to clean up resources before
 *   # propagating any exceptions raised by signal handlers to the application.
 *   except:             # <<<<<<<<<<<<<<
 *     if on_failure is not None:
 *       on_failure()
 */
    /*except:*/ {
      __Pyx_AddTraceback("grpc._cython.cygrpc._next_call_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_4) < 0) __PYX_ERR(12, 208, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_4);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":209
 *   # propagating any exceptions raised by signal handlers to the application.
 *   except:
 *     if on_failure is not None:             # <<<<<<<<<<<<<<
 *       on_failure()
 *     raise
 */
      __pyx_t_16 = (__pyx_v_on_failure != Py_None);
      if (__pyx_t_16) {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":210
 *   except:
 *     if on_failure is not None:
 *       on_failure()             # <<<<<<<<<<<<<<
 *     raise
 *   else:
 */
        __Pyx_INCREF(__pyx_v_on_failure);
        __pyx_t_17 = __pyx_v_on_failure; __pyx_t_18 = NULL;
        __pyx_t_10 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_17))) {
          __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_17);
          if (likely(__pyx_t_18)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
            __Pyx_INCREF(__pyx_t_18);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_17, function);
            __pyx_t_10 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_18, NULL};
          __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_17, __pyx_callargs+1-__pyx_t_10, 0+__pyx_t_10);
          __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 210, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":209
 *   # propagating any exceptions raised by signal handlers to the application.
 *   except:
 *     if on_failure is not None:             # <<<<<<<<<<<<<<
 *       on_failure()
 *     raise
 */
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":211
 *     if on_failure is not None:
 *       on_failure()
 *     raise             # <<<<<<<<<<<<<<
 *   else:
 *     with channel_state.condition:
 */
      __Pyx_GIVEREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ErrRestoreWithState(__pyx_t_5, __pyx_t_6, __pyx_t_4);
      __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_4 = 0; 
      __PYX_ERR(12, 211, __pyx_L5_except_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":204
 *     deadline: The point after which the RPC will time out.
 *   """
 *   try:             # <<<<<<<<<<<<<<
 *     tag, event = _latent_event(c_completion_queue, deadline)
 *   # NOTE(rbellevi): This broad except enables us to clean up resources before
 */
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":185
 * 
 * 
 * cdef _next_call_event(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, grpc_completion_queue *c_completion_queue,
 *     on_success, on_failure, deadline):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_AddTraceback("grpc._cython.cygrpc._next_call_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_tag);
  __Pyx_XDECREF(__pyx_v_event);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":220
 * 
 * # TODO(https://github.com/grpc/grpc/issues/14569): This could be a lot simpler.
 * cdef void _call(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state,
 *     grpc_completion_queue *c_completion_queue, on_success, int flags, method,
 */

static void __pyx_f_4grpc_7_cython_6cygrpc__call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state, grpc_completion_queue *__pyx_v_c_completion_queue, PyObject *__pyx_v_on_success, int __pyx_v_flags, PyObject *__pyx_v_method, PyObject *__pyx_v_host, PyObject *__pyx_v_deadline, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials, PyObject *__pyx_v_operationses_and_user_tags, PyObject *__pyx_v_metadata, PyObject *__pyx_v_context, PyObject *__pyx_v_registered_call_handle) {
  grpc_slice __pyx_v_method_slice;
  grpc_slice __pyx_v_host_slice;
  grpc_slice *__pyx_v_host_slice_ptr;
  grpc_call_credentials *__pyx_v_c_call_credentials;
  grpc_call_error __pyx_v_c_call_error;
  PyObject *__pyx_v_started_tags = NULL;
  PyObject *__pyx_v_operations = NULL;
  PyObject *__pyx_v_user_tag = NULL;
  PyObject *__pyx_v_tag = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  grpc_slice __pyx_t_10;
  void *__pyx_t_11;
  gpr_timespec __pyx_t_12;
  grpc_call_credentials *__pyx_t_13;
  Py_ssize_t __pyx_t_14;
  PyObject *(*__pyx_t_15)(PyObject *);
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *(*__pyx_t_18)(PyObject *);
  grpc_call_error __pyx_t_19;
  int __pyx_t_20;
  PyObject *__pyx_t_21 = NULL;
  int __pyx_t_22;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":262
 *   cdef tuple error_and_wrapper_tag
 *   cdef _BatchOperationTag wrapper_tag
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if channel_state.open:
 *       method_slice = _slice_from_bytes(method)
 */
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_n_s_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 262, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 262, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 262, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":263
 *   cdef _BatchOperationTag wrapper_tag
 *   with channel_state.condition:
 *     if channel_state.open:             # <<<<<<<<<<<<<<
 *       method_slice = _slice_from_bytes(method)
 *       if host is None:
 */
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_channel_state->open); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 263, __pyx_L7_error)
          if (likely(__pyx_t_9)) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":264
 *   with channel_state.condition:
 *     if channel_state.open:
 *       method_slice = _slice_from_bytes(method)             # <<<<<<<<<<<<<<
 *       if host is None:
 *         host_slice_ptr = NULL
 */
            if (!(likely(PyBytes_CheckExact(__pyx_v_method))||((__pyx_v_method) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_method))) __PYX_ERR(12, 264, __pyx_L7_error)
            __pyx_t_10 = __pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes(((PyObject*)__pyx_v_method)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 264, __pyx_L7_error)
            __pyx_v_method_slice = __pyx_t_10;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":265
 *     if channel_state.open:
 *       method_slice = _slice_from_bytes(method)
 *       if host is None:             # <<<<<<<<<<<<<<
 *         host_slice_ptr = NULL
 *       else:
 */
            __pyx_t_9 = (__pyx_v_host == Py_None);
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":266
 *       method_slice = _slice_from_bytes(method)
 *       if host is None:
 *         host_slice_ptr = NULL             # <<<<<<<<<<<<<<
 *       else:
 *         host_slice = _slice_from_bytes(host)
 */
              __pyx_v_host_slice_ptr = NULL;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":265
 *     if channel_state.open:
 *       method_slice = _slice_from_bytes(method)
 *       if host is None:             # <<<<<<<<<<<<<<
 *         host_slice_ptr = NULL
 *       else:
 */
              goto __pyx_L14;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":268
 *         host_slice_ptr = NULL
 *       else:
 *         host_slice = _slice_from_bytes(host)             # <<<<<<<<<<<<<<
 *         host_slice_ptr = &host_slice
 *       if registered_call_handle:
 */
            /*else*/ {
              if (!(likely(PyBytes_CheckExact(__pyx_v_host))||((__pyx_v_host) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_host))) __PYX_ERR(12, 268, __pyx_L7_error)
              __pyx_t_10 = __pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes(((PyObject*)__pyx_v_host)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 268, __pyx_L7_error)
              __pyx_v_host_slice = __pyx_t_10;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":269
 *       else:
 *         host_slice = _slice_from_bytes(host)
 *         host_slice_ptr = &host_slice             # <<<<<<<<<<<<<<
 *       if registered_call_handle:
 *         call_state.c_call = grpc_channel_create_registered_call(
 */
              __pyx_v_host_slice_ptr = (&__pyx_v_host_slice);
            }
            __pyx_L14:;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":270
 *         host_slice = _slice_from_bytes(host)
 *         host_slice_ptr = &host_slice
 *       if registered_call_handle:             # <<<<<<<<<<<<<<
 *         call_state.c_call = grpc_channel_create_registered_call(
 *             channel_state.c_channel, NULL, flags,
 */
            __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_registered_call_handle); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 270, __pyx_L7_error)
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":273
 *         call_state.c_call = grpc_channel_create_registered_call(
 *             channel_state.c_channel, NULL, flags,
 *             c_completion_queue, cpython.PyLong_AsVoidPtr(registered_call_handle),             # <<<<<<<<<<<<<<
 *             _timespec_from_time(deadline), NULL)
 *         call_state.maybe_save_registered_method(method)
 */
              __pyx_t_11 = PyLong_AsVoidPtr(__pyx_v_registered_call_handle); if (unlikely(__pyx_t_11 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(12, 273, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":274
 *             channel_state.c_channel, NULL, flags,
 *             c_completion_queue, cpython.PyLong_AsVoidPtr(registered_call_handle),
 *             _timespec_from_time(deadline), NULL)             # <<<<<<<<<<<<<<
 *         call_state.maybe_save_registered_method(method)
 *       else:
 */
              __pyx_t_12 = __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(__pyx_v_deadline); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 274, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":271
 *         host_slice_ptr = &host_slice
 *       if registered_call_handle:
 *         call_state.c_call = grpc_channel_create_registered_call(             # <<<<<<<<<<<<<<
 *             channel_state.c_channel, NULL, flags,
 *             c_completion_queue, cpython.PyLong_AsVoidPtr(registered_call_handle),
 */
              __pyx_v_call_state->c_call = grpc_channel_create_registered_call(__pyx_v_channel_state->c_channel, NULL, __pyx_v_flags, __pyx_v_c_completion_queue, __pyx_t_11, __pyx_t_12, NULL);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":275
 *             c_completion_queue, cpython.PyLong_AsVoidPtr(registered_call_handle),
 *             _timespec_from_time(deadline), NULL)
 *         call_state.maybe_save_registered_method(method)             # <<<<<<<<<<<<<<
 *       else:
 *         call_state.c_call = grpc_channel_create_call(
 */
              if (!(likely(PyBytes_CheckExact(__pyx_v_method))||((__pyx_v_method) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_method))) __PYX_ERR(12, 275, __pyx_L7_error)
              ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_call_state->__pyx_vtab)->maybe_save_registered_method(__pyx_v_call_state, ((PyObject*)__pyx_v_method)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 275, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":270
 *         host_slice = _slice_from_bytes(host)
 *         host_slice_ptr = &host_slice
 *       if registered_call_handle:             # <<<<<<<<<<<<<<
 *         call_state.c_call = grpc_channel_create_registered_call(
 *             channel_state.c_channel, NULL, flags,
 */
              goto __pyx_L15;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":277
 *         call_state.maybe_save_registered_method(method)
 *       else:
 *         call_state.c_call = grpc_channel_create_call(             # <<<<<<<<<<<<<<
 *             channel_state.c_channel, NULL, flags,
 *             c_completion_queue, method_slice, host_slice_ptr,
 */
            /*else*/ {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":280
 *             channel_state.c_channel, NULL, flags,
 *             c_completion_queue, method_slice, host_slice_ptr,
 *             _timespec_from_time(deadline), NULL)             # <<<<<<<<<<<<<<
 *       grpc_slice_unref(method_slice)
 *       if host_slice_ptr:
 */
              __pyx_t_12 = __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(__pyx_v_deadline); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 280, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":277
 *         call_state.maybe_save_registered_method(method)
 *       else:
 *         call_state.c_call = grpc_channel_create_call(             # <<<<<<<<<<<<<<
 *             channel_state.c_channel, NULL, flags,
 *             c_completion_queue, method_slice, host_slice_ptr,
 */
              __pyx_v_call_state->c_call = grpc_channel_create_call(__pyx_v_channel_state->c_channel, NULL, __pyx_v_flags, __pyx_v_c_completion_queue, __pyx_v_method_slice, __pyx_v_host_slice_ptr, __pyx_t_12, NULL);
            }
            __pyx_L15:;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":281
 *             c_completion_queue, method_slice, host_slice_ptr,
 *             _timespec_from_time(deadline), NULL)
 *       grpc_slice_unref(method_slice)             # <<<<<<<<<<<<<<
 *       if host_slice_ptr:
 *         grpc_slice_unref(host_slice)
 */
            grpc_slice_unref(__pyx_v_method_slice);

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":282
 *             _timespec_from_time(deadline), NULL)
 *       grpc_slice_unref(method_slice)
 *       if host_slice_ptr:             # <<<<<<<<<<<<<<
 *         grpc_slice_unref(host_slice)
 *       call_state.maybe_set_client_call_tracer_on_call(method, channel_state.target)
 */
            __pyx_t_9 = (__pyx_v_host_slice_ptr != 0);
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":283
 *       grpc_slice_unref(method_slice)
 *       if host_slice_ptr:
 *         grpc_slice_unref(host_slice)             # <<<<<<<<<<<<<<
 *       call_state.maybe_set_client_call_tracer_on_call(method, channel_state.target)
 *       if context is not None:
 */
              grpc_slice_unref(__pyx_v_host_slice);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":282
 *             _timespec_from_time(deadline), NULL)
 *       grpc_slice_unref(method_slice)
 *       if host_slice_ptr:             # <<<<<<<<<<<<<<
 *         grpc_slice_unref(host_slice)
 *       call_state.maybe_set_client_call_tracer_on_call(method, channel_state.target)
 */
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":284
 *       if host_slice_ptr:
 *         grpc_slice_unref(host_slice)
 *       call_state.maybe_set_client_call_tracer_on_call(method, channel_state.target)             # <<<<<<<<<<<<<<
 *       if context is not None:
 *         set_census_context_on_call(call_state, context)
 */
            if (!(likely(PyBytes_CheckExact(__pyx_v_method))||((__pyx_v_method) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_method))) __PYX_ERR(12, 284, __pyx_L7_error)
            __pyx_t_2 = __pyx_v_channel_state->target;
            __Pyx_INCREF(__pyx_t_2);
            ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_call_state->__pyx_vtab)->maybe_set_client_call_tracer_on_call(__pyx_v_call_state, ((PyObject*)__pyx_v_method), ((PyObject*)__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 284, __pyx_L7_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":285
 *         grpc_slice_unref(host_slice)
 *       call_state.maybe_set_client_call_tracer_on_call(method, channel_state.target)
 *       if context is not None:             # <<<<<<<<<<<<<<
 *         set_census_context_on_call(call_state, context)
 *       if credentials is not None:
 */
            __pyx_t_9 = (__pyx_v_context != Py_None);
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":286
 *       call_state.maybe_set_client_call_tracer_on_call(method, channel_state.target)
 *       if context is not None:
 *         set_census_context_on_call(call_state, context)             # <<<<<<<<<<<<<<
 *       if credentials is not None:
 *         c_call_credentials = credentials.c()
 */
              __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_set_census_context_on_call); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 286, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_4 = NULL;
              __pyx_t_5 = 0;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_3))) {
                __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
                if (likely(__pyx_t_4)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
                  __Pyx_INCREF(__pyx_t_4);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_3, function);
                  __pyx_t_5 = 1;
                }
              }
              #endif
              {
                PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_call_state), __pyx_v_context};
                __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
                __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 286, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_2);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              }
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":285
 *         grpc_slice_unref(host_slice)
 *       call_state.maybe_set_client_call_tracer_on_call(method, channel_state.target)
 *       if context is not None:             # <<<<<<<<<<<<<<
 *         set_census_context_on_call(call_state, context)
 *       if credentials is not None:
 */
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":287
 *       if context is not None:
 *         set_census_context_on_call(call_state, context)
 *       if credentials is not None:             # <<<<<<<<<<<<<<
 *         c_call_credentials = credentials.c()
 *         c_call_error = grpc_call_set_credentials(
 */
            __pyx_t_9 = (((PyObject *)__pyx_v_credentials) != Py_None);
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":288
 *         set_census_context_on_call(call_state, context)
 *       if credentials is not None:
 *         c_call_credentials = credentials.c()             # <<<<<<<<<<<<<<
 *         c_call_error = grpc_call_set_credentials(
 *             call_state.c_call, c_call_credentials)
 */
              __pyx_t_13 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_credentials->__pyx_vtab)->c(__pyx_v_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 288, __pyx_L7_error)
              __pyx_v_c_call_credentials = __pyx_t_13;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":289
 *       if credentials is not None:
 *         c_call_credentials = credentials.c()
 *         c_call_error = grpc_call_set_credentials(             # <<<<<<<<<<<<<<
 *             call_state.c_call, c_call_credentials)
 *         grpc_call_credentials_release(c_call_credentials)
 */
              __pyx_v_c_call_error = grpc_call_set_credentials(__pyx_v_call_state->c_call, __pyx_v_c_call_credentials);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":291
 *         c_call_error = grpc_call_set_credentials(
 *             call_state.c_call, c_call_credentials)
 *         grpc_call_credentials_release(c_call_credentials)             # <<<<<<<<<<<<<<
 *         if c_call_error != GRPC_CALL_OK:
 *           #TODO(xuanwn): Expand the scope of nogil
 */
              grpc_call_credentials_release(__pyx_v_c_call_credentials);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":292
 *             call_state.c_call, c_call_credentials)
 *         grpc_call_credentials_release(c_call_credentials)
 *         if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *           #TODO(xuanwn): Expand the scope of nogil
 *           call_state.delete_call()
 */
              __pyx_t_9 = (__pyx_v_c_call_error != GRPC_CALL_OK);
              if (__pyx_t_9) {

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":294
 *         if c_call_error != GRPC_CALL_OK:
 *           #TODO(xuanwn): Expand the scope of nogil
 *           call_state.delete_call()             # <<<<<<<<<<<<<<
 *           _raise_call_error_no_metadata(c_call_error)
 *       started_tags = set()
 */
                ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_call_state->__pyx_vtab)->delete_call(__pyx_v_call_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 294, __pyx_L7_error)

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":295
 *           #TODO(xuanwn): Expand the scope of nogil
 *           call_state.delete_call()
 *           _raise_call_error_no_metadata(c_call_error)             # <<<<<<<<<<<<<<
 *       started_tags = set()
 *       for operations, user_tag in operationses_and_user_tags:
 */
                __pyx_t_2 = __Pyx_PyInt_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 295, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_2);
                __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error_no_metadata(__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 295, __pyx_L7_error)
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":292
 *             call_state.c_call, c_call_credentials)
 *         grpc_call_credentials_release(c_call_credentials)
 *         if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *           #TODO(xuanwn): Expand the scope of nogil
 *           call_state.delete_call()
 */
              }

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":287
 *       if context is not None:
 *         set_census_context_on_call(call_state, context)
 *       if credentials is not None:             # <<<<<<<<<<<<<<
 *         c_call_credentials = credentials.c()
 *         c_call_error = grpc_call_set_credentials(
 */
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":296
 *           call_state.delete_call()
 *           _raise_call_error_no_metadata(c_call_error)
 *       started_tags = set()             # <<<<<<<<<<<<<<
 *       for operations, user_tag in operationses_and_user_tags:
 *         c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 */
            __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 296, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_v_started_tags = ((PyObject*)__pyx_t_2);
            __pyx_t_2 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":297
 *           _raise_call_error_no_metadata(c_call_error)
 *       started_tags = set()
 *       for operations, user_tag in operationses_and_user_tags:             # <<<<<<<<<<<<<<
 *         c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *         if c_call_error == GRPC_CALL_OK:
 */
            if (likely(PyList_CheckExact(__pyx_v_operationses_and_user_tags)) || PyTuple_CheckExact(__pyx_v_operationses_and_user_tags)) {
              __pyx_t_2 = __pyx_v_operationses_and_user_tags; __Pyx_INCREF(__pyx_t_2);
              __pyx_t_14 = 0;
              __pyx_t_15 = NULL;
            } else {
              __pyx_t_14 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_operationses_and_user_tags); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 297, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_2);
              __pyx_t_15 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(12, 297, __pyx_L7_error)
            }
            for (;;) {
              if (likely(!__pyx_t_15)) {
                if (likely(PyList_CheckExact(__pyx_t_2))) {
                  {
                    Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
                    #if !CYTHON_ASSUME_SAFE_MACROS
                    if (unlikely((__pyx_temp < 0))) __PYX_ERR(12, 297, __pyx_L7_error)
                    #endif
                    if (__pyx_t_14 >= __pyx_temp) break;
                  }
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_14); __Pyx_INCREF(__pyx_t_3); __pyx_t_14++; if (unlikely((0 < 0))) __PYX_ERR(12, 297, __pyx_L7_error)
                  #else
                  __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 297, __pyx_L7_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  #endif
                } else {
                  {
                    Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
                    #if !CYTHON_ASSUME_SAFE_MACROS
                    if (unlikely((__pyx_temp < 0))) __PYX_ERR(12, 297, __pyx_L7_error)
                    #endif
                    if (__pyx_t_14 >= __pyx_temp) break;
                  }
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_14); __Pyx_INCREF(__pyx_t_3); __pyx_t_14++; if (unlikely((0 < 0))) __PYX_ERR(12, 297, __pyx_L7_error)
                  #else
                  __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 297, __pyx_L7_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  #endif
                }
              } else {
                __pyx_t_3 = __pyx_t_15(__pyx_t_2);
                if (unlikely(!__pyx_t_3)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(12, 297, __pyx_L7_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_3);
              }
              if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
                PyObject* sequence = __pyx_t_3;
                Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
                if (unlikely(size != 2)) {
                  if (size > 2) __Pyx_RaiseTooManyValuesError(2);
                  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
                  __PYX_ERR(12, 297, __pyx_L7_error)
                }
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                if (likely(PyTuple_CheckExact(sequence))) {
                  __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
                  __pyx_t_16 = PyTuple_GET_ITEM(sequence, 1); 
                } else {
                  __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
                  __pyx_t_16 = PyList_GET_ITEM(sequence, 1); 
                }
                __Pyx_INCREF(__pyx_t_4);
                __Pyx_INCREF(__pyx_t_16);
                #else
                __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 297, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_4);
                __pyx_t_16 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(12, 297, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_16);
                #endif
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              } else {
                Py_ssize_t index = -1;
                __pyx_t_17 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_17)) __PYX_ERR(12, 297, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                __pyx_t_18 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_17);
                index = 0; __pyx_t_4 = __pyx_t_18(__pyx_t_17); if (unlikely(!__pyx_t_4)) goto __pyx_L22_unpacking_failed;
                __Pyx_GOTREF(__pyx_t_4);
                index = 1; __pyx_t_16 = __pyx_t_18(__pyx_t_17); if (unlikely(!__pyx_t_16)) goto __pyx_L22_unpacking_failed;
                __Pyx_GOTREF(__pyx_t_16);
                if (__Pyx_IternextUnpackEndCheck(__pyx_t_18(__pyx_t_17), 2) < 0) __PYX_ERR(12, 297, __pyx_L7_error)
                __pyx_t_18 = NULL;
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                goto __pyx_L23_unpacking_done;
                __pyx_L22_unpacking_failed:;
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __pyx_t_18 = NULL;
                if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
                __PYX_ERR(12, 297, __pyx_L7_error)
                __pyx_L23_unpacking_done:;
              }
              __Pyx_XDECREF_SET(__pyx_v_operations, __pyx_t_4);
              __pyx_t_4 = 0;
              __Pyx_XDECREF_SET(__pyx_v_user_tag, __pyx_t_16);
              __pyx_t_16 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":298
 *       started_tags = set()
 *       for operations, user_tag in operationses_and_user_tags:
 *         c_call_error, tag = _operate(call_state.c_call, operations, user_tag)             # <<<<<<<<<<<<<<
 *         if c_call_error == GRPC_CALL_OK:
 *           started_tags.add(tag)
 */
              __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__operate(__pyx_v_call_state->c_call, __pyx_v_operations, __pyx_v_user_tag); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 298, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              if (likely(__pyx_t_3 != Py_None)) {
                PyObject* sequence = __pyx_t_3;
                Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
                if (unlikely(size != 2)) {
                  if (size > 2) __Pyx_RaiseTooManyValuesError(2);
                  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
                  __PYX_ERR(12, 298, __pyx_L7_error)
                }
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_16 = PyTuple_GET_ITEM(sequence, 0); 
                __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
                __Pyx_INCREF(__pyx_t_16);
                __Pyx_INCREF(__pyx_t_4);
                #else
                __pyx_t_16 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(12, 298, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_16);
                __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 298, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              } else {
                __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(12, 298, __pyx_L7_error)
              }
              __pyx_t_19 = ((grpc_call_error)__Pyx_PyInt_As_grpc_call_error(__pyx_t_16)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 298, __pyx_L7_error)
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              __pyx_v_c_call_error = __pyx_t_19;
              __Pyx_XDECREF_SET(__pyx_v_tag, __pyx_t_4);
              __pyx_t_4 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":299
 *       for operations, user_tag in operationses_and_user_tags:
 *         c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *         if c_call_error == GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *           started_tags.add(tag)
 *         else:
 */
              __pyx_t_9 = (__pyx_v_c_call_error == GRPC_CALL_OK);
              if (__pyx_t_9) {

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":300
 *         c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *         if c_call_error == GRPC_CALL_OK:
 *           started_tags.add(tag)             # <<<<<<<<<<<<<<
 *         else:
 *           grpc_call_cancel(call_state.c_call, NULL)
 */
                __pyx_t_20 = PySet_Add(__pyx_v_started_tags, __pyx_v_tag); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(12, 300, __pyx_L7_error)

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":299
 *       for operations, user_tag in operationses_and_user_tags:
 *         c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *         if c_call_error == GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *           started_tags.add(tag)
 *         else:
 */
                goto __pyx_L24;
              }

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":302
 *           started_tags.add(tag)
 *         else:
 *           grpc_call_cancel(call_state.c_call, NULL)             # <<<<<<<<<<<<<<
 *           #TODO(xuanwn): Expand the scope of nogil
 *           call_state.delete_call()
 */
              /*else*/ {
                (void)(grpc_call_cancel(__pyx_v_call_state->c_call, NULL));

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":304
 *           grpc_call_cancel(call_state.c_call, NULL)
 *           #TODO(xuanwn): Expand the scope of nogil
 *           call_state.delete_call()             # <<<<<<<<<<<<<<
 *           _raise_call_error(c_call_error, metadata)
 *       else:
 */
                ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_call_state->__pyx_vtab)->delete_call(__pyx_v_call_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 304, __pyx_L7_error)

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":305
 *           #TODO(xuanwn): Expand the scope of nogil
 *           call_state.delete_call()
 *           _raise_call_error(c_call_error, metadata)             # <<<<<<<<<<<<<<
 *       else:
 *         call_state.due.update(started_tags)
 */
                __pyx_t_3 = __Pyx_PyInt_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 305, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_3);
                __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error(__pyx_t_3, __pyx_v_metadata); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 305, __pyx_L7_error)
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              }
              __pyx_L24:;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":297
 *           _raise_call_error_no_metadata(c_call_error)
 *       started_tags = set()
 *       for operations, user_tag in operationses_and_user_tags:             # <<<<<<<<<<<<<<
 *         c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *         if c_call_error == GRPC_CALL_OK:
 */
            }
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            /*else*/ {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":307
 *           _raise_call_error(c_call_error, metadata)
 *       else:
 *         call_state.due.update(started_tags)             # <<<<<<<<<<<<<<
 *         on_success(started_tags)
 *     else:
 */
              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_call_state->due, __pyx_n_s_update); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 307, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_4 = NULL;
              __pyx_t_5 = 0;
              #if CYTHON_UNPACK_METHODS
              if (likely(PyMethod_Check(__pyx_t_3))) {
                __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
                if (likely(__pyx_t_4)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
                  __Pyx_INCREF(__pyx_t_4);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_3, function);
                  __pyx_t_5 = 1;
                }
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_started_tags};
                __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
                __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 307, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_2);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              }
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":308
 *       else:
 *         call_state.due.update(started_tags)
 *         on_success(started_tags)             # <<<<<<<<<<<<<<
 *     else:
 *       raise ValueError('Cannot invoke RPC: %s' % channel_state.closed_reason)
 */
              __Pyx_INCREF(__pyx_v_on_success);
              __pyx_t_3 = __pyx_v_on_success; __pyx_t_4 = NULL;
              __pyx_t_5 = 0;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_3))) {
                __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
                if (likely(__pyx_t_4)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
                  __Pyx_INCREF(__pyx_t_4);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_3, function);
                  __pyx_t_5 = 1;
                }
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_started_tags};
                __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
                __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 308, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_2);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              }
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":263
 *   cdef _BatchOperationTag wrapper_tag
 *   with channel_state.condition:
 *     if channel_state.open:             # <<<<<<<<<<<<<<
 *       method_slice = _slice_from_bytes(method)
 *       if host is None:
 */
            goto __pyx_L13;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":310
 *         on_success(started_tags)
 *     else:
 *       raise ValueError('Cannot invoke RPC: %s' % channel_state.closed_reason)             # <<<<<<<<<<<<<<
 * 
 * 
 */
          /*else*/ {
            __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Cannot_invoke_RPC_s, __pyx_v_channel_state->closed_reason); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 310, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 310, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_Raise(__pyx_t_3, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __PYX_ERR(12, 310, __pyx_L7_error)
          }
          __pyx_L13:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":262
 *   cdef tuple error_and_wrapper_tag
 *   cdef _BatchOperationTag wrapper_tag
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if channel_state.open:
 *       method_slice = _slice_from_bytes(method)
 */
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._call", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_4) < 0) __PYX_ERR(12, 262, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_16 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_16)) __PYX_ERR(12, 262, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_16, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          if (unlikely(!__pyx_t_21)) __PYX_ERR(12, 262, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(12, 262, __pyx_L9_except_error)
          __pyx_t_22 = (!__pyx_t_9);
          if (unlikely(__pyx_t_22)) {
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_2, __pyx_t_4);
            __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_4 = 0; 
            __PYX_ERR(12, 262, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 262, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L30;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L30:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":220
 * 
 * # TODO(https://github.com/grpc/grpc/issues/14569): This could be a lot simpler.
 * cdef void _call(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state,
 *     grpc_completion_queue *c_completion_queue, on_success, int flags, method,
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_AddTraceback("grpc._cython.cygrpc._call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_started_tags);
  __Pyx_XDECREF(__pyx_v_operations);
  __Pyx_XDECREF(__pyx_v_user_tag);
  __Pyx_XDECREF(__pyx_v_tag);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":313
 * 
 * 
 * cdef void _process_integrated_call_tag(             # <<<<<<<<<<<<<<
 *     _ChannelState state, _BatchOperationTag tag) except *:
 *   cdef _CallState call_state = state.integrated_call_states.pop(tag)
 */

static void __pyx_f_4grpc_7_cython_6cygrpc__process_integrated_call_tag(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_tag) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state = 0;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_process_integrated_call_tag", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":315
 * cdef void _process_integrated_call_tag(
 *     _ChannelState state, _BatchOperationTag tag) except *:
 *   cdef _CallState call_state = state.integrated_call_states.pop(tag)             # <<<<<<<<<<<<<<
 *   call_state.due.remove(tag)
 *   if not call_state.due:
 */
  if (unlikely(__pyx_v_state->integrated_call_states == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop");
    __PYX_ERR(12, 315, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyDict_Pop(__pyx_v_state->integrated_call_states, ((PyObject *)__pyx_v_tag), ((PyObject *)NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4grpc_7_cython_6cygrpc__CallState))))) __PYX_ERR(12, 315, __pyx_L1_error)
  __pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":316
 *     _ChannelState state, _BatchOperationTag tag) except *:
 *   cdef _CallState call_state = state.integrated_call_states.pop(tag)
 *   call_state.due.remove(tag)             # <<<<<<<<<<<<<<
 *   if not call_state.due:
 *     call_state.delete_call()
 */
  if (unlikely(__pyx_v_call_state->due == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
    __PYX_ERR(12, 316, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PySet_Remove(__pyx_v_call_state->due, ((PyObject *)__pyx_v_tag)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(12, 316, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":317
 *   cdef _CallState call_state = state.integrated_call_states.pop(tag)
 *   call_state.due.remove(tag)
 *   if not call_state.due:             # <<<<<<<<<<<<<<
 *     call_state.delete_call()
 * 
 */
  __pyx_t_3 = (__pyx_v_call_state->due != Py_None)&&(PySet_GET_SIZE(__pyx_v_call_state->due) != 0);
  __pyx_t_4 = (!__pyx_t_3);
  if (__pyx_t_4) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":318
 *   call_state.due.remove(tag)
 *   if not call_state.due:
 *     call_state.delete_call()             # <<<<<<<<<<<<<<
 * 
 * cdef class IntegratedCall:
 */
    ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_call_state->__pyx_vtab)->delete_call(__pyx_v_call_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 318, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":317
 *   cdef _CallState call_state = state.integrated_call_states.pop(tag)
 *   call_state.due.remove(tag)
 *   if not call_state.due:             # <<<<<<<<<<<<<<
 *     call_state.delete_call()
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":313
 * 
 * 
 * cdef void _process_integrated_call_tag(             # <<<<<<<<<<<<<<
 *     _ChannelState state, _BatchOperationTag tag) except *:
 *   cdef _CallState call_state = state.integrated_call_states.pop(tag)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._process_integrated_call_tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_call_state);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":322
 * cdef class IntegratedCall:
 * 
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):             # <<<<<<<<<<<<<<
 *     self._channel_state = channel_state
 *     self._call_state = call_state
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_channel_state,&__pyx_n_s_call_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_channel_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 322, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 322, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(12, 322, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(12, 322, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_channel_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)values[0]);
    __pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 322, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_channel_state), __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState, 1, "channel_state", 0))) __PYX_ERR(12, 322, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_state), __pyx_ptype_4grpc_7_cython_6cygrpc__CallState, 1, "call_state", 0))) __PYX_ERR(12, 322, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)__pyx_v_self), __pyx_v_channel_state, __pyx_v_call_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":323
 * 
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):
 *     self._channel_state = channel_state             # <<<<<<<<<<<<<<
 *     self._call_state = call_state
 * 
 */
  __Pyx_INCREF((PyObject *)__pyx_v_channel_state);
  __Pyx_GIVEREF((PyObject *)__pyx_v_channel_state);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_channel_state);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_channel_state);
  __pyx_v_self->_channel_state = __pyx_v_channel_state;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":324
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):
 *     self._channel_state = channel_state
 *     self._call_state = call_state             # <<<<<<<<<<<<<<
 * 
 *   def operate(self, operations, tag):
 */
  __Pyx_INCREF((PyObject *)__pyx_v_call_state);
  __Pyx_GIVEREF((PyObject *)__pyx_v_call_state);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_call_state);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_call_state);
  __pyx_v_self->_call_state = __pyx_v_call_state;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":322
 * cdef class IntegratedCall:
 * 
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):             # <<<<<<<<<<<<<<
 *     self._channel_state = channel_state
 *     self._call_state = call_state
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":326
 *     self._call_state = call_state
 * 
 *   def operate(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return _operate_from_integrated_call(
 *         self._channel_state, self._call_state, operations, tag)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_3operate(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_3operate = {"operate", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_3operate, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_3operate(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_operations = 0;
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("operate (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_operations,&__pyx_n_s_tag,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_operations)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 326, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 326, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("operate", 1, 2, 2, 1); __PYX_ERR(12, 326, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "operate") < 0)) __PYX_ERR(12, 326, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_operations = values[0];
    __pyx_v_tag = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("operate", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 326, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.operate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_2operate(((struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)__pyx_v_self), __pyx_v_operations, __pyx_v_tag);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_2operate(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("operate", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":327
 * 
 *   def operate(self, operations, tag):
 *     return _operate_from_integrated_call(             # <<<<<<<<<<<<<<
 *         self._channel_state, self._call_state, operations, tag)
 * 
 */
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":328
 *   def operate(self, operations, tag):
 *     return _operate_from_integrated_call(
 *         self._channel_state, self._call_state, operations, tag)             # <<<<<<<<<<<<<<
 * 
 *   def cancel(self, code, details):
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->_channel_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_call_state);
  __Pyx_INCREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":327
 * 
 *   def operate(self, operations, tag):
 *     return _operate_from_integrated_call(             # <<<<<<<<<<<<<<
 *         self._channel_state, self._call_state, operations, tag)
 * 
 */
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__operate_from_integrated_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_2), __pyx_v_operations, __pyx_v_tag); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":326
 *     self._call_state = call_state
 * 
 *   def operate(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return _operate_from_integrated_call(
 *         self._channel_state, self._call_state, operations, tag)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.operate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":330
 *         self._channel_state, self._call_state, operations, tag)
 * 
 *   def cancel(self, code, details):             # <<<<<<<<<<<<<<
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_5cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_5cancel = {"cancel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_5cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_5cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_code,&__pyx_n_s_details,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_code)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 330, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 330, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("cancel", 1, 2, 2, 1); __PYX_ERR(12, 330, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "cancel") < 0)) __PYX_ERR(12, 330, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_code = values[0];
    __pyx_v_details = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cancel", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 330, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_4cancel(((struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)__pyx_v_self), __pyx_v_code, __pyx_v_details);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_4cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  grpc_status_code __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cancel", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":331
 * 
 *   def cancel(self, code, details):
 *     _cancel(self._channel_state, self._call_state, code, details)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->_channel_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_call_state);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(__pyx_v_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 331, __pyx_L1_error)
  if (!(likely(PyString_CheckExact(__pyx_v_details))||((__pyx_v_details) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_v_details))) __PYX_ERR(12, 331, __pyx_L1_error)
  __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__cancel(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_2), __pyx_t_3, ((PyObject*)__pyx_v_details)); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":330
 *         self._channel_state, self._call_state, operations, tag)
 * 
 *   def cancel(self, code, details):             # <<<<<<<<<<<<<<
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_6__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_8__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":340
 *   call_state = _CallState()
 * 
 *   def on_success(started_tags):             # <<<<<<<<<<<<<<
 *     for started_tag in started_tags:
 *       state.integrated_call_states[started_tag] = call_state
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_integrated_call_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_integrated_call_1on_success = {"on_success", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_integrated_call_1on_success, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_integrated_call_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_started_tags = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("on_success (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_started_tags,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_started_tags)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 340, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "on_success") < 0)) __PYX_ERR(12, 340, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_started_tags = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("on_success", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 340, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._integrated_call.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_integrated_call_on_success(__pyx_self, __pyx_v_started_tags);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_integrated_call_on_success(PyObject *__pyx_self, PyObject *__pyx_v_started_tags) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *__pyx_outer_scope;
  PyObject *__pyx_v_started_tag = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("on_success", 1);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":341
 * 
 *   def on_success(started_tags):
 *     for started_tag in started_tags:             # <<<<<<<<<<<<<<
 *       state.integrated_call_states[started_tag] = call_state
 * 
 */
  if (likely(PyList_CheckExact(__pyx_v_started_tags)) || PyTuple_CheckExact(__pyx_v_started_tags)) {
    __pyx_t_1 = __pyx_v_started_tags; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_started_tags); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 341, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 341, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(12, 341, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(12, 341, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(12, 341, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(12, 341, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(12, 341, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_started_tag, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":342
 *   def on_success(started_tags):
 *     for started_tag in started_tags:
 *       state.integrated_call_states[started_tag] = call_state             # <<<<<<<<<<<<<<
 * 
 *   _call(
 */
    if (unlikely(!__pyx_cur_scope->__pyx_v_call_state)) { __Pyx_RaiseClosureNameError("call_state"); __PYX_ERR(12, 342, __pyx_L1_error) }
    if (unlikely(!__pyx_cur_scope->__pyx_v_state)) { __Pyx_RaiseClosureNameError("state"); __PYX_ERR(12, 342, __pyx_L1_error) }
    if (unlikely(__pyx_cur_scope->__pyx_v_state->integrated_call_states == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(12, 342, __pyx_L1_error)
    }
    if (unlikely((PyDict_SetItem(__pyx_cur_scope->__pyx_v_state->integrated_call_states, __pyx_v_started_tag, ((PyObject *)__pyx_cur_scope->__pyx_v_call_state)) < 0))) __PYX_ERR(12, 342, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":341
 * 
 *   def on_success(started_tags):
 *     for started_tag in started_tags:             # <<<<<<<<<<<<<<
 *       state.integrated_call_states[started_tag] = call_state
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":340
 *   call_state = _CallState()
 * 
 *   def on_success(started_tags):             # <<<<<<<<<<<<<<
 *     for started_tag in started_tags:
 *       state.integrated_call_states[started_tag] = call_state
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._integrated_call.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_started_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":334
 * 
 * 
 * cdef IntegratedCall _integrated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState state, int flags, method, host, object deadline,
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
 */

static struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_f_4grpc_7_cython_6cygrpc__integrated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state, int __pyx_v_flags, PyObject *__pyx_v_method, PyObject *__pyx_v_host, PyObject *__pyx_v_deadline, PyObject *__pyx_v_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials, PyObject *__pyx_v_operationses_and_user_tags, PyObject *__pyx_v_context, PyObject *__pyx_v_registered_call_handle) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *__pyx_cur_scope;
  PyObject *__pyx_v_on_success = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_integrated_call", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(12, 334, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_state = __pyx_v_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_state);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":338
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
 *     object context, object registered_call_handle):
 *   call_state = _CallState()             # <<<<<<<<<<<<<<
 * 
 *   def on_success(started_tags):
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__CallState)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":340
 *   call_state = _CallState()
 * 
 *   def on_success(started_tags):             # <<<<<<<<<<<<<<
 *     for started_tag in started_tags:
 *       state.integrated_call_states[started_tag] = call_state
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_integrated_call_1on_success, 0, __pyx_n_s_integrated_call_locals_on_succe, ((PyObject*)__pyx_cur_scope), __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__13)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_on_success = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":345
 * 
 *   _call(
 *       state, call_state, state.c_call_completion_queue, on_success, flags,             # <<<<<<<<<<<<<<
 *       method, host, deadline, credentials, operationses_and_user_tags,
 *       metadata, context, registered_call_handle)
 */
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_v_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_call_state);
  __Pyx_INCREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":344
 *       state.integrated_call_states[started_tag] = call_state
 * 
 *   _call(             # <<<<<<<<<<<<<<
 *       state, call_state, state.c_call_completion_queue, on_success, flags,
 *       method, host, deadline, credentials, operationses_and_user_tags,
 */
  __pyx_f_4grpc_7_cython_6cygrpc__call(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_2), __pyx_cur_scope->__pyx_v_state->c_call_completion_queue, __pyx_v_on_success, __pyx_v_flags, __pyx_v_method, __pyx_v_host, __pyx_v_deadline, __pyx_v_credentials, __pyx_v_operationses_and_user_tags, __pyx_v_metadata, __pyx_v_context, __pyx_v_registered_call_handle); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 344, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":349
 *       metadata, context, registered_call_handle)
 * 
 *   return IntegratedCall(state, call_state)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_state);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_state))) __PYX_ERR(12, 349, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_call_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_call_state);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_cur_scope->__pyx_v_call_state))) __PYX_ERR(12, 349, __pyx_L1_error);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":334
 * 
 * 
 * cdef IntegratedCall _integrated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState state, int flags, method, host, object deadline,
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._integrated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_on_success);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":352
 * 
 * 
 * cdef object _process_segregated_call_tag(             # <<<<<<<<<<<<<<
 *     _ChannelState state, _CallState call_state,
 *     grpc_completion_queue *c_completion_queue, _BatchOperationTag tag):
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__process_segregated_call_tag(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state, grpc_completion_queue *__pyx_v_c_completion_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_tag) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_process_segregated_call_tag", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":355
 *     _ChannelState state, _CallState call_state,
 *     grpc_completion_queue *c_completion_queue, _BatchOperationTag tag):
 *   call_state.due.remove(tag)             # <<<<<<<<<<<<<<
 *   if not call_state.due:
 *     #TODO(xuanwn): Expand the scope of nogil
 */
  if (unlikely(__pyx_v_call_state->due == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
    __PYX_ERR(12, 355, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PySet_Remove(__pyx_v_call_state->due, ((PyObject *)__pyx_v_tag)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 355, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":356
 *     grpc_completion_queue *c_completion_queue, _BatchOperationTag tag):
 *   call_state.due.remove(tag)
 *   if not call_state.due:             # <<<<<<<<<<<<<<
 *     #TODO(xuanwn): Expand the scope of nogil
 *     call_state.delete_call()
 */
  __pyx_t_2 = (__pyx_v_call_state->due != Py_None)&&(PySet_GET_SIZE(__pyx_v_call_state->due) != 0);
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":358
 *   if not call_state.due:
 *     #TODO(xuanwn): Expand the scope of nogil
 *     call_state.delete_call()             # <<<<<<<<<<<<<<
 *     state.segregated_call_states.remove(call_state)
 *     _destroy_c_completion_queue(c_completion_queue)
 */
    ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_call_state->__pyx_vtab)->delete_call(__pyx_v_call_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 358, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":359
 *     #TODO(xuanwn): Expand the scope of nogil
 *     call_state.delete_call()
 *     state.segregated_call_states.remove(call_state)             # <<<<<<<<<<<<<<
 *     _destroy_c_completion_queue(c_completion_queue)
 *     return True
 */
    if (unlikely(__pyx_v_state->segregated_call_states == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
      __PYX_ERR(12, 359, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PySet_Remove(__pyx_v_state->segregated_call_states, ((PyObject *)__pyx_v_call_state)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 359, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":360
 *     call_state.delete_call()
 *     state.segregated_call_states.remove(call_state)
 *     _destroy_c_completion_queue(c_completion_queue)             # <<<<<<<<<<<<<<
 *     return True
 *   else:
 */
    __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__destroy_c_completion_queue(__pyx_v_c_completion_queue); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 360, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":361
 *     state.segregated_call_states.remove(call_state)
 *     _destroy_c_completion_queue(c_completion_queue)
 *     return True             # <<<<<<<<<<<<<<
 *   else:
 *     return False
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":356
 *     grpc_completion_queue *c_completion_queue, _BatchOperationTag tag):
 *   call_state.due.remove(tag)
 *   if not call_state.due:             # <<<<<<<<<<<<<<
 *     #TODO(xuanwn): Expand the scope of nogil
 *     call_state.delete_call()
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":363
 *     return True
 *   else:
 *     return False             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_False);
    __pyx_r = Py_False;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":352
 * 
 * 
 * cdef object _process_segregated_call_tag(             # <<<<<<<<<<<<<<
 *     _ChannelState state, _CallState call_state,
 *     grpc_completion_queue *c_completion_queue, _BatchOperationTag tag):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._process_segregated_call_tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":368
 * cdef class SegregatedCall:
 * 
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):             # <<<<<<<<<<<<<<
 *     self._channel_state = channel_state
 *     self._call_state = call_state
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_channel_state,&__pyx_n_s_call_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_channel_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 368, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 368, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(12, 368, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(12, 368, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_channel_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)values[0]);
    __pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 368, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_channel_state), __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState, 1, "channel_state", 0))) __PYX_ERR(12, 368, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_state), __pyx_ptype_4grpc_7_cython_6cygrpc__CallState, 1, "call_state", 0))) __PYX_ERR(12, 368, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)__pyx_v_self), __pyx_v_channel_state, __pyx_v_call_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":369
 * 
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):
 *     self._channel_state = channel_state             # <<<<<<<<<<<<<<
 *     self._call_state = call_state
 * 
 */
  __Pyx_INCREF((PyObject *)__pyx_v_channel_state);
  __Pyx_GIVEREF((PyObject *)__pyx_v_channel_state);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_channel_state);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_channel_state);
  __pyx_v_self->_channel_state = __pyx_v_channel_state;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":370
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):
 *     self._channel_state = channel_state
 *     self._call_state = call_state             # <<<<<<<<<<<<<<
 * 
 *   def operate(self, operations, tag):
 */
  __Pyx_INCREF((PyObject *)__pyx_v_call_state);
  __Pyx_GIVEREF((PyObject *)__pyx_v_call_state);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_call_state);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_call_state);
  __pyx_v_self->_call_state = __pyx_v_call_state;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":368
 * cdef class SegregatedCall:
 * 
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):             # <<<<<<<<<<<<<<
 *     self._channel_state = channel_state
 *     self._call_state = call_state
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":372
 *     self._call_state = call_state
 * 
 *   def operate(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return _operate_from_segregated_call(
 *         self._channel_state, self._call_state, operations, tag)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_3operate(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_3operate = {"operate", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_3operate, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_3operate(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_operations = 0;
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("operate (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_operations,&__pyx_n_s_tag,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_operations)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 372, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 372, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("operate", 1, 2, 2, 1); __PYX_ERR(12, 372, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "operate") < 0)) __PYX_ERR(12, 372, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_operations = values[0];
    __pyx_v_tag = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("operate", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 372, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.operate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_2operate(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)__pyx_v_self), __pyx_v_operations, __pyx_v_tag);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_2operate(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("operate", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":373
 * 
 *   def operate(self, operations, tag):
 *     return _operate_from_segregated_call(             # <<<<<<<<<<<<<<
 *         self._channel_state, self._call_state, operations, tag)
 * 
 */
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":374
 *   def operate(self, operations, tag):
 *     return _operate_from_segregated_call(
 *         self._channel_state, self._call_state, operations, tag)             # <<<<<<<<<<<<<<
 * 
 *   def cancel(self, code, details):
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->_channel_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_call_state);
  __Pyx_INCREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":373
 * 
 *   def operate(self, operations, tag):
 *     return _operate_from_segregated_call(             # <<<<<<<<<<<<<<
 *         self._channel_state, self._call_state, operations, tag)
 * 
 */
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__operate_from_segregated_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_2), __pyx_v_operations, __pyx_v_tag); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":372
 *     self._call_state = call_state
 * 
 *   def operate(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return _operate_from_segregated_call(
 *         self._channel_state, self._call_state, operations, tag)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.operate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":376
 *         self._channel_state, self._call_state, operations, tag)
 * 
 *   def cancel(self, code, details):             # <<<<<<<<<<<<<<
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_5cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_5cancel = {"cancel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_5cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_5cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_code,&__pyx_n_s_details,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_code)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 376, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 376, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("cancel", 1, 2, 2, 1); __PYX_ERR(12, 376, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "cancel") < 0)) __PYX_ERR(12, 376, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_code = values[0];
    __pyx_v_details = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cancel", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 376, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_4cancel(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)__pyx_v_self), __pyx_v_code, __pyx_v_details);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_4cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  grpc_status_code __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cancel", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":377
 * 
 *   def cancel(self, code, details):
 *     _cancel(self._channel_state, self._call_state, code, details)             # <<<<<<<<<<<<<<
 * 
 *   def next_event(self):
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->_channel_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_call_state);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(__pyx_v_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 377, __pyx_L1_error)
  if (!(likely(PyString_CheckExact(__pyx_v_details))||((__pyx_v_details) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_v_details))) __PYX_ERR(12, 377, __pyx_L1_error)
  __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__cancel(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_2), __pyx_t_3, ((PyObject*)__pyx_v_details)); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":376
 *         self._channel_state, self._call_state, operations, tag)
 * 
 *   def cancel(self, code, details):             # <<<<<<<<<<<<<<
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":379
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 *   def next_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       _process_segregated_call_tag(
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_7next_event(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_7next_event = {"next_event", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_7next_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_7next_event(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next_event (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("next_event", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "next_event", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_6next_event(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":380
 * 
 *   def next_event(self):
 *     def on_success(tag):             # <<<<<<<<<<<<<<
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_1on_success = {"on_success", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_1on_success, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("on_success (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tag,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 380, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "on_success") < 0)) __PYX_ERR(12, 380, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_tag = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("on_success", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 380, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.next_event.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_on_success(__pyx_self, __pyx_v_tag);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_on_success(PyObject *__pyx_self, PyObject *__pyx_v_tag) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("on_success", 1);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":382
 *     def on_success(tag):
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)             # <<<<<<<<<<<<<<
 *     def on_failure():
 *       self._call_state.due.clear()
 */
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 382, __pyx_L1_error) }
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_channel_state);
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 382, __pyx_L1_error) }
  __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_call_state);
  __Pyx_INCREF(__pyx_t_2);
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 382, __pyx_L1_error) }
  if (!(likely(((__pyx_v_tag) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_tag, __pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag))))) __PYX_ERR(12, 382, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":381
 *   def next_event(self):
 *     def on_success(tag):
 *       _process_segregated_call_tag(             # <<<<<<<<<<<<<<
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 *     def on_failure():
 */
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__process_segregated_call_tag(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_2), __pyx_cur_scope->__pyx_v_self->_c_completion_queue, ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_tag)); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":380
 * 
 *   def next_event(self):
 *     def on_success(tag):             # <<<<<<<<<<<<<<
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.next_event.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":383
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 *     def on_failure():             # <<<<<<<<<<<<<<
 *       self._call_state.due.clear()
 *       self._call_state.delete_call()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_3on_failure(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_3on_failure = {"on_failure", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_3on_failure, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_3on_failure(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("on_failure (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_2on_failure(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_2on_failure(PyObject *__pyx_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("on_failure", 1);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":384
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 *     def on_failure():
 *       self._call_state.due.clear()             # <<<<<<<<<<<<<<
 *       self._call_state.delete_call()
 *       self._channel_state.segregated_call_states.remove(self._call_state)
 */
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 384, __pyx_L1_error) }
  if (unlikely(__pyx_cur_scope->__pyx_v_self->_call_state->due == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
    __PYX_ERR(12, 384, __pyx_L1_error)
  }
  __pyx_t_1 = PySet_Clear(__pyx_cur_scope->__pyx_v_self->_call_state->due); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 384, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":385
 *     def on_failure():
 *       self._call_state.due.clear()
 *       self._call_state.delete_call()             # <<<<<<<<<<<<<<
 *       self._channel_state.segregated_call_states.remove(self._call_state)
 *       _destroy_c_completion_queue(self._c_completion_queue)
 */
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 385, __pyx_L1_error) }
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *)__pyx_cur_scope->__pyx_v_self->_call_state->__pyx_vtab)->delete_call(__pyx_cur_scope->__pyx_v_self->_call_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 385, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":386
 *       self._call_state.due.clear()
 *       self._call_state.delete_call()
 *       self._channel_state.segregated_call_states.remove(self._call_state)             # <<<<<<<<<<<<<<
 *       _destroy_c_completion_queue(self._c_completion_queue)
 *     return _next_call_event(
 */
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 386, __pyx_L1_error) }
  if (unlikely(__pyx_cur_scope->__pyx_v_self->_channel_state->segregated_call_states == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
    __PYX_ERR(12, 386, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 386, __pyx_L1_error) }
  __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_call_state);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PySet_Remove(__pyx_cur_scope->__pyx_v_self->_channel_state->segregated_call_states, __pyx_t_2); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 386, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":387
 *       self._call_state.delete_call()
 *       self._channel_state.segregated_call_states.remove(self._call_state)
 *       _destroy_c_completion_queue(self._c_completion_queue)             # <<<<<<<<<<<<<<
 *     return _next_call_event(
 *         self._channel_state, self._c_completion_queue, on_success, on_failure, None)
 */
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 387, __pyx_L1_error) }
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__destroy_c_completion_queue(__pyx_cur_scope->__pyx_v_self->_c_completion_queue); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":383
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 *     def on_failure():             # <<<<<<<<<<<<<<
 *       self._call_state.due.clear()
 *       self._call_state.delete_call()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.next_event.on_failure", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":379
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 *   def next_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       _process_segregated_call_tag(
 */

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_6next_event(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *__pyx_cur_scope;
  PyObject *__pyx_v_on_success = 0;
  PyObject *__pyx_v_on_failure = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next_event", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(12, 379, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":380
 * 
 *   def next_event(self):
 *     def on_success(tag):             # <<<<<<<<<<<<<<
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_1on_success, 0, __pyx_n_s_next_event_locals_on_success, ((PyObject*)__pyx_cur_scope), __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__15)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_on_success = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":383
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 *     def on_failure():             # <<<<<<<<<<<<<<
 *       self._call_state.due.clear()
 *       self._call_state.delete_call()
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_3on_failure, 0, __pyx_n_s_next_event_locals_on_failure, ((PyObject*)__pyx_cur_scope), __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__16)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_on_failure = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":388
 *       self._channel_state.segregated_call_states.remove(self._call_state)
 *       _destroy_c_completion_queue(self._c_completion_queue)
 *     return _next_call_event(             # <<<<<<<<<<<<<<
 *         self._channel_state, self._c_completion_queue, on_success, on_failure, None)
 * 
 */
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":389
 *       _destroy_c_completion_queue(self._c_completion_queue)
 *     return _next_call_event(
 *         self._channel_state, self._c_completion_queue, on_success, on_failure, None)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_channel_state);
  __Pyx_INCREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":388
 *       self._channel_state.segregated_call_states.remove(self._call_state)
 *       _destroy_c_completion_queue(self._c_completion_queue)
 *     return _next_call_event(             # <<<<<<<<<<<<<<
 *         self._channel_state, self._c_completion_queue, on_success, on_failure, None)
 * 
 */
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__next_call_event(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), __pyx_cur_scope->__pyx_v_self->_c_completion_queue, __pyx_v_on_success, __pyx_v_on_failure, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":379
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 *   def next_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       _process_segregated_call_tag(
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.next_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_on_success);
  __Pyx_XDECREF(__pyx_v_on_failure);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_8__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":400
 *   cdef grpc_completion_queue *c_completion_queue
 * 
 *   def on_success(started_tags):             # <<<<<<<<<<<<<<
 *     state.segregated_call_states.add(call_state)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_segregated_call_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_segregated_call_1on_success = {"on_success", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_segregated_call_1on_success, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_segregated_call_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_started_tags = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("on_success (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_started_tags,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_started_tags)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 400, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "on_success") < 0)) __PYX_ERR(12, 400, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_started_tags = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("on_success", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 400, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._segregated_call.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_segregated_call_on_success(__pyx_self, __pyx_v_started_tags);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_segregated_call_on_success(PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_started_tags) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("on_success", 1);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":401
 * 
 *   def on_success(started_tags):
 *     state.segregated_call_states.add(call_state)             # <<<<<<<<<<<<<<
 * 
 *   with state.condition:
 */
  if (unlikely(!__pyx_cur_scope->__pyx_v_state)) { __Pyx_RaiseClosureNameError("state"); __PYX_ERR(12, 401, __pyx_L1_error) }
  if (unlikely(__pyx_cur_scope->__pyx_v_state->segregated_call_states == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
    __PYX_ERR(12, 401, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_v_call_state)) { __Pyx_RaiseClosureNameError("call_state"); __PYX_ERR(12, 401, __pyx_L1_error) }
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_v_call_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PySet_Add(__pyx_cur_scope->__pyx_v_state->segregated_call_states, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(12, 401, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":400
 *   cdef grpc_completion_queue *c_completion_queue
 * 
 *   def on_success(started_tags):             # <<<<<<<<<<<<<<
 *     state.segregated_call_states.add(call_state)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._segregated_call.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":392
 * 
 * 
 * cdef SegregatedCall _segregated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState state, int flags, method, host, object deadline,
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
 */

static struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_f_4grpc_7_cython_6cygrpc__segregated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state, int __pyx_v_flags, PyObject *__pyx_v_method, PyObject *__pyx_v_host, PyObject *__pyx_v_deadline, PyObject *__pyx_v_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials, PyObject *__pyx_v_operationses_and_user_tags, PyObject *__pyx_v_context, PyObject *__pyx_v_registered_call_handle) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_segregated_call = 0;
  grpc_completion_queue *__pyx_v_c_completion_queue;
  PyObject *__pyx_v_on_success = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_segregated_call", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(12, 392, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_state = __pyx_v_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_state);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":396
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
 *     object context, object registered_call_handle):
 *   cdef _CallState call_state = _CallState()             # <<<<<<<<<<<<<<
 *   cdef SegregatedCall segregated_call
 *   cdef grpc_completion_queue *c_completion_queue
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__CallState)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":400
 *   cdef grpc_completion_queue *c_completion_queue
 * 
 *   def on_success(started_tags):             # <<<<<<<<<<<<<<
 *     state.segregated_call_states.add(call_state)
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_segregated_call_1on_success, 0, __pyx_n_s_segregated_call_locals_on_succe, ((PyObject*)__pyx_cur_scope), __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__18)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_on_success = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":403
 *     state.segregated_call_states.add(call_state)
 * 
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     if state.open:
 *       c_completion_queue = (grpc_completion_queue_create_for_next(NULL))
 */
  /*with:*/ {
    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_cur_scope->__pyx_v_state->condition, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 403, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_cur_scope->__pyx_v_state->condition, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 403, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 403, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":404
 * 
 *   with state.condition:
 *     if state.open:             # <<<<<<<<<<<<<<
 *       c_completion_queue = (grpc_completion_queue_create_for_next(NULL))
 *     else:
 */
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_state->open); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 404, __pyx_L7_error)
          if (likely(__pyx_t_9)) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":405
 *   with state.condition:
 *     if state.open:
 *       c_completion_queue = (grpc_completion_queue_create_for_next(NULL))             # <<<<<<<<<<<<<<
 *     else:
 *       raise ValueError('Cannot invoke RPC on closed channel!')
 */
            __pyx_v_c_completion_queue = grpc_completion_queue_create_for_next(NULL);

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":404
 * 
 *   with state.condition:
 *     if state.open:             # <<<<<<<<<<<<<<
 *       c_completion_queue = (grpc_completion_queue_create_for_next(NULL))
 *     else:
 */
            goto __pyx_L13;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":407
 *       c_completion_queue = (grpc_completion_queue_create_for_next(NULL))
 *     else:
 *       raise ValueError('Cannot invoke RPC on closed channel!')             # <<<<<<<<<<<<<<
 * 
 *   try:
 */
          /*else*/ {
            __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 407, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_Raise(__pyx_t_1, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __PYX_ERR(12, 407, __pyx_L7_error)
          }
          __pyx_L13:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":403
 *     state.segregated_call_states.add(call_state)
 * 
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     if state.open:
 *       c_completion_queue = (grpc_completion_queue_create_for_next(NULL))
 */
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._segregated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(12, 403, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_10 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(12, 403, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_10, NULL);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(12, 403, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(12, 403, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_9);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_3, __pyx_t_4);
            __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; 
            __PYX_ERR(12, 403, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_2) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 403, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":409
 *       raise ValueError('Cannot invoke RPC on closed channel!')
 * 
 *   try:             # <<<<<<<<<<<<<<
 *     _call(
 *         state, call_state, c_completion_queue, on_success, flags, method, host,
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_8, &__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_7);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":411
 *   try:
 *     _call(
 *         state, call_state, c_completion_queue, on_success, flags, method, host,             # <<<<<<<<<<<<<<
 *         deadline, credentials, operationses_and_user_tags, metadata,
 *         context, registered_call_handle)
 */
      __pyx_t_4 = ((PyObject *)__pyx_cur_scope->__pyx_v_state);
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_call_state);
      __Pyx_INCREF(__pyx_t_3);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":410
 * 
 *   try:
 *     _call(             # <<<<<<<<<<<<<<
 *         state, call_state, c_completion_queue, on_success, flags, method, host,
 *         deadline, credentials, operationses_and_user_tags, metadata,
 */
      __pyx_f_4grpc_7_cython_6cygrpc__call(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_4), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_3), __pyx_v_c_completion_queue, __pyx_v_on_success, __pyx_v_flags, __pyx_v_method, __pyx_v_host, __pyx_v_deadline, __pyx_v_credentials, __pyx_v_operationses_and_user_tags, __pyx_v_metadata, __pyx_v_context, __pyx_v_registered_call_handle); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 410, __pyx_L18_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":409
 *       raise ValueError('Cannot invoke RPC on closed channel!')
 * 
 *   try:             # <<<<<<<<<<<<<<
 *     _call(
 *         state, call_state, c_completion_queue, on_success, flags, method, host,
 */
    }
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L23_try_end;
    __pyx_L18_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":414
 *         deadline, credentials, operationses_and_user_tags, metadata,
 *         context, registered_call_handle)
 *   except:             # <<<<<<<<<<<<<<
 *     _destroy_c_completion_queue(c_completion_queue)
 *     raise
 */
    /*except:*/ {
      __Pyx_AddTraceback("grpc._cython.cygrpc._segregated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_4, &__pyx_t_1) < 0) __PYX_ERR(12, 414, __pyx_L20_except_error)
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_1);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":415
 *         context, registered_call_handle)
 *   except:
 *     _destroy_c_completion_queue(c_completion_queue)             # <<<<<<<<<<<<<<
 *     raise
 * 
 */
      __pyx_t_10 = __pyx_f_4grpc_7_cython_6cygrpc__destroy_c_completion_queue(__pyx_v_c_completion_queue); if (unlikely(!__pyx_t_10)) __PYX_ERR(12, 415, __pyx_L20_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":416
 *   except:
 *     _destroy_c_completion_queue(c_completion_queue)
 *     raise             # <<<<<<<<<<<<<<
 * 
 *   segregated_call = SegregatedCall(state, call_state)
 */
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_1);
      __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_4, __pyx_t_1);
      __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_1 = 0; 
      __PYX_ERR(12, 416, __pyx_L20_except_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":409
 *       raise ValueError('Cannot invoke RPC on closed channel!')
 * 
 *   try:             # <<<<<<<<<<<<<<
 *     _call(
 *         state, call_state, c_completion_queue, on_success, flags, method, host,
 */
    __pyx_L20_except_error:;
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_8, __pyx_t_7);
    goto __pyx_L1_error;
    __pyx_L23_try_end:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":418
 *     raise
 * 
 *   segregated_call = SegregatedCall(state, call_state)             # <<<<<<<<<<<<<<
 *   segregated_call._c_completion_queue = c_completion_queue
 *   return segregated_call
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_state);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_state))) __PYX_ERR(12, 418, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_call_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_call_state);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_cur_scope->__pyx_v_call_state))) __PYX_ERR(12, 418, __pyx_L1_error);
  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall), __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_segregated_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":419
 * 
 *   segregated_call = SegregatedCall(state, call_state)
 *   segregated_call._c_completion_queue = c_completion_queue             # <<<<<<<<<<<<<<
 *   return segregated_call
 * 
 */
  __pyx_v_segregated_call->_c_completion_queue = __pyx_v_c_completion_queue;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":420
 *   segregated_call = SegregatedCall(state, call_state)
 *   segregated_call._c_completion_queue = c_completion_queue
 *   return segregated_call             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_segregated_call);
  __pyx_r = __pyx_v_segregated_call;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":392
 * 
 * 
 * cdef SegregatedCall _segregated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState state, int flags, method, host, object deadline,
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("grpc._cython.cygrpc._segregated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_segregated_call);
  __Pyx_XDECREF(__pyx_v_on_success);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":423
 * 
 * 
 * cdef object _watch_connectivity_state(             # <<<<<<<<<<<<<<
 *     _ChannelState state, grpc_connectivity_state last_observed_state,
 *     object deadline):
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__watch_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state, grpc_connectivity_state __pyx_v_last_observed_state, PyObject *__pyx_v_deadline) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_tag = 0;
  PyObject *__pyx_v_completed_tag = NULL;
  PyObject *__pyx_v_event = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  gpr_timespec __pyx_t_10;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  PyObject *(*__pyx_t_15)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_watch_connectivity_state", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":426
 *     _ChannelState state, grpc_connectivity_state last_observed_state,
 *     object deadline):
 *   cdef _ConnectivityTag tag = _ConnectivityTag(object())             # <<<<<<<<<<<<<<
 *   with state.condition:
 *     if state.open:
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_object); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":427
 *     object deadline):
 *   cdef _ConnectivityTag tag = _ConnectivityTag(object())
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     if state.open:
 *       cpython.Py_INCREF(tag)
 */
  /*with:*/ {
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_state->condition, __pyx_n_s_exit); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_state->condition, __pyx_n_s_enter); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 427, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 427, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":428
 *   cdef _ConnectivityTag tag = _ConnectivityTag(object())
 *   with state.condition:
 *     if state.open:             # <<<<<<<<<<<<<<
 *       cpython.Py_INCREF(tag)
 *       grpc_channel_watch_connectivity_state(
 */
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_state->open); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 428, __pyx_L7_error)
          if (likely(__pyx_t_9)) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":429
 *   with state.condition:
 *     if state.open:
 *       cpython.Py_INCREF(tag)             # <<<<<<<<<<<<<<
 *       grpc_channel_watch_connectivity_state(
 *           state.c_channel, last_observed_state, _timespec_from_time(deadline),
 */
            Py_INCREF(((PyObject *)__pyx_v_tag));

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":431
 *       cpython.Py_INCREF(tag)
 *       grpc_channel_watch_connectivity_state(
 *           state.c_channel, last_observed_state, _timespec_from_time(deadline),             # <<<<<<<<<<<<<<
 *           state.c_connectivity_completion_queue, <cpython.PyObject *>tag)
 *       state.connectivity_due.add(tag)
 */
            __pyx_t_10 = __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(__pyx_v_deadline); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 431, __pyx_L7_error)

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":430
 *     if state.open:
 *       cpython.Py_INCREF(tag)
 *       grpc_channel_watch_connectivity_state(             # <<<<<<<<<<<<<<
 *           state.c_channel, last_observed_state, _timespec_from_time(deadline),
 *           state.c_connectivity_completion_queue, <cpython.PyObject *>tag)
 */
            grpc_channel_watch_connectivity_state(__pyx_v_state->c_channel, __pyx_v_last_observed_state, __pyx_t_10, __pyx_v_state->c_connectivity_completion_queue, ((PyObject *)__pyx_v_tag));

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":433
 *           state.c_channel, last_observed_state, _timespec_from_time(deadline),
 *           state.c_connectivity_completion_queue, <cpython.PyObject *>tag)
 *       state.connectivity_due.add(tag)             # <<<<<<<<<<<<<<
 *     else:
 *       raise ValueError('Cannot monitor channel state: %s' % state.closed_reason)
 */
            if (unlikely(__pyx_v_state->connectivity_due == Py_None)) {
              PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
              __PYX_ERR(12, 433, __pyx_L7_error)
            }
            __pyx_t_11 = PySet_Add(__pyx_v_state->connectivity_due, ((PyObject *)__pyx_v_tag)); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(12, 433, __pyx_L7_error)

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":428
 *   cdef _ConnectivityTag tag = _ConnectivityTag(object())
 *   with state.condition:
 *     if state.open:             # <<<<<<<<<<<<<<
 *       cpython.Py_INCREF(tag)
 *       grpc_channel_watch_connectivity_state(
 */
            goto __pyx_L13;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":435
 *       state.connectivity_due.add(tag)
 *     else:
 *       raise ValueError('Cannot monitor channel state: %s' % state.closed_reason)             # <<<<<<<<<<<<<<
 *   completed_tag, event = _latent_event(
 *       state.c_connectivity_completion_queue, None)
 */
          /*else*/ {
            __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Cannot_monitor_channel_state_s, __pyx_v_state->closed_reason); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 435, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 435, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_Raise(__pyx_t_1, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __PYX_ERR(12, 435, __pyx_L7_error)
          }
          __pyx_L13:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":427
 *     object deadline):
 *   cdef _ConnectivityTag tag = _ConnectivityTag(object())
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     if state.open:
 *       cpython.Py_INCREF(tag)
 */
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_4) < 0) __PYX_ERR(12, 427, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_12 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(12, 427, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_12, NULL);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(12, 427, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(12, 427, __pyx_L9_except_error)
          __pyx_t_14 = (!__pyx_t_9);
          if (unlikely(__pyx_t_14)) {
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_2, __pyx_t_4);
            __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_4 = 0; 
            __PYX_ERR(12, 427, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_3) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 427, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":436
 *     else:
 *       raise ValueError('Cannot monitor channel state: %s' % state.closed_reason)
 *   completed_tag, event = _latent_event(             # <<<<<<<<<<<<<<
 *       state.c_connectivity_completion_queue, None)
 *   with state.condition:
 */
  __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__latent_event(__pyx_v_state->c_connectivity_completion_queue, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
    PyObject* sequence = __pyx_t_4;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(12, 436, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_1);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(12, 436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_15 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_12);
    index = 0; __pyx_t_2 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_2)) goto __pyx_L18_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_1 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_1)) goto __pyx_L18_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(12, 436, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L19_unpacking_done;
    __pyx_L18_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(12, 436, __pyx_L1_error)
    __pyx_L19_unpacking_done:;
  }
  __pyx_v_completed_tag = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_event = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":438
 *   completed_tag, event = _latent_event(
 *       state.c_connectivity_completion_queue, None)
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     state.connectivity_due.remove(completed_tag)
 *     state.condition.notify_all()
 */
  /*with:*/ {
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_state->condition, __pyx_n_s_exit); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_state->condition, __pyx_n_s_enter); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 438, __pyx_L20_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 438, __pyx_L20_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_6);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":439
 *       state.c_connectivity_completion_queue, None)
 *   with state.condition:
 *     state.connectivity_due.remove(completed_tag)             # <<<<<<<<<<<<<<
 *     state.condition.notify_all()
 *   return event
 */
          if (unlikely(__pyx_v_state->connectivity_due == Py_None)) {
            PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
            __PYX_ERR(12, 439, __pyx_L24_error)
          }
          __pyx_t_11 = __Pyx_PySet_Remove(__pyx_v_state->connectivity_due, __pyx_v_completed_tag); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(12, 439, __pyx_L24_error)

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":440
 *   with state.condition:
 *     state.connectivity_due.remove(completed_tag)
 *     state.condition.notify_all()             # <<<<<<<<<<<<<<
 *   return event
 * 
 */
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_state->condition, __pyx_n_s_notify_all); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 440, __pyx_L24_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_2 = NULL;
          __pyx_t_5 = 0;
          #if CYTHON_UNPACK_METHODS
          if (likely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
              __pyx_t_5 = 1;
            }
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
            __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 440, __pyx_L24_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":438
 *   completed_tag, event = _latent_event(
 *       state.c_connectivity_completion_queue, None)
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     state.connectivity_due.remove(completed_tag)
 *     state.condition.notify_all()
 */
        }
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L29_try_end;
        __pyx_L24_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(12, 438, __pyx_L26_except_error)
          __Pyx_XGOTREF(__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_12 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(12, 438, __pyx_L26_except_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_12, NULL);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(12, 438, __pyx_L26_except_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_14 < 0) __PYX_ERR(12, 438, __pyx_L26_except_error)
          __pyx_t_9 = (!__pyx_t_14);
          if (unlikely(__pyx_t_9)) {
            __Pyx_GIVEREF(__pyx_t_4);
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_XGIVEREF(__pyx_t_2);
            __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_1, __pyx_t_2);
            __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; 
            __PYX_ERR(12, 438, __pyx_L26_except_error)
          }
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          goto __pyx_L25_exception_handled;
        }
        __pyx_L26_except_error:;
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6);
        goto __pyx_L1_error;
        __pyx_L25_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6);
        __pyx_L29_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_3) {
          __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 438, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        goto __pyx_L23;
      }
      __pyx_L23:;
    }
    goto __pyx_L33;
    __pyx_L20_error:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L1_error;
    __pyx_L33:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":441
 *     state.connectivity_due.remove(completed_tag)
 *     state.condition.notify_all()
 *   return event             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_event);
  __pyx_r = __pyx_v_event;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":423
 * 
 * 
 * cdef object _watch_connectivity_state(             # <<<<<<<<<<<<<<
 *     _ChannelState state, grpc_connectivity_state last_observed_state,
 *     object deadline):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("grpc._cython.cygrpc._watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_tag);
  __Pyx_XDECREF(__pyx_v_completed_tag);
  __Pyx_XDECREF(__pyx_v_event);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":444
 * 
 * 
 * cdef _close(Channel channel, grpc_status_code code, object details,             # <<<<<<<<<<<<<<
 *     drain_calls):
 *   cdef _ChannelState state = channel._state
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__close(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_channel, grpc_status_code __pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_drain_calls) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state = 0;
  PyObject *__pyx_v_encoded_details = NULL;
  PyObject *__pyx_v_event = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  Py_ssize_t __pyx_t_11;
  int __pyx_t_12;
  int __pyx_t_13;
  char const *__pyx_t_14;
  int __pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_close", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":446
 * cdef _close(Channel channel, grpc_status_code code, object details,
 *     drain_calls):
 *   cdef _ChannelState state = channel._state             # <<<<<<<<<<<<<<
 *   cdef _CallState call_state
 *   encoded_details = _encode(details)
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_channel->_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":448
 *   cdef _ChannelState state = channel._state
 *   cdef _CallState call_state
 *   encoded_details = _encode(details)             # <<<<<<<<<<<<<<
 *   with state.condition:
 *     if state.open:
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__encode(__pyx_v_details); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_encoded_details = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":449
 *   cdef _CallState call_state
 *   encoded_details = _encode(details)
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     if state.open:
 *       state.open = False
 */
  /*with:*/ {
    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_v_state->condition, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 449, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_state->condition, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 449, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 449, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":450
 *   encoded_details = _encode(details)
 *   with state.condition:
 *     if state.open:             # <<<<<<<<<<<<<<
 *       state.open = False
 *       state.closed_reason = details
 */
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_state->open); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 450, __pyx_L7_error)
          if (__pyx_t_9) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":451
 *   with state.condition:
 *     if state.open:
 *       state.open = False             # <<<<<<<<<<<<<<
 *       state.closed_reason = details
 *       for call_state in set(state.integrated_call_states.values()):
 */
            __Pyx_INCREF(Py_False);
            __Pyx_GIVEREF(Py_False);
            __Pyx_GOTREF(__pyx_v_state->open);
            __Pyx_DECREF(__pyx_v_state->open);
            __pyx_v_state->open = Py_False;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":452
 *     if state.open:
 *       state.open = False
 *       state.closed_reason = details             # <<<<<<<<<<<<<<
 *       for call_state in set(state.integrated_call_states.values()):
 *         grpc_call_cancel_with_status(
 */
            __Pyx_INCREF(__pyx_v_details);
            __Pyx_GIVEREF(__pyx_v_details);
            __Pyx_GOTREF(__pyx_v_state->closed_reason);
            __Pyx_DECREF(__pyx_v_state->closed_reason);
            __pyx_v_state->closed_reason = __pyx_v_details;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":453
 *       state.open = False
 *       state.closed_reason = details
 *       for call_state in set(state.integrated_call_states.values()):             # <<<<<<<<<<<<<<
 *         grpc_call_cancel_with_status(
 *             call_state.c_call, code, encoded_details, NULL)
 */
            __pyx_t_10 = 0;
            if (unlikely(__pyx_v_state->integrated_call_states == Py_None)) {
              PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
              __PYX_ERR(12, 453, __pyx_L7_error)
            }
            __pyx_t_3 = __Pyx_PyDict_Values(__pyx_v_state->integrated_call_states); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 453, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_4 = PySet_New(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 453, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_3 = __Pyx_set_iterator(__pyx_t_4, 1, (&__pyx_t_11), (&__pyx_t_12)); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 453, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_XDECREF(__pyx_t_1);
            __pyx_t_1 = __pyx_t_3;
            __pyx_t_3 = 0;
            while (1) {
              __pyx_t_13 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_11, &__pyx_t_10, &__pyx_t_3, __pyx_t_12);
              if (unlikely(__pyx_t_13 == 0)) break;
              if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(12, 453, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4grpc_7_cython_6cygrpc__CallState))))) __PYX_ERR(12, 453, __pyx_L7_error)
              __Pyx_XDECREF_SET(__pyx_v_call_state, ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_3));
              __pyx_t_3 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":455
 *       for call_state in set(state.integrated_call_states.values()):
 *         grpc_call_cancel_with_status(
 *             call_state.c_call, code, encoded_details, NULL)             # <<<<<<<<<<<<<<
 *       for call_state in state.segregated_call_states:
 *         grpc_call_cancel_with_status(
 */
              if (unlikely(__pyx_v_encoded_details == Py_None)) {
                PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
                __PYX_ERR(12, 455, __pyx_L7_error)
              }
              __pyx_t_14 = __Pyx_PyBytes_AsString(__pyx_v_encoded_details); if (unlikely((!__pyx_t_14) && PyErr_Occurred())) __PYX_ERR(12, 455, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":454
 *       state.closed_reason = details
 *       for call_state in set(state.integrated_call_states.values()):
 *         grpc_call_cancel_with_status(             # <<<<<<<<<<<<<<
 *             call_state.c_call, code, encoded_details, NULL)
 *       for call_state in state.segregated_call_states:
 */
              (void)(grpc_call_cancel_with_status(__pyx_v_call_state->c_call, __pyx_v_code, __pyx_t_14, NULL));
            }
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":456
 *         grpc_call_cancel_with_status(
 *             call_state.c_call, code, encoded_details, NULL)
 *       for call_state in state.segregated_call_states:             # <<<<<<<<<<<<<<
 *         grpc_call_cancel_with_status(
 *             call_state.c_call, code, encoded_details, NULL)
 */
            __pyx_t_11 = 0;
            __pyx_t_3 = __Pyx_set_iterator(__pyx_v_state->segregated_call_states, 1, (&__pyx_t_10), (&__pyx_t_12)); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 456, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_XDECREF(__pyx_t_1);
            __pyx_t_1 = __pyx_t_3;
            __pyx_t_3 = 0;
            while (1) {
              __pyx_t_13 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_10, &__pyx_t_11, &__pyx_t_3, __pyx_t_12);
              if (unlikely(__pyx_t_13 == 0)) break;
              if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(12, 456, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4grpc_7_cython_6cygrpc__CallState))))) __PYX_ERR(12, 456, __pyx_L7_error)
              __Pyx_XDECREF_SET(__pyx_v_call_state, ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_3));
              __pyx_t_3 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":458
 *       for call_state in state.segregated_call_states:
 *         grpc_call_cancel_with_status(
 *             call_state.c_call, code, encoded_details, NULL)             # <<<<<<<<<<<<<<
 *       # TODO(https://github.com/grpc/grpc/issues/3064): Cancel connectivity
 *       # watching.
 */
              if (unlikely(__pyx_v_encoded_details == Py_None)) {
                PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
                __PYX_ERR(12, 458, __pyx_L7_error)
              }
              __pyx_t_14 = __Pyx_PyBytes_AsString(__pyx_v_encoded_details); if (unlikely((!__pyx_t_14) && PyErr_Occurred())) __PYX_ERR(12, 458, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":457
 *             call_state.c_call, code, encoded_details, NULL)
 *       for call_state in state.segregated_call_states:
 *         grpc_call_cancel_with_status(             # <<<<<<<<<<<<<<
 *             call_state.c_call, code, encoded_details, NULL)
 *       # TODO(https://github.com/grpc/grpc/issues/3064): Cancel connectivity
 */
              (void)(grpc_call_cancel_with_status(__pyx_v_call_state->c_call, __pyx_v_code, __pyx_t_14, NULL));
            }
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":462
 *       # watching.
 * 
 *       if drain_calls:             # <<<<<<<<<<<<<<
 *         while not _calls_drained(state):
 *           event = channel.next_call_event()
 */
            __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_drain_calls); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 462, __pyx_L7_error)
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":463
 * 
 *       if drain_calls:
 *         while not _calls_drained(state):             # <<<<<<<<<<<<<<
 *           event = channel.next_call_event()
 *           if event.completion_type == CompletionType.queue_timeout:
 */
              while (1) {
                __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__calls_drained(__pyx_v_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 463, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_1);
                __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 463, __pyx_L7_error)
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                __pyx_t_15 = (!__pyx_t_9);
                if (!__pyx_t_15) break;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":464
 *       if drain_calls:
 *         while not _calls_drained(state):
 *           event = channel.next_call_event()             # <<<<<<<<<<<<<<
 *           if event.completion_type == CompletionType.queue_timeout:
 *               continue
 */
                __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_channel), __pyx_n_s_next_call_event); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 464, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_3);
                __pyx_t_4 = NULL;
                __pyx_t_5 = 0;
                #if CYTHON_UNPACK_METHODS
                if (likely(PyMethod_Check(__pyx_t_3))) {
                  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
                  if (likely(__pyx_t_4)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
                    __Pyx_INCREF(__pyx_t_4);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_3, function);
                    __pyx_t_5 = 1;
                  }
                }
                #endif
                {
                  PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
                  __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
                  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                  if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 464, __pyx_L7_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                }
                __Pyx_XDECREF_SET(__pyx_v_event, __pyx_t_1);
                __pyx_t_1 = 0;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":465
 *         while not _calls_drained(state):
 *           event = channel.next_call_event()
 *           if event.completion_type == CompletionType.queue_timeout:             # <<<<<<<<<<<<<<
 *               continue
 *           event.tag(event)
 */
                __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event, __pyx_n_s_completion_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 465, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_1);
                __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CompletionType); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 465, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_3);
                __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_queue_timeout); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 465, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 465, __pyx_L7_error)
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_15 < 0))) __PYX_ERR(12, 465, __pyx_L7_error)
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                if (__pyx_t_15) {

                  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":466
 *           event = channel.next_call_event()
 *           if event.completion_type == CompletionType.queue_timeout:
 *               continue             # <<<<<<<<<<<<<<
 *           event.tag(event)
 *       else:
 */
                  goto __pyx_L19_continue;

                  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":465
 *         while not _calls_drained(state):
 *           event = channel.next_call_event()
 *           if event.completion_type == CompletionType.queue_timeout:             # <<<<<<<<<<<<<<
 *               continue
 *           event.tag(event)
 */
                }

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":467
 *           if event.completion_type == CompletionType.queue_timeout:
 *               continue
 *           event.tag(event)             # <<<<<<<<<<<<<<
 *       else:
 *         while state.integrated_call_states:
 */
                __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_event, __pyx_n_s_tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 467, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_4);
                __pyx_t_1 = NULL;
                __pyx_t_5 = 0;
                #if CYTHON_UNPACK_METHODS
                if (likely(PyMethod_Check(__pyx_t_4))) {
                  __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
                  if (likely(__pyx_t_1)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
                    __Pyx_INCREF(__pyx_t_1);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_4, function);
                    __pyx_t_5 = 1;
                  }
                }
                #endif
                {
                  PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_event};
                  __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
                  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                  if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 467, __pyx_L7_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                }
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                __pyx_L19_continue:;
              }

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":462
 *       # watching.
 * 
 *       if drain_calls:             # <<<<<<<<<<<<<<
 *         while not _calls_drained(state):
 *           event = channel.next_call_event()
 */
              goto __pyx_L18;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":469
 *           event.tag(event)
 *       else:
 *         while state.integrated_call_states:             # <<<<<<<<<<<<<<
 *           state.condition.wait()
 *         while state.connectivity_due:
 */
            /*else*/ {
              while (1) {
                __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_v_state->integrated_call_states); if (unlikely((__pyx_t_15 < 0))) __PYX_ERR(12, 469, __pyx_L7_error)
                if (!__pyx_t_15) break;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":470
 *       else:
 *         while state.integrated_call_states:
 *           state.condition.wait()             # <<<<<<<<<<<<<<
 *         while state.connectivity_due:
 *           state.condition.wait()
 */
                __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_state->condition, __pyx_n_s_wait); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 470, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_4);
                __pyx_t_1 = NULL;
                __pyx_t_5 = 0;
                #if CYTHON_UNPACK_METHODS
                if (likely(PyMethod_Check(__pyx_t_4))) {
                  __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
                  if (likely(__pyx_t_1)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
                    __Pyx_INCREF(__pyx_t_1);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_4, function);
                    __pyx_t_5 = 1;
                  }
                }
                #endif
                {
                  PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
                  __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
                  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                  if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 470, __pyx_L7_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                }
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              }

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":471
 *         while state.integrated_call_states:
 *           state.condition.wait()
 *         while state.connectivity_due:             # <<<<<<<<<<<<<<
 *           state.condition.wait()
 * 
 */
              while (1) {
                __pyx_t_15 = (__pyx_v_state->connectivity_due != Py_None)&&(PySet_GET_SIZE(__pyx_v_state->connectivity_due) != 0);
                if (!__pyx_t_15) break;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":472
 *           state.condition.wait()
 *         while state.connectivity_due:
 *           state.condition.wait()             # <<<<<<<<<<<<<<
 * 
 *       _destroy_c_completion_queue(state.c_call_completion_queue)
 */
                __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_state->condition, __pyx_n_s_wait); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 472, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_4);
                __pyx_t_1 = NULL;
                __pyx_t_5 = 0;
                #if CYTHON_UNPACK_METHODS
                if (likely(PyMethod_Check(__pyx_t_4))) {
                  __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
                  if (likely(__pyx_t_1)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
                    __Pyx_INCREF(__pyx_t_1);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_4, function);
                    __pyx_t_5 = 1;
                  }
                }
                #endif
                {
                  PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
                  __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
                  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                  if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 472, __pyx_L7_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                }
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              }
            }
            __pyx_L18:;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":474
 *           state.condition.wait()
 * 
 *       _destroy_c_completion_queue(state.c_call_completion_queue)             # <<<<<<<<<<<<<<
 *       _destroy_c_completion_queue(state.c_connectivity_completion_queue)
 *       grpc_channel_destroy(state.c_channel)
 */
            __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__destroy_c_completion_queue(__pyx_v_state->c_call_completion_queue); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 474, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":475
 * 
 *       _destroy_c_completion_queue(state.c_call_completion_queue)
 *       _destroy_c_completion_queue(state.c_connectivity_completion_queue)             # <<<<<<<<<<<<<<
 *       grpc_channel_destroy(state.c_channel)
 *       state.c_channel = NULL
 */
            __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__destroy_c_completion_queue(__pyx_v_state->c_connectivity_completion_queue); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 475, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":476
 *       _destroy_c_completion_queue(state.c_call_completion_queue)
 *       _destroy_c_completion_queue(state.c_connectivity_completion_queue)
 *       grpc_channel_destroy(state.c_channel)             # <<<<<<<<<<<<<<
 *       state.c_channel = NULL
 *       grpc_shutdown()
 */
            grpc_channel_destroy(__pyx_v_state->c_channel);

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":477
 *       _destroy_c_completion_queue(state.c_connectivity_completion_queue)
 *       grpc_channel_destroy(state.c_channel)
 *       state.c_channel = NULL             # <<<<<<<<<<<<<<
 *       grpc_shutdown()
 *       state.condition.notify_all()
 */
            __pyx_v_state->c_channel = NULL;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":478
 *       grpc_channel_destroy(state.c_channel)
 *       state.c_channel = NULL
 *       grpc_shutdown()             # <<<<<<<<<<<<<<
 *       state.condition.notify_all()
 *     else:
 */
            grpc_shutdown();

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":479
 *       state.c_channel = NULL
 *       grpc_shutdown()
 *       state.condition.notify_all()             # <<<<<<<<<<<<<<
 *     else:
 *       # Another call to close already completed in the past or is currently
 */
            __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_state->condition, __pyx_n_s_notify_all); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 479, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_1 = NULL;
            __pyx_t_5 = 0;
            #if CYTHON_UNPACK_METHODS
            if (likely(PyMethod_Check(__pyx_t_4))) {
              __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
              if (likely(__pyx_t_1)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
                __Pyx_INCREF(__pyx_t_1);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_4, function);
                __pyx_t_5 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
              __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 479, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":450
 *   encoded_details = _encode(details)
 *   with state.condition:
 *     if state.open:             # <<<<<<<<<<<<<<
 *       state.open = False
 *       state.closed_reason = details
 */
            goto __pyx_L13;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":483
 *       # Another call to close already completed in the past or is currently
 *       # being executed in another thread.
 *       while state.c_channel != NULL:             # <<<<<<<<<<<<<<
 *         state.condition.wait()
 * 
 */
          /*else*/ {
            while (1) {
              __pyx_t_15 = (__pyx_v_state->c_channel != NULL);
              if (!__pyx_t_15) break;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":484
 *       # being executed in another thread.
 *       while state.c_channel != NULL:
 *         state.condition.wait()             # <<<<<<<<<<<<<<
 * 
 * 
 */
              __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_state->condition, __pyx_n_s_wait); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 484, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_4);
              __pyx_t_1 = NULL;
              __pyx_t_5 = 0;
              #if CYTHON_UNPACK_METHODS
              if (likely(PyMethod_Check(__pyx_t_4))) {
                __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
                if (likely(__pyx_t_1)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
                  __Pyx_INCREF(__pyx_t_1);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_4, function);
                  __pyx_t_5 = 1;
                }
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
                __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
                __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 484, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_3);
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              }
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            }
          }
          __pyx_L13:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":449
 *   cdef _CallState call_state
 *   encoded_details = _encode(details)
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     if state.open:
 *       state.open = False
 */
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._close", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_4, &__pyx_t_1) < 0) __PYX_ERR(12, 449, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_16 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_16)) __PYX_ERR(12, 449, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_16, NULL);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          if (unlikely(!__pyx_t_17)) __PYX_ERR(12, 449, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          if (__pyx_t_15 < 0) __PYX_ERR(12, 449, __pyx_L9_except_error)
          __pyx_t_9 = (!__pyx_t_15);
          if (unlikely(__pyx_t_9)) {
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_4);
            __Pyx_XGIVEREF(__pyx_t_1);
            __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_4, __pyx_t_1);
            __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_1 = 0; 
            __PYX_ERR(12, 449, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_2) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 449, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L31;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L1_error;
    __pyx_L31:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":444
 * 
 * 
 * cdef _close(Channel channel, grpc_status_code code, object details,             # <<<<<<<<<<<<<<
 *     drain_calls):
 *   cdef _ChannelState state = channel._state
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_AddTraceback("grpc._cython.cygrpc._close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_state);
  __Pyx_XDECREF((PyObject *)__pyx_v_call_state);
  __Pyx_XDECREF(__pyx_v_encoded_details);
  __Pyx_XDECREF(__pyx_v_event);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":487
 * 
 * 
 * cdef _calls_drained(_ChannelState state):             # <<<<<<<<<<<<<<
 *   return not (state.integrated_call_states or state.segregated_call_states or
 *               state.connectivity_due)
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__calls_drained(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_calls_drained", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":488
 * 
 * cdef _calls_drained(_ChannelState state):
 *   return not (state.integrated_call_states or state.segregated_call_states or             # <<<<<<<<<<<<<<
 *               state.connectivity_due)
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_state->integrated_call_states); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(12, 488, __pyx_L1_error)
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_2 = (__pyx_v_state->segregated_call_states != Py_None)&&(PySet_GET_SIZE(__pyx_v_state->segregated_call_states) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":489
 * cdef _calls_drained(_ChannelState state):
 *   return not (state.integrated_call_states or state.segregated_call_states or
 *               state.connectivity_due)             # <<<<<<<<<<<<<<
 * 
 * cdef class Channel:
 */
  __pyx_t_2 = (__pyx_v_state->connectivity_due != Py_None)&&(PySet_GET_SIZE(__pyx_v_state->connectivity_due) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L3_bool_binop_done:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":488
 * 
 * cdef _calls_drained(_ChannelState state):
 *   return not (state.integrated_call_states or state.segregated_call_states or             # <<<<<<<<<<<<<<
 *               state.connectivity_due)
 * 
 */
  __pyx_t_3 = __Pyx_PyBool_FromLong((!__pyx_t_1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":487
 * 
 * 
 * cdef _calls_drained(_ChannelState state):             # <<<<<<<<<<<<<<
 *   return not (state.integrated_call_states or state.segregated_call_states or
 *               state.connectivity_due)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._calls_drained", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":493
 * cdef class Channel:
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, bytes target, object arguments,
 *       ChannelCredentials channel_credentials):
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_7Channel_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_7Channel_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_target = 0;
  PyObject *__pyx_v_arguments = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_channel_credentials = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_target,&__pyx_n_s_arguments,&__pyx_n_s_channel_credentials,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_target)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 493, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_arguments)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 493, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 1); __PYX_ERR(12, 493, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_channel_credentials)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 493, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 2); __PYX_ERR(12, 493, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(12, 493, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
    }
    __pyx_v_target = ((PyObject*)values[0]);
    __pyx_v_arguments = values[1];
    __pyx_v_channel_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(12, 493, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_target), (&PyBytes_Type), 1, "target", 1))) __PYX_ERR(12, 494, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_channel_credentials), __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, 1, "channel_credentials", 0))) __PYX_ERR(12, 495, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_target, __pyx_v_arguments, __pyx_v_channel_credentials);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_7Channel___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_arguments, struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_channel_credentials) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_channel_args = 0;
  grpc_channel_credentials *__pyx_v_c_channel_credentials;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  grpc_channel_credentials *__pyx_t_6;
  grpc_channel_credentials *__pyx_t_7;
  char *__pyx_t_8;
  grpc_channel_args *__pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_INCREF(__pyx_v_arguments);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":496
 *       self, bytes target, object arguments,
 *       ChannelCredentials channel_credentials):
 *     arguments = () if arguments is None else tuple(arguments)             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self._state = _ChannelState(target)
 */
  __pyx_t_2 = (__pyx_v_arguments == Py_None);
  if (__pyx_t_2) {
    __Pyx_INCREF(__pyx_empty_tuple);
    __pyx_t_1 = __pyx_empty_tuple;
  } else {
    __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_v_arguments); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 496, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  }
  __Pyx_DECREF_SET(__pyx_v_arguments, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":497
 *       ChannelCredentials channel_credentials):
 *     arguments = () if arguments is None else tuple(arguments)
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     self._state = _ChannelState(target)
 *     self._state.c_call_completion_queue = (
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 497, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":498
 *     arguments = () if arguments is None else tuple(arguments)
 *     fork_handlers_and_grpc_init()
 *     self._state = _ChannelState(target)             # <<<<<<<<<<<<<<
 *     self._state.c_call_completion_queue = (
 *         grpc_completion_queue_create_for_next(NULL))
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState), __pyx_v_target); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 498, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_state);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_state);
  __pyx_v_self->_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":499
 *     fork_handlers_and_grpc_init()
 *     self._state = _ChannelState(target)
 *     self._state.c_call_completion_queue = (             # <<<<<<<<<<<<<<
 *         grpc_completion_queue_create_for_next(NULL))
 *     self._state.c_connectivity_completion_queue = (
 */
  __pyx_v_self->_state->c_call_completion_queue = grpc_completion_queue_create_for_next(NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":501
 *     self._state.c_call_completion_queue = (
 *         grpc_completion_queue_create_for_next(NULL))
 *     self._state.c_connectivity_completion_queue = (             # <<<<<<<<<<<<<<
 *         grpc_completion_queue_create_for_next(NULL))
 *     self._arguments = arguments
 */
  __pyx_v_self->_state->c_connectivity_completion_queue = grpc_completion_queue_create_for_next(NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":503
 *     self._state.c_connectivity_completion_queue = (
 *         grpc_completion_queue_create_for_next(NULL))
 *     self._arguments = arguments             # <<<<<<<<<<<<<<
 *     cdef _ChannelArgs channel_args = _ChannelArgs(arguments)
 *     c_channel_credentials = (
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v_arguments))||((__pyx_v_arguments) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v_arguments))) __PYX_ERR(12, 503, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_arguments;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_arguments);
  __Pyx_DECREF(__pyx_v_self->_arguments);
  __pyx_v_self->_arguments = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":504
 *         grpc_completion_queue_create_for_next(NULL))
 *     self._arguments = arguments
 *     cdef _ChannelArgs channel_args = _ChannelArgs(arguments)             # <<<<<<<<<<<<<<
 *     c_channel_credentials = (
 *         channel_credentials.c() if channel_credentials is not None
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs), __pyx_v_arguments); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_channel_args = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":506
 *     cdef _ChannelArgs channel_args = _ChannelArgs(arguments)
 *     c_channel_credentials = (
 *         channel_credentials.c() if channel_credentials is not None             # <<<<<<<<<<<<<<
 *         else grpc_insecure_credentials_create())
 *     self._state.c_channel = grpc_channel_create(
 */
  __pyx_t_2 = (((PyObject *)__pyx_v_channel_credentials) != Py_None);
  if (__pyx_t_2) {
    __pyx_t_7 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_v_channel_credentials->__pyx_vtab)->c(__pyx_v_channel_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 506, __pyx_L1_error)
    __pyx_t_6 = __pyx_t_7;
  } else {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":507
 *     c_channel_credentials = (
 *         channel_credentials.c() if channel_credentials is not None
 *         else grpc_insecure_credentials_create())             # <<<<<<<<<<<<<<
 *     self._state.c_channel = grpc_channel_create(
 *         <char *>target, c_channel_credentials, channel_args.c_args())
 */
    __pyx_t_6 = grpc_insecure_credentials_create();
  }
  __pyx_v_c_channel_credentials = __pyx_t_6;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":509
 *         else grpc_insecure_credentials_create())
 *     self._state.c_channel = grpc_channel_create(
 *         <char *>target, c_channel_credentials, channel_args.c_args())             # <<<<<<<<<<<<<<
 *     self._registered_call_handles = {}
 *     grpc_channel_credentials_release(c_channel_credentials)
 */
  if (unlikely(__pyx_v_target == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(12, 509, __pyx_L1_error)
  }
  __pyx_t_8 = __Pyx_PyBytes_AsWritableString(__pyx_v_target); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(12, 509, __pyx_L1_error)
  __pyx_t_9 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_channel_args->__pyx_vtab)->c_args(__pyx_v_channel_args); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 509, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":508
 *         channel_credentials.c() if channel_credentials is not None
 *         else grpc_insecure_credentials_create())
 *     self._state.c_channel = grpc_channel_create(             # <<<<<<<<<<<<<<
 *         <char *>target, c_channel_credentials, channel_args.c_args())
 *     self._registered_call_handles = {}
 */
  __pyx_v_self->_state->c_channel = grpc_channel_create(((char *)__pyx_t_8), __pyx_v_c_channel_credentials, __pyx_t_9);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":510
 *     self._state.c_channel = grpc_channel_create(
 *         <char *>target, c_channel_credentials, channel_args.c_args())
 *     self._registered_call_handles = {}             # <<<<<<<<<<<<<<
 *     grpc_channel_credentials_release(c_channel_credentials)
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_registered_call_handles);
  __Pyx_DECREF(__pyx_v_self->_registered_call_handles);
  __pyx_v_self->_registered_call_handles = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":511
 *         <char *>target, c_channel_credentials, channel_args.c_args())
 *     self._registered_call_handles = {}
 *     grpc_channel_credentials_release(c_channel_credentials)             # <<<<<<<<<<<<<<
 * 
 *   def target(self):
 */
  grpc_channel_credentials_release(__pyx_v_c_channel_credentials);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":493
 * cdef class Channel:
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, bytes target, object arguments,
 *       ChannelCredentials channel_credentials):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_channel_args);
  __Pyx_XDECREF(__pyx_v_arguments);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":513
 *     grpc_channel_credentials_release(c_channel_credentials)
 * 
 *   def target(self):             # <<<<<<<<<<<<<<
 *     cdef char *c_target
 *     with self._state.condition:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_3target(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_3target = {"target", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_3target, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_3target(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("target (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("target", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "target", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_2target(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_2target(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self) {
  char *__pyx_v_c_target;
  PyObject *__pyx_v_target = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("target", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":515
 *   def target(self):
 *     cdef char *c_target
 *     with self._state.condition:             # <<<<<<<<<<<<<<
 *       c_target = grpc_channel_get_target(self._state.c_channel)
 *       target = <bytes>c_target
 */
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->_state->condition, __pyx_n_s_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 515, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->_state->condition, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 515, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 515, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":516
 *     cdef char *c_target
 *     with self._state.condition:
 *       c_target = grpc_channel_get_target(self._state.c_channel)             # <<<<<<<<<<<<<<
 *       target = <bytes>c_target
 *       gpr_free(c_target)
 */
          __pyx_v_c_target = grpc_channel_get_target(__pyx_v_self->_state->c_channel);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":517
 *     with self._state.condition:
 *       c_target = grpc_channel_get_target(self._state.c_channel)
 *       target = <bytes>c_target             # <<<<<<<<<<<<<<
 *       gpr_free(c_target)
 *       return target
 */
          __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_c_target); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 517, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_3 = __pyx_t_2;
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_v_target = ((PyObject*)__pyx_t_3);
          __pyx_t_3 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":518
 *       c_target = grpc_channel_get_target(self._state.c_channel)
 *       target = <bytes>c_target
 *       gpr_free(c_target)             # <<<<<<<<<<<<<<
 *       return target
 * 
 */
          gpr_free(__pyx_v_c_target);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":519
 *       target = <bytes>c_target
 *       gpr_free(c_target)
 *       return target             # <<<<<<<<<<<<<<
 * 
 *   def integrated_call(
 */
          __Pyx_XDECREF(__pyx_r);
          __Pyx_INCREF(__pyx_v_target);
          __pyx_r = __pyx_v_target;
          goto __pyx_L11_try_return;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":515
 *   def target(self):
 *     cdef char *c_target
 *     with self._state.condition:             # <<<<<<<<<<<<<<
 *       c_target = grpc_channel_get_target(self._state.c_channel)
 *       target = <bytes>c_target
 */
        }
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.target", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_4) < 0) __PYX_ERR(12, 515, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_9 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 515, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(12, 515, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (__pyx_t_11 < 0) __PYX_ERR(12, 515, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_11);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_2, __pyx_t_4);
            __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_4 = 0; 
            __PYX_ERR(12, 515, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L11_try_return:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L4_return;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 515, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L4_return: {
        __pyx_t_8 = __pyx_r;
        __pyx_r = 0;
        if (__pyx_t_1) {
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 515, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }
      __pyx_L6:;
    }
    goto __pyx_L16;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L16:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":513
 *     grpc_channel_credentials_release(c_channel_credentials)
 * 
 *   def target(self):             # <<<<<<<<<<<<<<
 *     cdef char *c_target
 *     with self._state.condition:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.target", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_target);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":521
 *       return target
 * 
 *   def integrated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_5integrated_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_5integrated_call = {"integrated_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_5integrated_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_5integrated_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_flags;
  PyObject *__pyx_v_method = 0;
  PyObject *__pyx_v_host = 0;
  PyObject *__pyx_v_deadline = 0;
  PyObject *__pyx_v_metadata = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials = 0;
  PyObject *__pyx_v_operationses_and_tags = 0;
  PyObject *__pyx_v_context = 0;
  PyObject *__pyx_v_registered_call_handle = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("integrated_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flags,&__pyx_n_s_method,&__pyx_n_s_host,&__pyx_n_s_deadline,&__pyx_n_s_metadata,&__pyx_n_s_credentials,&__pyx_n_s_operationses_and_tags,&__pyx_n_s_context,&__pyx_n_s_registered_call_handle,0};

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":524
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
 *       object context = None, object registered_call_handle = None):             # <<<<<<<<<<<<<<
 *     return _integrated_call(
 *         self._state, flags, method, host, deadline, metadata, credentials,
 */
    values[7] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    values[8] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  9: values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flags)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 521, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 521, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("integrated_call", 0, 7, 9, 1); __PYX_ERR(12, 521, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_host)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 521, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("integrated_call", 0, 7, 9, 2); __PYX_ERR(12, 521, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_deadline)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 521, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("integrated_call", 0, 7, 9, 3); __PYX_ERR(12, 521, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 521, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("integrated_call", 0, 7, 9, 4); __PYX_ERR(12, 521, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_credentials)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 521, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("integrated_call", 0, 7, 9, 5); __PYX_ERR(12, 521, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_operationses_and_tags)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 521, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("integrated_call", 0, 7, 9, 6); __PYX_ERR(12, 521, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_context);
          if (value) { values[7] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 521, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_registered_call_handle);
          if (value) { values[8] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 521, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "integrated_call") < 0)) __PYX_ERR(12, 521, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  9: values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
        values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_flags = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(12, 522, __pyx_L3_error)
    __pyx_v_method = values[1];
    __pyx_v_host = values[2];
    __pyx_v_deadline = values[3];
    __pyx_v_metadata = values[4];
    __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)values[5]);
    __pyx_v_operationses_and_tags = values[6];
    __pyx_v_context = values[7];
    __pyx_v_registered_call_handle = values[8];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("integrated_call", 0, 7, 9, __pyx_nargs); __PYX_ERR(12, 521, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.integrated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_credentials), __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, 1, "credentials", 0))) __PYX_ERR(12, 523, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_4integrated_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_flags, __pyx_v_method, __pyx_v_host, __pyx_v_deadline, __pyx_v_metadata, __pyx_v_credentials, __pyx_v_operationses_and_tags, __pyx_v_context, __pyx_v_registered_call_handle);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":521
 *       return target
 * 
 *   def integrated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_4integrated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, int __pyx_v_flags, PyObject *__pyx_v_method, PyObject *__pyx_v_host, PyObject *__pyx_v_deadline, PyObject *__pyx_v_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials, PyObject *__pyx_v_operationses_and_tags, PyObject *__pyx_v_context, PyObject *__pyx_v_registered_call_handle) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("integrated_call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":525
 *       CallCredentials credentials, operationses_and_tags,
 *       object context = None, object registered_call_handle = None):
 *     return _integrated_call(             # <<<<<<<<<<<<<<
 *         self._state, flags, method, host, deadline, metadata, credentials,
 *         operationses_and_tags, context, registered_call_handle)
 */
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":526
 *       object context = None, object registered_call_handle = None):
 *     return _integrated_call(
 *         self._state, flags, method, host, deadline, metadata, credentials,             # <<<<<<<<<<<<<<
 *         operationses_and_tags, context, registered_call_handle)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->_state);
  __Pyx_INCREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":525
 *       CallCredentials credentials, operationses_and_tags,
 *       object context = None, object registered_call_handle = None):
 *     return _integrated_call(             # <<<<<<<<<<<<<<
 *         self._state, flags, method, host, deadline, metadata, credentials,
 *         operationses_and_tags, context, registered_call_handle)
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_4grpc_7_cython_6cygrpc__integrated_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), __pyx_v_flags, __pyx_v_method, __pyx_v_host, __pyx_v_deadline, __pyx_v_metadata, __pyx_v_credentials, __pyx_v_operationses_and_tags, __pyx_v_context, __pyx_v_registered_call_handle)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":521
 *       return target
 * 
 *   def integrated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.integrated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":529
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def next_call_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       if tag is not None:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_7next_call_event(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_7next_call_event = {"next_call_event", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_7next_call_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_7next_call_event(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next_call_event (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("next_call_event", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "next_call_event", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_6next_call_event(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":530
 * 
 *   def next_call_event(self):
 *     def on_success(tag):             # <<<<<<<<<<<<<<
 *       if tag is not None:
 *         _process_integrated_call_tag(self._state, tag)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_1on_success = {"on_success", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_1on_success, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("on_success (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tag,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 530, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "on_success") < 0)) __PYX_ERR(12, 530, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_tag = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("on_success", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 530, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.next_call_event.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_on_success(__pyx_self, __pyx_v_tag);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_on_success(PyObject *__pyx_self, PyObject *__pyx_v_tag) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("on_success", 1);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":531
 *   def next_call_event(self):
 *     def on_success(tag):
 *       if tag is not None:             # <<<<<<<<<<<<<<
 *         _process_integrated_call_tag(self._state, tag)
 *     if is_fork_support_enabled():
 */
  __pyx_t_1 = (__pyx_v_tag != Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":532
 *     def on_success(tag):
 *       if tag is not None:
 *         _process_integrated_call_tag(self._state, tag)             # <<<<<<<<<<<<<<
 *     if is_fork_support_enabled():
 *       queue_deadline = time.time() + 1.0
 */
    if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 532, __pyx_L1_error) }
    __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_state);
    __Pyx_INCREF(__pyx_t_2);
    if (!(likely(((__pyx_v_tag) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_tag, __pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag))))) __PYX_ERR(12, 532, __pyx_L1_error)
    __pyx_f_4grpc_7_cython_6cygrpc__process_integrated_call_tag(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_2), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_tag)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 532, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":531
 *   def next_call_event(self):
 *     def on_success(tag):
 *       if tag is not None:             # <<<<<<<<<<<<<<
 *         _process_integrated_call_tag(self._state, tag)
 *     if is_fork_support_enabled():
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":530
 * 
 *   def next_call_event(self):
 *     def on_success(tag):             # <<<<<<<<<<<<<<
 *       if tag is not None:
 *         _process_integrated_call_tag(self._state, tag)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.next_call_event.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":529
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def next_call_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       if tag is not None:
 */

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_6next_call_event(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *__pyx_cur_scope;
  PyObject *__pyx_v_on_success = 0;
  PyObject *__pyx_v_queue_deadline = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next_call_event", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(12, 529, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":530
 * 
 *   def next_call_event(self):
 *     def on_success(tag):             # <<<<<<<<<<<<<<
 *       if tag is not None:
 *         _process_integrated_call_tag(self._state, tag)
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_1on_success, 0, __pyx_n_s_next_call_event_locals_on_succes, ((PyObject*)__pyx_cur_scope), __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__20)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_on_success = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":533
 *       if tag is not None:
 *         _process_integrated_call_tag(self._state, tag)
 *     if is_fork_support_enabled():             # <<<<<<<<<<<<<<
 *       queue_deadline = time.time() + 1.0
 *     else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_is_fork_support_enabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(12, 533, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":534
 *         _process_integrated_call_tag(self._state, tag)
 *     if is_fork_support_enabled():
 *       queue_deadline = time.time() + 1.0             # <<<<<<<<<<<<<<
 *     else:
 *       queue_deadline = None
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 534, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 534, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 534, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_3 = __Pyx_PyFloat_AddObjC(__pyx_t_1, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 534, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_queue_deadline = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":533
 *       if tag is not None:
 *         _process_integrated_call_tag(self._state, tag)
 *     if is_fork_support_enabled():             # <<<<<<<<<<<<<<
 *       queue_deadline = time.time() + 1.0
 *     else:
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":536
 *       queue_deadline = time.time() + 1.0
 *     else:
 *       queue_deadline = None             # <<<<<<<<<<<<<<
 *     # NOTE(gnossen): It is acceptable for on_failure to be None here because
 *     # failure conditions can only ever happen on the main thread and this
 */
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_queue_deadline = Py_None;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":540
 *     # failure conditions can only ever happen on the main thread and this
 *     # method is only ever invoked on the channel spin thread.
 *     return _next_call_event(self._state, self._state.c_call_completion_queue,             # <<<<<<<<<<<<<<
 *                             on_success, None, queue_deadline)
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_state);
  __Pyx_INCREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":541
 *     # method is only ever invoked on the channel spin thread.
 *     return _next_call_event(self._state, self._state.c_call_completion_queue,
 *                             on_success, None, queue_deadline)             # <<<<<<<<<<<<<<
 * 
 *   def segregated_call(
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__next_call_event(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_3), __pyx_cur_scope->__pyx_v_self->_state->c_call_completion_queue, __pyx_v_on_success, Py_None, __pyx_v_queue_deadline); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":529
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def next_call_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       if tag is not None:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.next_call_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_on_success);
  __Pyx_XDECREF(__pyx_v_queue_deadline);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":543
 *                             on_success, None, queue_deadline)
 * 
 *   def segregated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_9segregated_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_9segregated_call = {"segregated_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_9segregated_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_9segregated_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_flags;
  PyObject *__pyx_v_method = 0;
  PyObject *__pyx_v_host = 0;
  PyObject *__pyx_v_deadline = 0;
  PyObject *__pyx_v_metadata = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials = 0;
  PyObject *__pyx_v_operationses_and_tags = 0;
  PyObject *__pyx_v_context = 0;
  PyObject *__pyx_v_registered_call_handle = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("segregated_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flags,&__pyx_n_s_method,&__pyx_n_s_host,&__pyx_n_s_deadline,&__pyx_n_s_metadata,&__pyx_n_s_credentials,&__pyx_n_s_operationses_and_tags,&__pyx_n_s_context,&__pyx_n_s_registered_call_handle,0};

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":546
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
 *       object context = None, object registered_call_handle = None):             # <<<<<<<<<<<<<<
 *     return _segregated_call(
 *         self._state, flags, method, host, deadline, metadata, credentials,
 */
    values[7] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    values[8] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  9: values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flags)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 543, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 543, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("segregated_call", 0, 7, 9, 1); __PYX_ERR(12, 543, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_host)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 543, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("segregated_call", 0, 7, 9, 2); __PYX_ERR(12, 543, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_deadline)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 543, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("segregated_call", 0, 7, 9, 3); __PYX_ERR(12, 543, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 543, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("segregated_call", 0, 7, 9, 4); __PYX_ERR(12, 543, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_credentials)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 543, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("segregated_call", 0, 7, 9, 5); __PYX_ERR(12, 543, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_operationses_and_tags)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 543, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("segregated_call", 0, 7, 9, 6); __PYX_ERR(12, 543, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_context);
          if (value) { values[7] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 543, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_registered_call_handle);
          if (value) { values[8] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 543, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "segregated_call") < 0)) __PYX_ERR(12, 543, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  9: values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
        values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_flags = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(12, 544, __pyx_L3_error)
    __pyx_v_method = values[1];
    __pyx_v_host = values[2];
    __pyx_v_deadline = values[3];
    __pyx_v_metadata = values[4];
    __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)values[5]);
    __pyx_v_operationses_and_tags = values[6];
    __pyx_v_context = values[7];
    __pyx_v_registered_call_handle = values[8];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("segregated_call", 0, 7, 9, __pyx_nargs); __PYX_ERR(12, 543, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.segregated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_credentials), __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, 1, "credentials", 0))) __PYX_ERR(12, 545, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_8segregated_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_flags, __pyx_v_method, __pyx_v_host, __pyx_v_deadline, __pyx_v_metadata, __pyx_v_credentials, __pyx_v_operationses_and_tags, __pyx_v_context, __pyx_v_registered_call_handle);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":543
 *                             on_success, None, queue_deadline)
 * 
 *   def segregated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_8segregated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, int __pyx_v_flags, PyObject *__pyx_v_method, PyObject *__pyx_v_host, PyObject *__pyx_v_deadline, PyObject *__pyx_v_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials, PyObject *__pyx_v_operationses_and_tags, PyObject *__pyx_v_context, PyObject *__pyx_v_registered_call_handle) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("segregated_call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":547
 *       CallCredentials credentials, operationses_and_tags,
 *       object context = None, object registered_call_handle = None):
 *     return _segregated_call(             # <<<<<<<<<<<<<<
 *         self._state, flags, method, host, deadline, metadata, credentials,
 *         operationses_and_tags, context, registered_call_handle)
 */
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":548
 *       object context = None, object registered_call_handle = None):
 *     return _segregated_call(
 *         self._state, flags, method, host, deadline, metadata, credentials,             # <<<<<<<<<<<<<<
 *         operationses_and_tags, context, registered_call_handle)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->_state);
  __Pyx_INCREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":547
 *       CallCredentials credentials, operationses_and_tags,
 *       object context = None, object registered_call_handle = None):
 *     return _segregated_call(             # <<<<<<<<<<<<<<
 *         self._state, flags, method, host, deadline, metadata, credentials,
 *         operationses_and_tags, context, registered_call_handle)
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_4grpc_7_cython_6cygrpc__segregated_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), __pyx_v_flags, __pyx_v_method, __pyx_v_host, __pyx_v_deadline, __pyx_v_metadata, __pyx_v_credentials, __pyx_v_operationses_and_tags, __pyx_v_context, __pyx_v_registered_call_handle)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":543
 *                             on_success, None, queue_deadline)
 * 
 *   def segregated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.segregated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":551
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def check_connectivity_state(self, bint try_to_connect):             # <<<<<<<<<<<<<<
 *     with self._state.condition:
 *       if self._state.open:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_11check_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_11check_connectivity_state = {"check_connectivity_state", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_11check_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_11check_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_try_to_connect;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("check_connectivity_state (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_try_to_connect,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_try_to_connect)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 551, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "check_connectivity_state") < 0)) __PYX_ERR(12, 551, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_try_to_connect = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_try_to_connect == (int)-1) && PyErr_Occurred())) __PYX_ERR(12, 551, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("check_connectivity_state", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 551, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.check_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_10check_connectivity_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_try_to_connect);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_10check_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, int __pyx_v_try_to_connect) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("check_connectivity_state", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":552
 * 
 *   def check_connectivity_state(self, bint try_to_connect):
 *     with self._state.condition:             # <<<<<<<<<<<<<<
 *       if self._state.open:
 *         return grpc_channel_check_connectivity_state(
 */
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->_state->condition, __pyx_n_s_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 552, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->_state->condition, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 552, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 552, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":553
 *   def check_connectivity_state(self, bint try_to_connect):
 *     with self._state.condition:
 *       if self._state.open:             # <<<<<<<<<<<<<<
 *         return grpc_channel_check_connectivity_state(
 *             self._state.c_channel, try_to_connect)
 */
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_self->_state->open); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 553, __pyx_L7_error)
          if (likely(__pyx_t_9)) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":554
 *     with self._state.condition:
 *       if self._state.open:
 *         return grpc_channel_check_connectivity_state(             # <<<<<<<<<<<<<<
 *             self._state.c_channel, try_to_connect)
 *       else:
 */
            __Pyx_XDECREF(__pyx_r);

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":555
 *       if self._state.open:
 *         return grpc_channel_check_connectivity_state(
 *             self._state.c_channel, try_to_connect)             # <<<<<<<<<<<<<<
 *       else:
 *         raise ValueError('Cannot invoke RPC: %s' % self._state.closed_reason)
 */
            __pyx_t_2 = __Pyx_PyInt_From_grpc_connectivity_state(grpc_channel_check_connectivity_state(__pyx_v_self->_state->c_channel, __pyx_v_try_to_connect)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 554, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_r = __pyx_t_2;
            __pyx_t_2 = 0;
            goto __pyx_L11_try_return;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":553
 *   def check_connectivity_state(self, bint try_to_connect):
 *     with self._state.condition:
 *       if self._state.open:             # <<<<<<<<<<<<<<
 *         return grpc_channel_check_connectivity_state(
 *             self._state.c_channel, try_to_connect)
 */
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":557
 *             self._state.c_channel, try_to_connect)
 *       else:
 *         raise ValueError('Cannot invoke RPC: %s' % self._state.closed_reason)             # <<<<<<<<<<<<<<
 * 
 *   def watch_connectivity_state(
 */
          /*else*/ {
            __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Cannot_invoke_RPC_s, __pyx_v_self->_state->closed_reason); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 557, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 557, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_Raise(__pyx_t_3, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __PYX_ERR(12, 557, __pyx_L7_error)
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":552
 * 
 *   def check_connectivity_state(self, bint try_to_connect):
 *     with self._state.condition:             # <<<<<<<<<<<<<<
 *       if self._state.open:
 *         return grpc_channel_check_connectivity_state(
 */
        }
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.check_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_4) < 0) __PYX_ERR(12, 552, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_10 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(12, 552, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(12, 552, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(12, 552, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_9);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_2, __pyx_t_4);
            __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_4 = 0; 
            __PYX_ERR(12, 552, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L11_try_return:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L4_return;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 552, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L4_return: {
        __pyx_t_8 = __pyx_r;
        __pyx_r = 0;
        if (__pyx_t_1) {
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 552, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":551
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def check_connectivity_state(self, bint try_to_connect):             # <<<<<<<<<<<<<<
 *     with self._state.condition:
 *       if self._state.open:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.check_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":559
 *         raise ValueError('Cannot invoke RPC: %s' % self._state.closed_reason)
 * 
 *   def watch_connectivity_state(             # <<<<<<<<<<<<<<
 *       self, grpc_connectivity_state last_observed_state, object deadline):
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_13watch_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_13watch_connectivity_state = {"watch_connectivity_state", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_13watch_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_13watch_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_connectivity_state __pyx_v_last_observed_state;
  PyObject *__pyx_v_deadline = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("watch_connectivity_state (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_last_observed_state,&__pyx_n_s_deadline,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_last_observed_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 559, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_deadline)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 559, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("watch_connectivity_state", 1, 2, 2, 1); __PYX_ERR(12, 559, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "watch_connectivity_state") < 0)) __PYX_ERR(12, 559, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_last_observed_state = ((grpc_connectivity_state)__Pyx_PyInt_As_grpc_connectivity_state(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 560, __pyx_L3_error)
    __pyx_v_deadline = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("watch_connectivity_state", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 559, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_12watch_connectivity_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_last_observed_state, __pyx_v_deadline);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_12watch_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, grpc_connectivity_state __pyx_v_last_observed_state, PyObject *__pyx_v_deadline) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("watch_connectivity_state", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":561
 *   def watch_connectivity_state(
 *       self, grpc_connectivity_state last_observed_state, object deadline):
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)             # <<<<<<<<<<<<<<
 * 
 *   def close(self, code, details):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__watch_connectivity_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), __pyx_v_last_observed_state, __pyx_v_deadline); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":559
 *         raise ValueError('Cannot invoke RPC: %s' % self._state.closed_reason)
 * 
 *   def watch_connectivity_state(             # <<<<<<<<<<<<<<
 *       self, grpc_connectivity_state last_observed_state, object deadline):
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":563
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)
 * 
 *   def close(self, code, details):             # <<<<<<<<<<<<<<
 *     _close(self, code, details, False)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_15close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_15close = {"close", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_15close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_15close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_code,&__pyx_n_s_details,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_code)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 563, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 563, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("close", 1, 2, 2, 1); __PYX_ERR(12, 563, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "close") < 0)) __PYX_ERR(12, 563, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_code = values[0];
    __pyx_v_details = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("close", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 563, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_14close(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_code, __pyx_v_details);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_14close(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  grpc_status_code __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("close", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":564
 * 
 *   def close(self, code, details):
 *     _close(self, code, details, False)             # <<<<<<<<<<<<<<
 * 
 *   def close_on_fork(self, code, details):
 */
  __pyx_t_1 = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(__pyx_v_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 564, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__close(__pyx_v_self, __pyx_t_1, __pyx_v_details, Py_False); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":563
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)
 * 
 *   def close(self, code, details):             # <<<<<<<<<<<<<<
 *     _close(self, code, details, False)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":566
 *     _close(self, code, details, False)
 * 
 *   def close_on_fork(self, code, details):             # <<<<<<<<<<<<<<
 *     _close(self, code, details, True)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_17close_on_fork(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_17close_on_fork = {"close_on_fork", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_17close_on_fork, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_17close_on_fork(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close_on_fork (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_code,&__pyx_n_s_details,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_code)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 566, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 566, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("close_on_fork", 1, 2, 2, 1); __PYX_ERR(12, 566, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "close_on_fork") < 0)) __PYX_ERR(12, 566, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_code = values[0];
    __pyx_v_details = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("close_on_fork", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 566, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.close_on_fork", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_16close_on_fork(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_code, __pyx_v_details);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_16close_on_fork(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  grpc_status_code __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("close_on_fork", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":567
 * 
 *   def close_on_fork(self, code, details):
 *     _close(self, code, details, True)             # <<<<<<<<<<<<<<
 * 
 *   def get_registered_call_handle(self, method):
 */
  __pyx_t_1 = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(__pyx_v_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 567, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__close(__pyx_v_self, __pyx_t_1, __pyx_v_details, Py_True); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":566
 *     _close(self, code, details, False)
 * 
 *   def close_on_fork(self, code, details):             # <<<<<<<<<<<<<<
 *     _close(self, code, details, True)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.close_on_fork", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":569
 *     _close(self, code, details, True)
 * 
 *   def get_registered_call_handle(self, method):             # <<<<<<<<<<<<<<
 *     """
 *     Get or registers a call handler for a method.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_19get_registered_call_handle(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_7Channel_18get_registered_call_handle, "\n    Get or registers a call handler for a method.\n\n    This method is not thread-safe.\n\n    Args:\n      method: Required, the method name for the RPC.\n\n    Returns:\n      The registered call handle pointer in the form of a Python Long. \n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_19get_registered_call_handle = {"get_registered_call_handle", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_19get_registered_call_handle, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_7Channel_18get_registered_call_handle};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_19get_registered_call_handle(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_method = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_registered_call_handle (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_method,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 569, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_registered_call_handle") < 0)) __PYX_ERR(12, 569, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_method = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_registered_call_handle", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 569, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.get_registered_call_handle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_18get_registered_call_handle(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_method);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_18get_registered_call_handle(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_method) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_registered_call_handle", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":581
 *       The registered call handle pointer in the form of a Python Long.
 *     """
 *     if method not in self._registered_call_handles.keys():             # <<<<<<<<<<<<<<
 *       self._registered_call_handles[method] = CallHandle(self._state, method)
 *     return self._registered_call_handles[method].call_handle
 */
  if (unlikely(__pyx_v_self->_registered_call_handles == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys");
    __PYX_ERR(12, 581, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_self->_registered_call_handles); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 581, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_method, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(12, 581, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":582
 *     """
 *     if method not in self._registered_call_handles.keys():
 *       self._registered_call_handles[method] = CallHandle(self._state, method)             # <<<<<<<<<<<<<<
 *     return self._registered_call_handles[method].call_handle
 */
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 582, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF((PyObject *)__pyx_v_self->_state);
    __Pyx_GIVEREF((PyObject *)__pyx_v_self->_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->_state))) __PYX_ERR(12, 582, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_method);
    __Pyx_GIVEREF(__pyx_v_method);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_method)) __PYX_ERR(12, 582, __pyx_L1_error);
    __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle), __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 582, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__pyx_v_self->_registered_call_handles == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(12, 582, __pyx_L1_error)
    }
    if (unlikely((PyDict_SetItem(__pyx_v_self->_registered_call_handles, __pyx_v_method, __pyx_t_3) < 0))) __PYX_ERR(12, 582, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":581
 *       The registered call handle pointer in the form of a Python Long.
 *     """
 *     if method not in self._registered_call_handles.keys():             # <<<<<<<<<<<<<<
 *       self._registered_call_handles[method] = CallHandle(self._state, method)
 *     return self._registered_call_handles[method].call_handle
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":583
 *     if method not in self._registered_call_handles.keys():
 *       self._registered_call_handles[method] = CallHandle(self._state, method)
 *     return self._registered_call_handles[method].call_handle             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_registered_call_handles == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(12, 583, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->_registered_call_handles, __pyx_v_method); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_call_handle); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":569
 *     _close(self, code, details, True)
 * 
 *   def get_registered_call_handle(self, method):             # <<<<<<<<<<<<<<
 *     """
 *     Get or registers a call handler for a method.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.get_registered_call_handle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_21__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_21__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_21__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_21__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_20__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_20__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_23__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_23__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_23__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_23__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_22__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_22__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":16
 * 
 * 
 * def channelz_get_top_channels(start_channel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_top_channels(
 *         start_channel_id,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_1channelz_get_top_channels(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_1channelz_get_top_channels = {"channelz_get_top_channels", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_1channelz_get_top_channels, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_1channelz_get_top_channels(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_start_channel_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channelz_get_top_channels (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_start_channel_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_start_channel_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(13, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "channelz_get_top_channels") < 0)) __PYX_ERR(13, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_start_channel_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channelz_get_top_channels", 1, 1, 1, __pyx_nargs); __PYX_ERR(13, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_top_channels", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_channelz_get_top_channels(__pyx_self, __pyx_v_start_channel_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_channelz_get_top_channels(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_start_channel_id) {
  char *__pyx_v_c_returned_str;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channelz_get_top_channels", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":18
 * def channelz_get_top_channels(start_channel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_top_channels(
 *         start_channel_id,             # <<<<<<<<<<<<<<
 *     )
 *     if c_returned_str == NULL:
 */
  __pyx_t_1 = PyInt_AsSsize_t(__pyx_v_start_channel_id); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 18, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":17
 * 
 * def channelz_get_top_channels(start_channel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_top_channels(             # <<<<<<<<<<<<<<
 *         start_channel_id,
 *     )
 */
  __pyx_v_c_returned_str = grpc_channelz_get_top_channels(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":20
 *         start_channel_id,
 *     )
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get top channels, please ensure your' \
 *                          ' start_channel_id==%s is valid' % start_channel_id)
 */
  __pyx_t_2 = (__pyx_v_c_returned_str == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":22
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get top channels, please ensure your' \
 *                          ' start_channel_id==%s is valid' % start_channel_id)             # <<<<<<<<<<<<<<
 *     return c_returned_str
 * 
 */
    __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Failed_to_get_top_channels_pleas, __pyx_v_start_channel_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 22, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":21
 *     )
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get top channels, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' start_channel_id==%s is valid' % start_channel_id)
 *     return c_returned_str
 */
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 21, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(13, 21, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":20
 *         start_channel_id,
 *     )
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get top channels, please ensure your' \
 *                          ' start_channel_id==%s is valid' % start_channel_id)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":23
 *         raise ValueError('Failed to get top channels, please ensure your' \
 *                          ' start_channel_id==%s is valid' % start_channel_id)
 *     return c_returned_str             # <<<<<<<<<<<<<<
 * 
 * def channelz_get_servers(start_server_id):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_c_returned_str); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":16
 * 
 * 
 * def channelz_get_top_channels(start_channel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_top_channels(
 *         start_channel_id,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_top_channels", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":25
 *     return c_returned_str
 * 
 * def channelz_get_servers(start_server_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)
 *     if c_returned_str == NULL:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_3channelz_get_servers(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_3channelz_get_servers = {"channelz_get_servers", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_3channelz_get_servers, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_3channelz_get_servers(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_start_server_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channelz_get_servers (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_start_server_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_start_server_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(13, 25, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "channelz_get_servers") < 0)) __PYX_ERR(13, 25, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_start_server_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channelz_get_servers", 1, 1, 1, __pyx_nargs); __PYX_ERR(13, 25, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_servers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_2channelz_get_servers(__pyx_self, __pyx_v_start_server_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_2channelz_get_servers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_start_server_id) {
  char *__pyx_v_c_returned_str;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channelz_get_servers", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":26
 * 
 * def channelz_get_servers(start_server_id):
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)             # <<<<<<<<<<<<<<
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get servers, please ensure your' \
 */
  __pyx_t_1 = PyInt_AsSsize_t(__pyx_v_start_server_id); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 26, __pyx_L1_error)
  __pyx_v_c_returned_str = grpc_channelz_get_servers(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":27
 * def channelz_get_servers(start_server_id):
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get servers, please ensure your' \
 *                          ' start_server_id==%s is valid' % start_server_id)
 */
  __pyx_t_2 = (__pyx_v_c_returned_str == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":29
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get servers, please ensure your' \
 *                          ' start_server_id==%s is valid' % start_server_id)             # <<<<<<<<<<<<<<
 *     return c_returned_str
 * 
 */
    __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Failed_to_get_servers_please_ens, __pyx_v_start_server_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 29, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":28
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get servers, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' start_server_id==%s is valid' % start_server_id)
 *     return c_returned_str
 */
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(13, 28, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":27
 * def channelz_get_servers(start_server_id):
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get servers, please ensure your' \
 *                          ' start_server_id==%s is valid' % start_server_id)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":30
 *         raise ValueError('Failed to get servers, please ensure your' \
 *                          ' start_server_id==%s is valid' % start_server_id)
 *     return c_returned_str             # <<<<<<<<<<<<<<
 * 
 * def channelz_get_server(server_id):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_c_returned_str); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":25
 *     return c_returned_str
 * 
 * def channelz_get_servers(start_server_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)
 *     if c_returned_str == NULL:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_servers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":32
 *     return c_returned_str
 * 
 * def channelz_get_server(server_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)
 *     if c_returned_str == NULL:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_5channelz_get_server(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_5channelz_get_server = {"channelz_get_server", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_5channelz_get_server, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_5channelz_get_server(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_server_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channelz_get_server (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_server_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_server_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(13, 32, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "channelz_get_server") < 0)) __PYX_ERR(13, 32, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_server_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channelz_get_server", 1, 1, 1, __pyx_nargs); __PYX_ERR(13, 32, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_server", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4channelz_get_server(__pyx_self, __pyx_v_server_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4channelz_get_server(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_server_id) {
  char *__pyx_v_c_returned_str;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channelz_get_server", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":33
 * 
 * def channelz_get_server(server_id):
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)             # <<<<<<<<<<<<<<
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the server, please ensure your' \
 */
  __pyx_t_1 = PyInt_AsSsize_t(__pyx_v_server_id); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 33, __pyx_L1_error)
  __pyx_v_c_returned_str = grpc_channelz_get_server(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":34
 * def channelz_get_server(server_id):
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the server, please ensure your' \
 *                          ' server_id==%s is valid' % server_id)
 */
  __pyx_t_2 = (__pyx_v_c_returned_str == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":36
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the server, please ensure your' \
 *                          ' server_id==%s is valid' % server_id)             # <<<<<<<<<<<<<<
 *     return c_returned_str
 * 
 */
    __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Failed_to_get_the_server_please, __pyx_v_server_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 36, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":35
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the server, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' server_id==%s is valid' % server_id)
 *     return c_returned_str
 */
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(13, 35, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":34
 * def channelz_get_server(server_id):
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the server, please ensure your' \
 *                          ' server_id==%s is valid' % server_id)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":37
 *         raise ValueError('Failed to get the server, please ensure your' \
 *                          ' server_id==%s is valid' % server_id)
 *     return c_returned_str             # <<<<<<<<<<<<<<
 * 
 * def channelz_get_server_sockets(server_id, start_socket_id, max_results):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_c_returned_str); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":32
 *     return c_returned_str
 * 
 * def channelz_get_server(server_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)
 *     if c_returned_str == NULL:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_server", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":39
 *     return c_returned_str
 * 
 * def channelz_get_server_sockets(server_id, start_socket_id, max_results):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_server_sockets(
 *         server_id,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7channelz_get_server_sockets(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7channelz_get_server_sockets = {"channelz_get_server_sockets", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7channelz_get_server_sockets, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7channelz_get_server_sockets(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_server_id = 0;
  PyObject *__pyx_v_start_socket_id = 0;
  PyObject *__pyx_v_max_results = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channelz_get_server_sockets (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_server_id,&__pyx_n_s_start_socket_id,&__pyx_n_s_max_results,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_server_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(13, 39, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_start_socket_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(13, 39, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("channelz_get_server_sockets", 1, 3, 3, 1); __PYX_ERR(13, 39, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_max_results)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(13, 39, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("channelz_get_server_sockets", 1, 3, 3, 2); __PYX_ERR(13, 39, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "channelz_get_server_sockets") < 0)) __PYX_ERR(13, 39, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_server_id = values[0];
    __pyx_v_start_socket_id = values[1];
    __pyx_v_max_results = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channelz_get_server_sockets", 1, 3, 3, __pyx_nargs); __PYX_ERR(13, 39, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_server_sockets", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6channelz_get_server_sockets(__pyx_self, __pyx_v_server_id, __pyx_v_start_socket_id, __pyx_v_max_results);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6channelz_get_server_sockets(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_server_id, PyObject *__pyx_v_start_socket_id, PyObject *__pyx_v_max_results) {
  char *__pyx_v_c_returned_str;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_1;
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_2;
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channelz_get_server_sockets", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":41
 * def channelz_get_server_sockets(server_id, start_socket_id, max_results):
 *     cdef char *c_returned_str = grpc_channelz_get_server_sockets(
 *         server_id,             # <<<<<<<<<<<<<<
 *         start_socket_id,
 *         max_results,
 */
  __pyx_t_1 = PyInt_AsSsize_t(__pyx_v_server_id); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 41, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":42
 *     cdef char *c_returned_str = grpc_channelz_get_server_sockets(
 *         server_id,
 *         start_socket_id,             # <<<<<<<<<<<<<<
 *         max_results,
 *     )
 */
  __pyx_t_2 = PyInt_AsSsize_t(__pyx_v_start_socket_id); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 42, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":43
 *         server_id,
 *         start_socket_id,
 *         max_results,             # <<<<<<<<<<<<<<
 *     )
 *     if c_returned_str == NULL:
 */
  __pyx_t_3 = PyInt_AsSsize_t(__pyx_v_max_results); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 43, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":40
 * 
 * def channelz_get_server_sockets(server_id, start_socket_id, max_results):
 *     cdef char *c_returned_str = grpc_channelz_get_server_sockets(             # <<<<<<<<<<<<<<
 *         server_id,
 *         start_socket_id,
 */
  __pyx_v_c_returned_str = grpc_channelz_get_server_sockets(__pyx_t_1, __pyx_t_2, __pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":45
 *         max_results,
 *     )
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get server sockets, please ensure your' \
 *                          ' server_id==%s and start_socket_id==%s and' \
 */
  __pyx_t_4 = (__pyx_v_c_returned_str == NULL);
  if (unlikely(__pyx_t_4)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":49
 *                          ' server_id==%s and start_socket_id==%s and' \
 *                          ' max_results==%s is valid' %
 *                          (server_id, start_socket_id, max_results))             # <<<<<<<<<<<<<<
 *     return c_returned_str
 * 
 */
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(13, 49, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_server_id);
    __Pyx_GIVEREF(__pyx_v_server_id);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_server_id)) __PYX_ERR(13, 49, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_start_socket_id);
    __Pyx_GIVEREF(__pyx_v_start_socket_id);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_start_socket_id)) __PYX_ERR(13, 49, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_max_results);
    __Pyx_GIVEREF(__pyx_v_max_results);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_max_results)) __PYX_ERR(13, 49, __pyx_L1_error);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":48
 *         raise ValueError('Failed to get server sockets, please ensure your' \
 *                          ' server_id==%s and start_socket_id==%s and' \
 *                          ' max_results==%s is valid' %             # <<<<<<<<<<<<<<
 *                          (server_id, start_socket_id, max_results))
 *     return c_returned_str
 */
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_get_server_sockets_ple, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":46
 *     )
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get server sockets, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' server_id==%s and start_socket_id==%s and' \
 *                          ' max_results==%s is valid' %
 */
    __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(13, 46, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_5, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __PYX_ERR(13, 46, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":45
 *         max_results,
 *     )
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get server sockets, please ensure your' \
 *                          ' server_id==%s and start_socket_id==%s and' \
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":50
 *                          ' max_results==%s is valid' %
 *                          (server_id, start_socket_id, max_results))
 *     return c_returned_str             # <<<<<<<<<<<<<<
 * 
 * def channelz_get_channel(channel_id):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_c_returned_str); if (unlikely(!__pyx_t_5)) __PYX_ERR(13, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":39
 *     return c_returned_str
 * 
 * def channelz_get_server_sockets(server_id, start_socket_id, max_results):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_server_sockets(
 *         server_id,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_server_sockets", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":52
 *     return c_returned_str
 * 
 * def channelz_get_channel(channel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)
 *     if c_returned_str == NULL:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9channelz_get_channel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9channelz_get_channel = {"channelz_get_channel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9channelz_get_channel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9channelz_get_channel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_channel_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channelz_get_channel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_channel_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_channel_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(13, 52, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "channelz_get_channel") < 0)) __PYX_ERR(13, 52, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_channel_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channelz_get_channel", 1, 1, 1, __pyx_nargs); __PYX_ERR(13, 52, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_channel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8channelz_get_channel(__pyx_self, __pyx_v_channel_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8channelz_get_channel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_channel_id) {
  char *__pyx_v_c_returned_str;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channelz_get_channel", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":53
 * 
 * def channelz_get_channel(channel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)             # <<<<<<<<<<<<<<
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the channel, please ensure your' \
 */
  __pyx_t_1 = PyInt_AsSsize_t(__pyx_v_channel_id); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 53, __pyx_L1_error)
  __pyx_v_c_returned_str = grpc_channelz_get_channel(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":54
 * def channelz_get_channel(channel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the channel, please ensure your' \
 *                          ' channel_id==%s is valid' % (channel_id))
 */
  __pyx_t_2 = (__pyx_v_c_returned_str == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":56
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the channel, please ensure your' \
 *                          ' channel_id==%s is valid' % (channel_id))             # <<<<<<<<<<<<<<
 *     return c_returned_str
 * 
 */
    __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Failed_to_get_the_channel_please, __pyx_v_channel_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 56, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":55
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the channel, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' channel_id==%s is valid' % (channel_id))
 *     return c_returned_str
 */
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 55, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(13, 55, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":54
 * def channelz_get_channel(channel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the channel, please ensure your' \
 *                          ' channel_id==%s is valid' % (channel_id))
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":57
 *         raise ValueError('Failed to get the channel, please ensure your' \
 *                          ' channel_id==%s is valid' % (channel_id))
 *     return c_returned_str             # <<<<<<<<<<<<<<
 * 
 * def channelz_get_subchannel(subchannel_id):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_c_returned_str); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":52
 *     return c_returned_str
 * 
 * def channelz_get_channel(channel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)
 *     if c_returned_str == NULL:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_channel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":59
 *     return c_returned_str
 * 
 * def channelz_get_subchannel(subchannel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)
 *     if c_returned_str == NULL:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11channelz_get_subchannel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_11channelz_get_subchannel = {"channelz_get_subchannel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11channelz_get_subchannel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11channelz_get_subchannel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_subchannel_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channelz_get_subchannel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_subchannel_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_subchannel_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(13, 59, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "channelz_get_subchannel") < 0)) __PYX_ERR(13, 59, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_subchannel_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channelz_get_subchannel", 1, 1, 1, __pyx_nargs); __PYX_ERR(13, 59, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_subchannel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10channelz_get_subchannel(__pyx_self, __pyx_v_subchannel_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10channelz_get_subchannel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_subchannel_id) {
  char *__pyx_v_c_returned_str;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channelz_get_subchannel", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":60
 * 
 * def channelz_get_subchannel(subchannel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)             # <<<<<<<<<<<<<<
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the subchannel, please ensure your' \
 */
  __pyx_t_1 = PyInt_AsSsize_t(__pyx_v_subchannel_id); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 60, __pyx_L1_error)
  __pyx_v_c_returned_str = grpc_channelz_get_subchannel(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":61
 * def channelz_get_subchannel(subchannel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the subchannel, please ensure your' \
 *                          ' subchannel_id==%s is valid' % (subchannel_id))
 */
  __pyx_t_2 = (__pyx_v_c_returned_str == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":63
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the subchannel, please ensure your' \
 *                          ' subchannel_id==%s is valid' % (subchannel_id))             # <<<<<<<<<<<<<<
 *     return c_returned_str
 * 
 */
    __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Failed_to_get_the_subchannel_ple, __pyx_v_subchannel_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 63, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":62
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the subchannel, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' subchannel_id==%s is valid' % (subchannel_id))
 *     return c_returned_str
 */
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 62, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(13, 62, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":61
 * def channelz_get_subchannel(subchannel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the subchannel, please ensure your' \
 *                          ' subchannel_id==%s is valid' % (subchannel_id))
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":64
 *         raise ValueError('Failed to get the subchannel, please ensure your' \
 *                          ' subchannel_id==%s is valid' % (subchannel_id))
 *     return c_returned_str             # <<<<<<<<<<<<<<
 * 
 * def channelz_get_socket(socket_id):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_c_returned_str); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":59
 *     return c_returned_str
 * 
 * def channelz_get_subchannel(subchannel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)
 *     if c_returned_str == NULL:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_subchannel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":66
 *     return c_returned_str
 * 
 * def channelz_get_socket(socket_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)
 *     if c_returned_str == NULL:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13channelz_get_socket(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_13channelz_get_socket = {"channelz_get_socket", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13channelz_get_socket, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13channelz_get_socket(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_socket_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channelz_get_socket (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_socket_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_socket_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(13, 66, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "channelz_get_socket") < 0)) __PYX_ERR(13, 66, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_socket_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channelz_get_socket", 1, 1, 1, __pyx_nargs); __PYX_ERR(13, 66, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_socket", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12channelz_get_socket(__pyx_self, __pyx_v_socket_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12channelz_get_socket(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_socket_id) {
  char *__pyx_v_c_returned_str;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channelz_get_socket", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":67
 * 
 * def channelz_get_socket(socket_id):
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)             # <<<<<<<<<<<<<<
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the socket, please ensure your' \
 */
  __pyx_t_1 = PyInt_AsSsize_t(__pyx_v_socket_id); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 67, __pyx_L1_error)
  __pyx_v_c_returned_str = grpc_channelz_get_socket(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":68
 * def channelz_get_socket(socket_id):
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the socket, please ensure your' \
 *                          ' socket_id==%s is valid' % (socket_id))
 */
  __pyx_t_2 = (__pyx_v_c_returned_str == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":70
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the socket, please ensure your' \
 *                          ' socket_id==%s is valid' % (socket_id))             # <<<<<<<<<<<<<<
 *     return c_returned_str
 */
    __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Failed_to_get_the_socket_please, __pyx_v_socket_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":69
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the socket, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' socket_id==%s is valid' % (socket_id))
 *     return c_returned_str
 */
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 69, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(13, 69, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":68
 * def channelz_get_socket(socket_id):
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the socket, please ensure your' \
 *                          ' socket_id==%s is valid' % (socket_id))
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":71
 *         raise ValueError('Failed to get the socket, please ensure your' \
 *                          ' socket_id==%s is valid' % (socket_id))
 *     return c_returned_str             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_c_returned_str); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":66
 *     return c_returned_str
 * 
 * def channelz_get_socket(socket_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)
 *     if c_returned_str == NULL:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_socket", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":16
 * 
 * 
 * def dump_xds_configs():             # <<<<<<<<<<<<<<
 *     cdef grpc_slice client_config_in_slice
 *     with nogil:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15dump_xds_configs(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15dump_xds_configs = {"dump_xds_configs", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_15dump_xds_configs, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15dump_xds_configs(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("dump_xds_configs (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14dump_xds_configs(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14dump_xds_configs(CYTHON_UNUSED PyObject *__pyx_self) {
  grpc_slice __pyx_v_client_config_in_slice;
  PyObject *__pyx_v_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("dump_xds_configs", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":18
 * def dump_xds_configs():
 *     cdef grpc_slice client_config_in_slice
 *     with nogil:             # <<<<<<<<<<<<<<
 *         client_config_in_slice = grpc_dump_xds_configs()
 *     cdef bytes result = _slice_bytes(client_config_in_slice)
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":19
 *     cdef grpc_slice client_config_in_slice
 *     with nogil:
 *         client_config_in_slice = grpc_dump_xds_configs()             # <<<<<<<<<<<<<<
 *     cdef bytes result = _slice_bytes(client_config_in_slice)
 *     return result
 */
        __pyx_v_client_config_in_slice = grpc_dump_xds_configs();
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":18
 * def dump_xds_configs():
 *     cdef grpc_slice client_config_in_slice
 *     with nogil:             # <<<<<<<<<<<<<<
 *         client_config_in_slice = grpc_dump_xds_configs()
 *     cdef bytes result = _slice_bytes(client_config_in_slice)
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":20
 *     with nogil:
 *         client_config_in_slice = grpc_dump_xds_configs()
 *     cdef bytes result = _slice_bytes(client_config_in_slice)             # <<<<<<<<<<<<<<
 *     return result
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(__pyx_v_client_config_in_slice); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":21
 *         client_config_in_slice = grpc_dump_xds_configs()
 *     cdef bytes result = _slice_bytes(client_config_in_slice)
 *     return result             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":16
 * 
 * 
 * def dump_xds_configs():             # <<<<<<<<<<<<<<
 *     cdef grpc_slice client_config_in_slice
 *     with nogil:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.dump_xds_configs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":16
 * 
 * 
 * def _spawn_callback_in_thread(cb_func, args):             # <<<<<<<<<<<<<<
 *   t = ForkManagedThread(target=cb_func, args=args)
 *   t.setDaemon(True)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17_spawn_callback_in_thread(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17_spawn_callback_in_thread = {"_spawn_callback_in_thread", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17_spawn_callback_in_thread, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17_spawn_callback_in_thread(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_cb_func = 0;
  PyObject *__pyx_v_args = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_spawn_callback_in_thread (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cb_func,&__pyx_n_s_args,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_cb_func)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_args)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 16, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_spawn_callback_in_thread", 1, 2, 2, 1); __PYX_ERR(5, 16, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_spawn_callback_in_thread") < 0)) __PYX_ERR(5, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_cb_func = values[0];
    __pyx_v_args = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_spawn_callback_in_thread", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._spawn_callback_in_thread", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_spawn_callback_in_thread(__pyx_self, __pyx_v_cb_func, __pyx_v_args);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_spawn_callback_in_thread(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cb_func, PyObject *__pyx_v_args) {
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_spawn_callback_in_thread", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":17
 * 
 * def _spawn_callback_in_thread(cb_func, args):
 *   t = ForkManagedThread(target=cb_func, args=args)             # <<<<<<<<<<<<<<
 *   t.setDaemon(True)
 *   t.start()
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ForkManagedThread); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_target, __pyx_v_cb_func) < 0) __PYX_ERR(5, 17, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_args, __pyx_v_args) < 0) __PYX_ERR(5, 17, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_t = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":18
 * def _spawn_callback_in_thread(cb_func, args):
 *   t = ForkManagedThread(target=cb_func, args=args)
 *   t.setDaemon(True)             # <<<<<<<<<<<<<<
 *   t.start()
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_t, __pyx_n_s_setDaemon); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, Py_True};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 18, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":19
 *   t = ForkManagedThread(target=cb_func, args=args)
 *   t.setDaemon(True)
 *   t.start()             # <<<<<<<<<<<<<<
 * 
 * async_callback_func = _spawn_callback_in_thread
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_t, __pyx_n_s_start); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 19, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":16
 * 
 * 
 * def _spawn_callback_in_thread(cb_func, args):             # <<<<<<<<<<<<<<
 *   t = ForkManagedThread(target=cb_func, args=args)
 *   t.setDaemon(True)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._spawn_callback_in_thread", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":23
 * async_callback_func = _spawn_callback_in_thread
 * 
 * def set_async_callback_func(callback_func):             # <<<<<<<<<<<<<<
 *   global async_callback_func
 *   async_callback_func = callback_func
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19set_async_callback_func(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19set_async_callback_func = {"set_async_callback_func", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19set_async_callback_func, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19set_async_callback_func(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_callback_func = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_async_callback_func (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_callback_func,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_callback_func)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 23, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_async_callback_func") < 0)) __PYX_ERR(5, 23, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_callback_func = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_async_callback_func", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 23, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.set_async_callback_func", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18set_async_callback_func(__pyx_self, __pyx_v_callback_func);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18set_async_callback_func(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_callback_func) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_async_callback_func", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":25
 * def set_async_callback_func(callback_func):
 *   global async_callback_func
 *   async_callback_func = callback_func             # <<<<<<<<<<<<<<
 * 
 * def _spawn_callback_async(callback, args):
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_async_callback_func, __pyx_v_callback_func) < 0) __PYX_ERR(5, 25, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":23
 * async_callback_func = _spawn_callback_in_thread
 * 
 * def set_async_callback_func(callback_func):             # <<<<<<<<<<<<<<
 *   global async_callback_func
 *   async_callback_func = callback_func
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.set_async_callback_func", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":27
 *   async_callback_func = callback_func
 * 
 * def _spawn_callback_async(callback, args):             # <<<<<<<<<<<<<<
 *   async_callback_func(callback, args)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_spawn_callback_async(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21_spawn_callback_async = {"_spawn_callback_async", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_spawn_callback_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_spawn_callback_async(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_callback = 0;
  PyObject *__pyx_v_args = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_spawn_callback_async (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_callback,&__pyx_n_s_args,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_callback)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 27, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_args)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 27, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_spawn_callback_async", 1, 2, 2, 1); __PYX_ERR(5, 27, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_spawn_callback_async") < 0)) __PYX_ERR(5, 27, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_callback = values[0];
    __pyx_v_args = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_spawn_callback_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 27, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._spawn_callback_async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_spawn_callback_async(__pyx_self, __pyx_v_callback, __pyx_v_args);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_spawn_callback_async(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_callback, PyObject *__pyx_v_args) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_spawn_callback_async", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":28
 * 
 * def _spawn_callback_async(callback, args):
 *   async_callback_func(callback, args)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_async_callback_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_callback, __pyx_v_args};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":27
 *   async_callback_func = callback_func
 * 
 * def _spawn_callback_async(callback, args):             # <<<<<<<<<<<<<<
 *   async_callback_func(callback, args)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._spawn_callback_async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":33
 * cdef class CallCredentials:
 * 
 *   cdef grpc_call_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
 */

static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc_15CallCredentials_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_self) {
  grpc_call_credentials *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":34
 * 
 *   cdef grpc_call_credentials *c(self) except *:
 *     raise NotImplementedError()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(5, 34, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":33
 * cdef class CallCredentials:
 * 
 *   cdef grpc_call_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallCredentials.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CallCredentials_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CallCredentials___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallCredentials___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_c_credentials_cannot_be_con, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CallCredentials_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CallCredentials_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallCredentials_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_c_credentials_cannot_be_con, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":47
 *   cdef size_t metadata_count
 *   cdef grpc_metadata *c_metadata
 *   def callback(metadata, grpc_status_code status, bytes error_details):             # <<<<<<<<<<<<<<
 *     cdef char* c_error_details = NULL
 *     if error_details is not None:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13_get_metadata_1callback(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_13_get_metadata_1callback = {"callback", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13_get_metadata_1callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13_get_metadata_1callback(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_metadata = 0;
  grpc_status_code __pyx_v_status;
  PyObject *__pyx_v_error_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("callback (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_metadata,&__pyx_n_s_status,&__pyx_n_s_error_details,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 47, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_status)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 47, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("callback", 1, 3, 3, 1); __PYX_ERR(5, 47, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_error_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 47, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("callback", 1, 3, 3, 2); __PYX_ERR(5, 47, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "callback") < 0)) __PYX_ERR(5, 47, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_metadata = values[0];
    __pyx_v_status = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(values[1])); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 47, __pyx_L3_error)
    __pyx_v_error_details = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("callback", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 47, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._get_metadata.callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_error_details), (&PyBytes_Type), 1, "error_details", 1))) __PYX_ERR(5, 47, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_13_get_metadata_callback(__pyx_self, __pyx_v_metadata, __pyx_v_status, __pyx_v_error_details);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13_get_metadata_callback(PyObject *__pyx_self, PyObject *__pyx_v_metadata, grpc_status_code __pyx_v_status, PyObject *__pyx_v_error_details) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *__pyx_outer_scope;
  char *__pyx_v_c_error_details;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  char *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("callback", 1);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":48
 *   cdef grpc_metadata *c_metadata
 *   def callback(metadata, grpc_status_code status, bytes error_details):
 *     cdef char* c_error_details = NULL             # <<<<<<<<<<<<<<
 *     if error_details is not None:
 *       c_error_details = <char*> error_details
 */
  __pyx_v_c_error_details = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":49
 *   def callback(metadata, grpc_status_code status, bytes error_details):
 *     cdef char* c_error_details = NULL
 *     if error_details is not None:             # <<<<<<<<<<<<<<
 *       c_error_details = <char*> error_details
 *     if status == StatusCode.ok:
 */
  __pyx_t_1 = (__pyx_v_error_details != ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":50
 *     cdef char* c_error_details = NULL
 *     if error_details is not None:
 *       c_error_details = <char*> error_details             # <<<<<<<<<<<<<<
 *     if status == StatusCode.ok:
 *       _store_c_metadata(metadata, &c_metadata, &metadata_count)
 */
    if (unlikely(__pyx_v_error_details == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
      __PYX_ERR(5, 50, __pyx_L1_error)
    }
    __pyx_t_2 = __Pyx_PyBytes_AsWritableString(__pyx_v_error_details); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(5, 50, __pyx_L1_error)
    __pyx_v_c_error_details = ((char *)__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":49
 *   def callback(metadata, grpc_status_code status, bytes error_details):
 *     cdef char* c_error_details = NULL
 *     if error_details is not None:             # <<<<<<<<<<<<<<
 *       c_error_details = <char*> error_details
 *     if status == StatusCode.ok:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":51
 *     if error_details is not None:
 *       c_error_details = <char*> error_details
 *     if status == StatusCode.ok:             # <<<<<<<<<<<<<<
 *       _store_c_metadata(metadata, &c_metadata, &metadata_count)
 *       with nogil:
 */
  __pyx_t_3 = __Pyx_PyInt_From_grpc_status_code(__pyx_v_status); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ok); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(5, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":52
 *       c_error_details = <char*> error_details
 *     if status == StatusCode.ok:
 *       _store_c_metadata(metadata, &c_metadata, &metadata_count)             # <<<<<<<<<<<<<<
 *       with nogil:
 *         cb(user_data, c_metadata, metadata_count, status, NULL)
 */
    __pyx_f_4grpc_7_cython_6cygrpc__store_c_metadata(__pyx_v_metadata, (&__pyx_cur_scope->__pyx_v_c_metadata), (&__pyx_cur_scope->__pyx_v_metadata_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 52, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":53
 *     if status == StatusCode.ok:
 *       _store_c_metadata(metadata, &c_metadata, &metadata_count)
 *       with nogil:             # <<<<<<<<<<<<<<
 *         cb(user_data, c_metadata, metadata_count, status, NULL)
 *       _release_c_metadata(c_metadata, metadata_count)
 */
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        #endif
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":54
 *       _store_c_metadata(metadata, &c_metadata, &metadata_count)
 *       with nogil:
 *         cb(user_data, c_metadata, metadata_count, status, NULL)             # <<<<<<<<<<<<<<
 *       _release_c_metadata(c_metadata, metadata_count)
 *     else:
 */
          __pyx_cur_scope->__pyx_v_cb(__pyx_cur_scope->__pyx_v_user_data, __pyx_cur_scope->__pyx_v_c_metadata, __pyx_cur_scope->__pyx_v_metadata_count, __pyx_v_status, NULL);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":53
 *     if status == StatusCode.ok:
 *       _store_c_metadata(metadata, &c_metadata, &metadata_count)
 *       with nogil:             # <<<<<<<<<<<<<<
 *         cb(user_data, c_metadata, metadata_count, status, NULL)
 *       _release_c_metadata(c_metadata, metadata_count)
 */
        /*finally:*/ {
          /*normal exit:*/{
            #ifdef WITH_THREAD
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L7;
          }
          __pyx_L7:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":55
 *       with nogil:
 *         cb(user_data, c_metadata, metadata_count, status, NULL)
 *       _release_c_metadata(c_metadata, metadata_count)             # <<<<<<<<<<<<<<
 *     else:
 *       with nogil:
 */
    __pyx_f_4grpc_7_cython_6cygrpc__release_c_metadata(__pyx_cur_scope->__pyx_v_c_metadata, __pyx_cur_scope->__pyx_v_metadata_count); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 55, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":51
 *     if error_details is not None:
 *       c_error_details = <char*> error_details
 *     if status == StatusCode.ok:             # <<<<<<<<<<<<<<
 *       _store_c_metadata(metadata, &c_metadata, &metadata_count)
 *       with nogil:
 */
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":57
 *       _release_c_metadata(c_metadata, metadata_count)
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         cb(user_data, NULL, 0, status, c_error_details)
 *   args = context.service_url, context.method_name, callback,
 */
  /*else*/ {
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        #endif
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":58
 *     else:
 *       with nogil:
 *         cb(user_data, NULL, 0, status, c_error_details)             # <<<<<<<<<<<<<<
 *   args = context.service_url, context.method_name, callback,
 *   plugin = <object>state
 */
          __pyx_cur_scope->__pyx_v_cb(__pyx_cur_scope->__pyx_v_user_data, NULL, 0, __pyx_v_status, __pyx_v_c_error_details);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":57
 *       _release_c_metadata(c_metadata, metadata_count)
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         cb(user_data, NULL, 0, status, c_error_details)
 *   args = context.service_url, context.method_name, callback,
 */
        /*finally:*/ {
          /*normal exit:*/{
            #ifdef WITH_THREAD
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L10;
          }
          __pyx_L10:;
        }
    }
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":47
 *   cdef size_t metadata_count
 *   cdef grpc_metadata *c_metadata
 *   def callback(metadata, grpc_status_code status, bytes error_details):             # <<<<<<<<<<<<<<
 *     cdef char* c_error_details = NULL
 *     if error_details is not None:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._get_metadata.callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":37
 * 
 * 
 * cdef int _get_metadata(void *state,             # <<<<<<<<<<<<<<
 *                        grpc_auth_metadata_context context,
 *                        grpc_credentials_plugin_metadata_cb cb,
 */

static int __pyx_f_4grpc_7_cython_6cygrpc__get_metadata(void *__pyx_v_state, grpc_auth_metadata_context __pyx_v_context, grpc_credentials_plugin_metadata_cb __pyx_v_cb, void *__pyx_v_user_data, CYTHON_UNUSED grpc_metadata *__pyx_v_creds_md, CYTHON_UNUSED size_t *__pyx_v_num_creds_md, CYTHON_UNUSED grpc_status_code *__pyx_v_status, CYTHON_UNUSED char const **__pyx_v_error_details) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *__pyx_cur_scope;
  PyObject *__pyx_v_callback = 0;
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_v_plugin = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("_get_metadata", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 37, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_cb = __pyx_v_cb;
  __pyx_cur_scope->__pyx_v_user_data = __pyx_v_user_data;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":47
 *   cdef size_t metadata_count
 *   cdef grpc_metadata *c_metadata
 *   def callback(metadata, grpc_status_code status, bytes error_details):             # <<<<<<<<<<<<<<
 *     cdef char* c_error_details = NULL
 *     if error_details is not None:
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_13_get_metadata_1callback, 0, __pyx_n_s_get_metadata_locals_callback, ((PyObject*)__pyx_cur_scope), __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__22)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_callback = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":59
 *       with nogil:
 *         cb(user_data, NULL, 0, status, c_error_details)
 *   args = context.service_url, context.method_name, callback,             # <<<<<<<<<<<<<<
 *   plugin = <object>state
 *   if plugin._stored_ctx is not None:
 */
  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_context.service_url); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_context.method_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(5, 59, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(5, 59, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_callback);
  __Pyx_GIVEREF(__pyx_v_callback);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_callback)) __PYX_ERR(5, 59, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_args = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":60
 *         cb(user_data, NULL, 0, status, c_error_details)
 *   args = context.service_url, context.method_name, callback,
 *   plugin = <object>state             # <<<<<<<<<<<<<<
 *   if plugin._stored_ctx is not None:
 *     plugin._stored_ctx.copy().run(_spawn_callback_async, plugin, args)
 */
  __pyx_t_3 = ((PyObject *)__pyx_v_state);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_v_plugin = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":61
 *   args = context.service_url, context.method_name, callback,
 *   plugin = <object>state
 *   if plugin._stored_ctx is not None:             # <<<<<<<<<<<<<<
 *     plugin._stored_ctx.copy().run(_spawn_callback_async, plugin, args)
 *   else:
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_n_s_stored_ctx); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = (__pyx_t_3 != Py_None);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":62
 *   plugin = <object>state
 *   if plugin._stored_ctx is not None:
 *     plugin._stored_ctx.copy().run(_spawn_callback_async, plugin, args)             # <<<<<<<<<<<<<<
 *   else:
 *     _spawn_callback_async(<object>state, args)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_n_s_stored_ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 62, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_copy); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 62, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 62, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_run); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 62, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_spawn_callback_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 62, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_1, __pyx_t_2, __pyx_v_plugin, __pyx_v_args};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 62, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":61
 *   args = context.service_url, context.method_name, callback,
 *   plugin = <object>state
 *   if plugin._stored_ctx is not None:             # <<<<<<<<<<<<<<
 *     plugin._stored_ctx.copy().run(_spawn_callback_async, plugin, args)
 *   else:
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":64
 *     plugin._stored_ctx.copy().run(_spawn_callback_async, plugin, args)
 *   else:
 *     _spawn_callback_async(<object>state, args)             # <<<<<<<<<<<<<<
 *   return 0  # Asynchronous return
 * 
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_spawn_callback_async); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 64, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_state), __pyx_v_args};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 64, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":65
 *   else:
 *     _spawn_callback_async(<object>state, args)
 *   return 0  # Asynchronous return             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":37
 * 
 * 
 * cdef int _get_metadata(void *state,             # <<<<<<<<<<<<<<
 *                        grpc_auth_metadata_context context,
 *                        grpc_credentials_plugin_metadata_cb cb,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._get_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_callback);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_plugin);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":68
 * 
 * 
 * cdef void _destroy(void *state) except * with gil:             # <<<<<<<<<<<<<<
 *   cpython.Py_DECREF(<object>state)
 *   grpc_shutdown()
 */

static void __pyx_f_4grpc_7_cython_6cygrpc__destroy(void *__pyx_v_state) {
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":69
 * 
 * cdef void _destroy(void *state) except * with gil:
 *   cpython.Py_DECREF(<object>state)             # <<<<<<<<<<<<<<
 *   grpc_shutdown()
 * 
 */
  Py_DECREF(((PyObject *)__pyx_v_state));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":70
 * cdef void _destroy(void *state) except * with gil:
 *   cpython.Py_DECREF(<object>state)
 *   grpc_shutdown()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  grpc_shutdown();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":68
 * 
 * 
 * cdef void _destroy(void *state) except * with gil:             # <<<<<<<<<<<<<<
 *   cpython.Py_DECREF(<object>state)
 *   grpc_shutdown()
 */

  /* function exit code */
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":75
 * cdef class MetadataPluginCallCredentials(CallCredentials):
 * 
 *   def __cinit__(self, metadata_plugin, name):             # <<<<<<<<<<<<<<
 *     self._metadata_plugin = metadata_plugin
 *     self._name = name
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_metadata_plugin = 0;
  PyObject *__pyx_v_name = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_metadata_plugin,&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_metadata_plugin)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 75, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 75, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(5, 75, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(5, 75, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_metadata_plugin = values[0];
    __pyx_v_name = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 75, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.MetadataPluginCallCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)__pyx_v_self), __pyx_v_metadata_plugin, __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self, PyObject *__pyx_v_metadata_plugin, PyObject *__pyx_v_name) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":76
 * 
 *   def __cinit__(self, metadata_plugin, name):
 *     self._metadata_plugin = metadata_plugin             # <<<<<<<<<<<<<<
 *     self._name = name
 * 
 */
  __Pyx_INCREF(__pyx_v_metadata_plugin);
  __Pyx_GIVEREF(__pyx_v_metadata_plugin);
  __Pyx_GOTREF(__pyx_v_self->_metadata_plugin);
  __Pyx_DECREF(__pyx_v_self->_metadata_plugin);
  __pyx_v_self->_metadata_plugin = __pyx_v_metadata_plugin;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":77
 *   def __cinit__(self, metadata_plugin, name):
 *     self._metadata_plugin = metadata_plugin
 *     self._name = name             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call_credentials *c(self) except *:
 */
  if (!(likely(PyBytes_CheckExact(__pyx_v_name))||((__pyx_v_name) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_name))) __PYX_ERR(5, 77, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_name;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_name);
  __Pyx_DECREF(__pyx_v_self->_name);
  __pyx_v_self->_name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":75
 * cdef class MetadataPluginCallCredentials(CallCredentials):
 * 
 *   def __cinit__(self, metadata_plugin, name):             # <<<<<<<<<<<<<<
 *     self._metadata_plugin = metadata_plugin
 *     self._name = name
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.MetadataPluginCallCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":79
 *     self._name = name
 * 
 *   cdef grpc_call_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_metadata_credentials_plugin c_metadata_plugin
 *     c_metadata_plugin.get_metadata = _get_metadata
 */

static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self) {
  grpc_metadata_credentials_plugin __pyx_v_c_metadata_plugin;
  grpc_call_credentials *__pyx_r;
  __Pyx_RefNannyDeclarations
  char const *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":81
 *   cdef grpc_call_credentials *c(self) except *:
 *     cdef grpc_metadata_credentials_plugin c_metadata_plugin
 *     c_metadata_plugin.get_metadata = _get_metadata             # <<<<<<<<<<<<<<
 *     c_metadata_plugin.destroy = _destroy
 *     c_metadata_plugin.state = <void *>self._metadata_plugin
 */
  __pyx_v_c_metadata_plugin.get_metadata = __pyx_f_4grpc_7_cython_6cygrpc__get_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":82
 *     cdef grpc_metadata_credentials_plugin c_metadata_plugin
 *     c_metadata_plugin.get_metadata = _get_metadata
 *     c_metadata_plugin.destroy = _destroy             # <<<<<<<<<<<<<<
 *     c_metadata_plugin.state = <void *>self._metadata_plugin
 *     c_metadata_plugin.type = self._name
 */
  __pyx_v_c_metadata_plugin.destroy = __pyx_f_4grpc_7_cython_6cygrpc__destroy;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":83
 *     c_metadata_plugin.get_metadata = _get_metadata
 *     c_metadata_plugin.destroy = _destroy
 *     c_metadata_plugin.state = <void *>self._metadata_plugin             # <<<<<<<<<<<<<<
 *     c_metadata_plugin.type = self._name
 *     cpython.Py_INCREF(self._metadata_plugin)
 */
  __pyx_v_c_metadata_plugin.state = ((void *)__pyx_v_self->_metadata_plugin);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":84
 *     c_metadata_plugin.destroy = _destroy
 *     c_metadata_plugin.state = <void *>self._metadata_plugin
 *     c_metadata_plugin.type = self._name             # <<<<<<<<<<<<<<
 *     cpython.Py_INCREF(self._metadata_plugin)
 *     fork_handlers_and_grpc_init()
 */
  if (unlikely(__pyx_v_self->_name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(5, 84, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_self->_name); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(5, 84, __pyx_L1_error)
  __pyx_v_c_metadata_plugin.type = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":85
 *     c_metadata_plugin.state = <void *>self._metadata_plugin
 *     c_metadata_plugin.type = self._name
 *     cpython.Py_INCREF(self._metadata_plugin)             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     # TODO(yihuazhang): Expose min_security_level via the Python API so that
 */
  __pyx_t_2 = __pyx_v_self->_metadata_plugin;
  __Pyx_INCREF(__pyx_t_2);
  Py_INCREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":86
 *     c_metadata_plugin.type = self._name
 *     cpython.Py_INCREF(self._metadata_plugin)
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     # TODO(yihuazhang): Expose min_security_level via the Python API so that
 *     # applications can decide what minimum security level their plugins require.
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":89
 *     # TODO(yihuazhang): Expose min_security_level via the Python API so that
 *     # applications can decide what minimum security level their plugins require.
 *     return grpc_metadata_credentials_create_from_plugin(c_metadata_plugin, GRPC_PRIVACY_AND_INTEGRITY, NULL)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = grpc_metadata_credentials_create_from_plugin(__pyx_v_c_metadata_plugin, GRPC_PRIVACY_AND_INTEGRITY, NULL);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":79
 *     self._name = name
 * 
 *   cdef grpc_call_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_metadata_credentials_plugin c_metadata_plugin
 *     c_metadata_plugin.get_metadata = _get_metadata
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.MetadataPluginCallCredentials.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":36
 * cdef class MetadataPluginCallCredentials(CallCredentials):
 * 
 *   cdef readonly object _metadata_plugin             # <<<<<<<<<<<<<<
 *   cdef readonly bytes _name
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_16_metadata_plugin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_16_metadata_plugin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_16_metadata_plugin___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_16_metadata_plugin___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_metadata_plugin);
  __pyx_r = __pyx_v_self->_metadata_plugin;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":37
 * 
 *   cdef readonly object _metadata_plugin
 *   cdef readonly bytes _name             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call_credentials *c(self) except *
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5_name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5_name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5_name___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5_name___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_name);
  __pyx_r = __pyx_v_self->_name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.MetadataPluginCallCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.MetadataPluginCallCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.MetadataPluginCallCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":92
 * 
 * 
 * cdef grpc_call_credentials *_composition(call_credentialses):             # <<<<<<<<<<<<<<
 *   call_credentials_iterator = iter(call_credentialses)
 *   cdef CallCredentials composition = next(call_credentials_iterator)
 */

static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc__composition(PyObject *__pyx_v_call_credentialses) {
  PyObject *__pyx_v_call_credentials_iterator = NULL;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_composition = 0;
  grpc_call_credentials *__pyx_v_c_composition;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_additional_call_credentials = 0;
  grpc_call_credentials *__pyx_v_c_additional_call_credentials;
  grpc_call_credentials *__pyx_v_c_next_composition;
  grpc_call_credentials *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  grpc_call_credentials *__pyx_t_2;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_composition", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":93
 * 
 * cdef grpc_call_credentials *_composition(call_credentialses):
 *   call_credentials_iterator = iter(call_credentialses)             # <<<<<<<<<<<<<<
 *   cdef CallCredentials composition = next(call_credentials_iterator)
 *   cdef grpc_call_credentials *c_composition = composition.c()
 */
  __pyx_t_1 = PyObject_GetIter(__pyx_v_call_credentialses); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_call_credentials_iterator = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":94
 * cdef grpc_call_credentials *_composition(call_credentialses):
 *   call_credentials_iterator = iter(call_credentialses)
 *   cdef CallCredentials composition = next(call_credentials_iterator)             # <<<<<<<<<<<<<<
 *   cdef grpc_call_credentials *c_composition = composition.c()
 *   cdef CallCredentials additional_call_credentials
 */
  __pyx_t_1 = __Pyx_PyIter_Next(__pyx_v_call_credentials_iterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials))))) __PYX_ERR(5, 94, __pyx_L1_error)
  __pyx_v_composition = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":95
 *   call_credentials_iterator = iter(call_credentialses)
 *   cdef CallCredentials composition = next(call_credentials_iterator)
 *   cdef grpc_call_credentials *c_composition = composition.c()             # <<<<<<<<<<<<<<
 *   cdef CallCredentials additional_call_credentials
 *   cdef grpc_call_credentials *c_additional_call_credentials
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_composition->__pyx_vtab)->c(__pyx_v_composition); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 95, __pyx_L1_error)
  __pyx_v_c_composition = __pyx_t_2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":99
 *   cdef grpc_call_credentials *c_additional_call_credentials
 *   cdef grpc_call_credentials *c_next_composition
 *   for additional_call_credentials in call_credentials_iterator:             # <<<<<<<<<<<<<<
 *     c_additional_call_credentials = additional_call_credentials.c()
 *     c_next_composition = grpc_composite_call_credentials_create(
 */
  if (likely(PyList_CheckExact(__pyx_v_call_credentials_iterator)) || PyTuple_CheckExact(__pyx_v_call_credentials_iterator)) {
    __pyx_t_1 = __pyx_v_call_credentials_iterator; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_call_credentials_iterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 99, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 99, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(5, 99, __pyx_L1_error)
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 99, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 99, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(5, 99, __pyx_L1_error)
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 99, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_4(__pyx_t_1);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 99, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials))))) __PYX_ERR(5, 99, __pyx_L1_error)
    __Pyx_XDECREF_SET(__pyx_v_additional_call_credentials, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_t_5));
    __pyx_t_5 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":100
 *   cdef grpc_call_credentials *c_next_composition
 *   for additional_call_credentials in call_credentials_iterator:
 *     c_additional_call_credentials = additional_call_credentials.c()             # <<<<<<<<<<<<<<
 *     c_next_composition = grpc_composite_call_credentials_create(
 *         c_composition, c_additional_call_credentials, NULL)
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_additional_call_credentials->__pyx_vtab)->c(__pyx_v_additional_call_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 100, __pyx_L1_error)
    __pyx_v_c_additional_call_credentials = __pyx_t_2;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":101
 *   for additional_call_credentials in call_credentials_iterator:
 *     c_additional_call_credentials = additional_call_credentials.c()
 *     c_next_composition = grpc_composite_call_credentials_create(             # <<<<<<<<<<<<<<
 *         c_composition, c_additional_call_credentials, NULL)
 *     grpc_call_credentials_release(c_composition)
 */
    __pyx_v_c_next_composition = grpc_composite_call_credentials_create(__pyx_v_c_composition, __pyx_v_c_additional_call_credentials, NULL);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":103
 *     c_next_composition = grpc_composite_call_credentials_create(
 *         c_composition, c_additional_call_credentials, NULL)
 *     grpc_call_credentials_release(c_composition)             # <<<<<<<<<<<<<<
 *     grpc_call_credentials_release(c_additional_call_credentials)
 *     c_composition = c_next_composition
 */
    grpc_call_credentials_release(__pyx_v_c_composition);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":104
 *         c_composition, c_additional_call_credentials, NULL)
 *     grpc_call_credentials_release(c_composition)
 *     grpc_call_credentials_release(c_additional_call_credentials)             # <<<<<<<<<<<<<<
 *     c_composition = c_next_composition
 *   return c_composition
 */
    grpc_call_credentials_release(__pyx_v_c_additional_call_credentials);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":105
 *     grpc_call_credentials_release(c_composition)
 *     grpc_call_credentials_release(c_additional_call_credentials)
 *     c_composition = c_next_composition             # <<<<<<<<<<<<<<
 *   return c_composition
 * 
 */
    __pyx_v_c_composition = __pyx_v_c_next_composition;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":99
 *   cdef grpc_call_credentials *c_additional_call_credentials
 *   cdef grpc_call_credentials *c_next_composition
 *   for additional_call_credentials in call_credentials_iterator:             # <<<<<<<<<<<<<<
 *     c_additional_call_credentials = additional_call_credentials.c()
 *     c_next_composition = grpc_composite_call_credentials_create(
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":106
 *     grpc_call_credentials_release(c_additional_call_credentials)
 *     c_composition = c_next_composition
 *   return c_composition             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_c_composition;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":92
 * 
 * 
 * cdef grpc_call_credentials *_composition(call_credentialses):             # <<<<<<<<<<<<<<
 *   call_credentials_iterator = iter(call_credentialses)
 *   cdef CallCredentials composition = next(call_credentials_iterator)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._composition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_call_credentials_iterator);
  __Pyx_XDECREF((PyObject *)__pyx_v_composition);
  __Pyx_XDECREF((PyObject *)__pyx_v_additional_call_credentials);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":111
 * cdef class CompositeCallCredentials(CallCredentials):
 * 
 *   def __cinit__(self, call_credentialses):             # <<<<<<<<<<<<<<
 *     self._call_credentialses = call_credentialses
 * 
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_call_credentialses = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_call_credentialses,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call_credentialses)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 111, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(5, 111, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_call_credentialses = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 111, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeCallCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)__pyx_v_self), __pyx_v_call_credentialses);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self, PyObject *__pyx_v_call_credentialses) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":112
 * 
 *   def __cinit__(self, call_credentialses):
 *     self._call_credentialses = call_credentialses             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call_credentials *c(self) except *:
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v_call_credentialses))||((__pyx_v_call_credentialses) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v_call_credentialses))) __PYX_ERR(5, 112, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_call_credentialses;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_call_credentialses);
  __Pyx_DECREF(__pyx_v_self->_call_credentialses);
  __pyx_v_self->_call_credentialses = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":111
 * cdef class CompositeCallCredentials(CallCredentials):
 * 
 *   def __cinit__(self, call_credentialses):             # <<<<<<<<<<<<<<
 *     self._call_credentialses = call_credentialses
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeCallCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":114
 *     self._call_credentialses = call_credentialses
 * 
 *   cdef grpc_call_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     return _composition(self._call_credentialses)
 * 
 */

static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self) {
  grpc_call_credentials *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  grpc_call_credentials *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":115
 * 
 *   cdef grpc_call_credentials *c(self) except *:
 *     return _composition(self._call_credentialses)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __pyx_v_self->_call_credentialses;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__composition(__pyx_t_1); if (unlikely(__pyx_t_2 == ((grpc_call_credentials *)NULL) && PyErr_Occurred())) __PYX_ERR(5, 115, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":114
 *     self._call_credentialses = call_credentialses
 * 
 *   cdef grpc_call_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     return _composition(self._call_credentialses)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeCallCredentials.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":47
 * cdef class CompositeCallCredentials(CallCredentials):
 * 
 *   cdef readonly tuple _call_credentialses             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call_credentials *c(self) except *
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_19_call_credentialses_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_19_call_credentialses_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_19_call_credentialses___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_19_call_credentialses___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_call_credentialses);
  __pyx_r = __pyx_v_self->_call_credentialses;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeCallCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeCallCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeCallCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":120
 * cdef class ChannelCredentials:
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
 */

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_18ChannelCredentials_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_self) {
  grpc_channel_credentials *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":121
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 *     raise NotImplementedError()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(5, 121, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":120
 * cdef class ChannelCredentials:
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ChannelCredentials.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18ChannelCredentials_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18ChannelCredentials___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18ChannelCredentials___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __Pyx_INCREF(__pyx_empty_tuple);
  __pyx_v_state = __pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict)) __PYX_ERR(10, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_ChannelCredential); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_238750788)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ChannelCredentials__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_ChannelCredential); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_238750788)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ChannelCredentials__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18ChannelCredentials_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18ChannelCredentials_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18ChannelCredentials_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ChannelCredentials__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_ChannelCredentials__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ChannelCredentials__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":126
 * cdef class SSLSessionCacheLRU:
 * 
 *   def __cinit__(self, capacity):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self._cache = grpc_ssl_session_cache_create_lru(capacity)
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_capacity = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_capacity,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_capacity)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 126, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(5, 126, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_capacity = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 126, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLSessionCacheLRU.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *)__pyx_v_self), __pyx_v_capacity);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self, PyObject *__pyx_v_capacity) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":127
 * 
 *   def __cinit__(self, capacity):
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     self._cache = grpc_ssl_session_cache_create_lru(capacity)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":128
 *   def __cinit__(self, capacity):
 *     fork_handlers_and_grpc_init()
 *     self._cache = grpc_ssl_session_cache_create_lru(capacity)             # <<<<<<<<<<<<<<
 * 
 *   def __int__(self):
 */
  __pyx_t_5 = __Pyx_PyInt_As_size_t(__pyx_v_capacity); if (unlikely((__pyx_t_5 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(5, 128, __pyx_L1_error)
  __pyx_v_self->_cache = grpc_ssl_session_cache_create_lru(__pyx_t_5);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":126
 * cdef class SSLSessionCacheLRU:
 * 
 *   def __cinit__(self, capacity):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self._cache = grpc_ssl_session_cache_create_lru(capacity)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLSessionCacheLRU.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":130
 *     self._cache = grpc_ssl_session_cache_create_lru(capacity)
 * 
 *   def __int__(self):             # <<<<<<<<<<<<<<
 *     return <uintptr_t>self._cache
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_3__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_3__int__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_2__int__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_2__int__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":131
 * 
 *   def __int__(self):
 *     return <uintptr_t>self._cache             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((__pyx_t_4grpc_7_cython_6cygrpc_uintptr_t)__pyx_v_self->_cache)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":130
 *     self._cache = grpc_ssl_session_cache_create_lru(capacity)
 * 
 *   def __int__(self):             # <<<<<<<<<<<<<<
 *     return <uintptr_t>self._cache
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLSessionCacheLRU.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":133
 *     return <uintptr_t>self._cache
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self._cache != NULL:
 *         grpc_ssl_session_cache_destroy(self._cache)
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_5__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_4__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_4__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":134
 * 
 *   def __dealloc__(self):
 *     if self._cache != NULL:             # <<<<<<<<<<<<<<
 *         grpc_ssl_session_cache_destroy(self._cache)
 *     grpc_shutdown()
 */
  __pyx_t_1 = (__pyx_v_self->_cache != NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":135
 *   def __dealloc__(self):
 *     if self._cache != NULL:
 *         grpc_ssl_session_cache_destroy(self._cache)             # <<<<<<<<<<<<<<
 *     grpc_shutdown()
 * 
 */
    grpc_ssl_session_cache_destroy(__pyx_v_self->_cache);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":134
 * 
 *   def __dealloc__(self):
 *     if self._cache != NULL:             # <<<<<<<<<<<<<<
 *         grpc_ssl_session_cache_destroy(self._cache)
 *     grpc_shutdown()
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":136
 *     if self._cache != NULL:
 *         grpc_ssl_session_cache_destroy(self._cache)
 *     grpc_shutdown()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  grpc_shutdown();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":133
 *     return <uintptr_t>self._cache
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self._cache != NULL:
 *         grpc_ssl_session_cache_destroy(self._cache)
 */

  /* function exit code */
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_6__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLSessionCacheLRU.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLSessionCacheLRU.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_8__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLSessionCacheLRU.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":141
 * cdef class SSLChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, pem_root_certificates, private_key, certificate_chain):             # <<<<<<<<<<<<<<
 *     if pem_root_certificates is not None and not isinstance(pem_root_certificates, bytes):
 *       raise TypeError('expected certificate to be bytes, got %s' % (type(pem_root_certificates)))
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_pem_root_certificates = 0;
  PyObject *__pyx_v_private_key = 0;
  PyObject *__pyx_v_certificate_chain = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pem_root_certificates,&__pyx_n_s_private_key,&__pyx_n_s_certificate_chain,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pem_root_certificates)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 141, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_private_key)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 141, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 1); __PYX_ERR(5, 141, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_certificate_chain)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 141, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 2); __PYX_ERR(5, 141, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(5, 141, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
    }
    __pyx_v_pem_root_certificates = values[0];
    __pyx_v_private_key = values[1];
    __pyx_v_certificate_chain = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 141, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)__pyx_v_self), __pyx_v_pem_root_certificates, __pyx_v_private_key, __pyx_v_certificate_chain);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self, PyObject *__pyx_v_pem_root_certificates, PyObject *__pyx_v_private_key, PyObject *__pyx_v_certificate_chain) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":142
 * 
 *   def __cinit__(self, pem_root_certificates, private_key, certificate_chain):
 *     if pem_root_certificates is not None and not isinstance(pem_root_certificates, bytes):             # <<<<<<<<<<<<<<
 *       raise TypeError('expected certificate to be bytes, got %s' % (type(pem_root_certificates)))
 *     self._pem_root_certificates = pem_root_certificates
 */
  __pyx_t_2 = (__pyx_v_pem_root_certificates != Py_None);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = PyBytes_Check(__pyx_v_pem_root_certificates); 
  __pyx_t_3 = (!__pyx_t_2);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":143
 *   def __cinit__(self, pem_root_certificates, private_key, certificate_chain):
 *     if pem_root_certificates is not None and not isinstance(pem_root_certificates, bytes):
 *       raise TypeError('expected certificate to be bytes, got %s' % (type(pem_root_certificates)))             # <<<<<<<<<<<<<<
 *     self._pem_root_certificates = pem_root_certificates
 *     self._private_key = private_key
 */
    __pyx_t_4 = __Pyx_PyString_FormatSafe(__pyx_kp_s_expected_certificate_to_be_bytes, ((PyObject *)Py_TYPE(__pyx_v_pem_root_certificates))); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_Raise(__pyx_t_5, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __PYX_ERR(5, 143, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":142
 * 
 *   def __cinit__(self, pem_root_certificates, private_key, certificate_chain):
 *     if pem_root_certificates is not None and not isinstance(pem_root_certificates, bytes):             # <<<<<<<<<<<<<<
 *       raise TypeError('expected certificate to be bytes, got %s' % (type(pem_root_certificates)))
 *     self._pem_root_certificates = pem_root_certificates
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":144
 *     if pem_root_certificates is not None and not isinstance(pem_root_certificates, bytes):
 *       raise TypeError('expected certificate to be bytes, got %s' % (type(pem_root_certificates)))
 *     self._pem_root_certificates = pem_root_certificates             # <<<<<<<<<<<<<<
 *     self._private_key = private_key
 *     self._certificate_chain = certificate_chain
 */
  __Pyx_INCREF(__pyx_v_pem_root_certificates);
  __Pyx_GIVEREF(__pyx_v_pem_root_certificates);
  __Pyx_GOTREF(__pyx_v_self->_pem_root_certificates);
  __Pyx_DECREF(__pyx_v_self->_pem_root_certificates);
  __pyx_v_self->_pem_root_certificates = __pyx_v_pem_root_certificates;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":145
 *       raise TypeError('expected certificate to be bytes, got %s' % (type(pem_root_certificates)))
 *     self._pem_root_certificates = pem_root_certificates
 *     self._private_key = private_key             # <<<<<<<<<<<<<<
 *     self._certificate_chain = certificate_chain
 * 
 */
  __Pyx_INCREF(__pyx_v_private_key);
  __Pyx_GIVEREF(__pyx_v_private_key);
  __Pyx_GOTREF(__pyx_v_self->_private_key);
  __Pyx_DECREF(__pyx_v_self->_private_key);
  __pyx_v_self->_private_key = __pyx_v_private_key;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":146
 *     self._pem_root_certificates = pem_root_certificates
 *     self._private_key = private_key
 *     self._certificate_chain = certificate_chain             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 */
  __Pyx_INCREF(__pyx_v_certificate_chain);
  __Pyx_GIVEREF(__pyx_v_certificate_chain);
  __Pyx_GOTREF(__pyx_v_self->_certificate_chain);
  __Pyx_DECREF(__pyx_v_self->_certificate_chain);
  __pyx_v_self->_certificate_chain = __pyx_v_certificate_chain;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":141
 * cdef class SSLChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, pem_root_certificates, private_key, certificate_chain):             # <<<<<<<<<<<<<<
 *     if pem_root_certificates is not None and not isinstance(pem_root_certificates, bytes):
 *       raise TypeError('expected certificate to be bytes, got %s' % (type(pem_root_certificates)))
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":148
 *     self._certificate_chain = certificate_chain
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef const char *c_pem_root_certificates
 *     cdef grpc_ssl_pem_key_cert_pair c_pem_key_certificate_pair
 */

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self) {
  char const *__pyx_v_c_pem_root_certificates;
  grpc_ssl_pem_key_cert_pair __pyx_v_c_pem_key_certificate_pair;
  grpc_channel_credentials *__pyx_r;
  int __pyx_t_1;
  char const *__pyx_t_2;
  int __pyx_t_3;
  char const *__pyx_t_4;
  char const *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":151
 *     cdef const char *c_pem_root_certificates
 *     cdef grpc_ssl_pem_key_cert_pair c_pem_key_certificate_pair
 *     if self._pem_root_certificates is None:             # <<<<<<<<<<<<<<
 *       c_pem_root_certificates = NULL
 *     else:
 */
  __pyx_t_1 = (__pyx_v_self->_pem_root_certificates == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":152
 *     cdef grpc_ssl_pem_key_cert_pair c_pem_key_certificate_pair
 *     if self._pem_root_certificates is None:
 *       c_pem_root_certificates = NULL             # <<<<<<<<<<<<<<
 *     else:
 *       c_pem_root_certificates = self._pem_root_certificates
 */
    __pyx_v_c_pem_root_certificates = NULL;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":151
 *     cdef const char *c_pem_root_certificates
 *     cdef grpc_ssl_pem_key_cert_pair c_pem_key_certificate_pair
 *     if self._pem_root_certificates is None:             # <<<<<<<<<<<<<<
 *       c_pem_root_certificates = NULL
 *     else:
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":154
 *       c_pem_root_certificates = NULL
 *     else:
 *       c_pem_root_certificates = self._pem_root_certificates             # <<<<<<<<<<<<<<
 *     if self._private_key is None and self._certificate_chain is None:
 *       with nogil:
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_AsString(__pyx_v_self->_pem_root_certificates); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(5, 154, __pyx_L1_error)
    __pyx_v_c_pem_root_certificates = __pyx_t_2;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":155
 *     else:
 *       c_pem_root_certificates = self._pem_root_certificates
 *     if self._private_key is None and self._certificate_chain is None:             # <<<<<<<<<<<<<<
 *       with nogil:
 *         return grpc_ssl_credentials_create(
 */
  __pyx_t_3 = (__pyx_v_self->_private_key == Py_None);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_3 = (__pyx_v_self->_certificate_chain == Py_None);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":156
 *       c_pem_root_certificates = self._pem_root_certificates
 *     if self._private_key is None and self._certificate_chain is None:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         return grpc_ssl_credentials_create(
 *             c_pem_root_certificates, NULL, NULL, NULL)
 */
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        #endif
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":157
 *     if self._private_key is None and self._certificate_chain is None:
 *       with nogil:
 *         return grpc_ssl_credentials_create(             # <<<<<<<<<<<<<<
 *             c_pem_root_certificates, NULL, NULL, NULL)
 *     else:
 */
          __pyx_r = grpc_ssl_credentials_create(__pyx_v_c_pem_root_certificates, NULL, NULL, NULL);
          goto __pyx_L7_return;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":156
 *       c_pem_root_certificates = self._pem_root_certificates
 *     if self._private_key is None and self._certificate_chain is None:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         return grpc_ssl_credentials_create(
 *             c_pem_root_certificates, NULL, NULL, NULL)
 */
        /*finally:*/ {
          __pyx_L7_return: {
            #ifdef WITH_THREAD
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L0;
          }
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":155
 *     else:
 *       c_pem_root_certificates = self._pem_root_certificates
 *     if self._private_key is None and self._certificate_chain is None:             # <<<<<<<<<<<<<<
 *       with nogil:
 *         return grpc_ssl_credentials_create(
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":160
 *             c_pem_root_certificates, NULL, NULL, NULL)
 *     else:
 *       if self._private_key:             # <<<<<<<<<<<<<<
 *         c_pem_key_certificate_pair.private_key = self._private_key
 *       else:
 */
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->_private_key); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(5, 160, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":161
 *     else:
 *       if self._private_key:
 *         c_pem_key_certificate_pair.private_key = self._private_key             # <<<<<<<<<<<<<<
 *       else:
 *         c_pem_key_certificate_pair.private_key = NULL
 */
      __pyx_t_4 = __Pyx_PyObject_AsString(__pyx_v_self->_private_key); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(5, 161, __pyx_L1_error)
      __pyx_v_c_pem_key_certificate_pair.private_key = __pyx_t_4;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":160
 *             c_pem_root_certificates, NULL, NULL, NULL)
 *     else:
 *       if self._private_key:             # <<<<<<<<<<<<<<
 *         c_pem_key_certificate_pair.private_key = self._private_key
 *       else:
 */
      goto __pyx_L10;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":163
 *         c_pem_key_certificate_pair.private_key = self._private_key
 *       else:
 *         c_pem_key_certificate_pair.private_key = NULL             # <<<<<<<<<<<<<<
 *       if self._certificate_chain:
 *         c_pem_key_certificate_pair.certificate_chain = self._certificate_chain
 */
    /*else*/ {
      __pyx_v_c_pem_key_certificate_pair.private_key = NULL;
    }
    __pyx_L10:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":164
 *       else:
 *         c_pem_key_certificate_pair.private_key = NULL
 *       if self._certificate_chain:             # <<<<<<<<<<<<<<
 *         c_pem_key_certificate_pair.certificate_chain = self._certificate_chain
 *       else:
 */
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->_certificate_chain); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(5, 164, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":165
 *         c_pem_key_certificate_pair.private_key = NULL
 *       if self._certificate_chain:
 *         c_pem_key_certificate_pair.certificate_chain = self._certificate_chain             # <<<<<<<<<<<<<<
 *       else:
 *         c_pem_key_certificate_pair.certificate_chain = NULL
 */
      __pyx_t_5 = __Pyx_PyObject_AsString(__pyx_v_self->_certificate_chain); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) __PYX_ERR(5, 165, __pyx_L1_error)
      __pyx_v_c_pem_key_certificate_pair.cert_chain = __pyx_t_5;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":164
 *       else:
 *         c_pem_key_certificate_pair.private_key = NULL
 *       if self._certificate_chain:             # <<<<<<<<<<<<<<
 *         c_pem_key_certificate_pair.certificate_chain = self._certificate_chain
 *       else:
 */
      goto __pyx_L11;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":167
 *         c_pem_key_certificate_pair.certificate_chain = self._certificate_chain
 *       else:
 *         c_pem_key_certificate_pair.certificate_chain = NULL             # <<<<<<<<<<<<<<
 *       with nogil:
 *         return grpc_ssl_credentials_create(
 */
    /*else*/ {
      __pyx_v_c_pem_key_certificate_pair.cert_chain = NULL;
    }
    __pyx_L11:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":168
 *       else:
 *         c_pem_key_certificate_pair.certificate_chain = NULL
 *       with nogil:             # <<<<<<<<<<<<<<
 *         return grpc_ssl_credentials_create(
 *             c_pem_root_certificates, &c_pem_key_certificate_pair, NULL, NULL)
 */
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        #endif
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":169
 *         c_pem_key_certificate_pair.certificate_chain = NULL
 *       with nogil:
 *         return grpc_ssl_credentials_create(             # <<<<<<<<<<<<<<
 *             c_pem_root_certificates, &c_pem_key_certificate_pair, NULL, NULL)
 * 
 */
          __pyx_r = grpc_ssl_credentials_create(__pyx_v_c_pem_root_certificates, (&__pyx_v_c_pem_key_certificate_pair), NULL, NULL);
          goto __pyx_L12_return;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":168
 *       else:
 *         c_pem_key_certificate_pair.certificate_chain = NULL
 *       with nogil:             # <<<<<<<<<<<<<<
 *         return grpc_ssl_credentials_create(
 *             c_pem_root_certificates, &c_pem_key_certificate_pair, NULL, NULL)
 */
        /*finally:*/ {
          __pyx_L12_return: {
            #ifdef WITH_THREAD
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L0;
          }
        }
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":148
 *     self._certificate_chain = certificate_chain
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef const char *c_pem_root_certificates
 *     cdef grpc_ssl_pem_key_cert_pair c_pem_key_certificate_pair
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLChannelCredentials.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":64
 * cdef class SSLChannelCredentials(ChannelCredentials):
 * 
 *   cdef readonly object _pem_root_certificates             # <<<<<<<<<<<<<<
 *   cdef readonly object _private_key
 *   cdef readonly object _certificate_chain
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_22_pem_root_certificates_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_22_pem_root_certificates_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_22_pem_root_certificates___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_22_pem_root_certificates___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_pem_root_certificates);
  __pyx_r = __pyx_v_self->_pem_root_certificates;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":65
 * 
 *   cdef readonly object _pem_root_certificates
 *   cdef readonly object _private_key             # <<<<<<<<<<<<<<
 *   cdef readonly object _certificate_chain
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_12_private_key_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_12_private_key_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_12_private_key___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_12_private_key___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_private_key);
  __pyx_r = __pyx_v_self->_private_key;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":66
 *   cdef readonly object _pem_root_certificates
 *   cdef readonly object _private_key
 *   cdef readonly object _certificate_chain             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_18_certificate_chain_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_18_certificate_chain_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_18_certificate_chain___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_18_certificate_chain___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_certificate_chain);
  __pyx_r = __pyx_v_self->_certificate_chain;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":175
 * cdef class CompositeChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, call_credentialses, channel_credentials):             # <<<<<<<<<<<<<<
 *     self._call_credentialses = call_credentialses
 *     self._channel_credentials = channel_credentials
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_call_credentialses = 0;
  PyObject *__pyx_v_channel_credentials = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_call_credentialses,&__pyx_n_s_channel_credentials,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call_credentialses)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 175, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_channel_credentials)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 175, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(5, 175, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(5, 175, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_call_credentialses = values[0];
    __pyx_v_channel_credentials = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 175, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)__pyx_v_self), __pyx_v_call_credentialses, __pyx_v_channel_credentials);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self, PyObject *__pyx_v_call_credentialses, PyObject *__pyx_v_channel_credentials) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":176
 * 
 *   def __cinit__(self, call_credentialses, channel_credentials):
 *     self._call_credentialses = call_credentialses             # <<<<<<<<<<<<<<
 *     self._channel_credentials = channel_credentials
 * 
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v_call_credentialses))||((__pyx_v_call_credentialses) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v_call_credentialses))) __PYX_ERR(5, 176, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_call_credentialses;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_call_credentialses);
  __Pyx_DECREF(__pyx_v_self->_call_credentialses);
  __pyx_v_self->_call_credentialses = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":177
 *   def __cinit__(self, call_credentialses, channel_credentials):
 *     self._call_credentialses = call_credentialses
 *     self._channel_credentials = channel_credentials             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 */
  if (!(likely(((__pyx_v_channel_credentials) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_channel_credentials, __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials))))) __PYX_ERR(5, 177, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_channel_credentials;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_channel_credentials);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_channel_credentials);
  __pyx_v_self->_channel_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":175
 * cdef class CompositeChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, call_credentialses, channel_credentials):             # <<<<<<<<<<<<<<
 *     self._call_credentialses = call_credentialses
 *     self._channel_credentials = channel_credentials
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":179
 *     self._channel_credentials = channel_credentials
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_channel_credentials *c_channel_credentials
 *     c_channel_credentials = self._channel_credentials.c()
 */

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self) {
  grpc_channel_credentials *__pyx_v_c_channel_credentials;
  grpc_call_credentials *__pyx_v_c_call_credentials_composition;
  grpc_channel_credentials *__pyx_v_c_composition;
  grpc_channel_credentials *__pyx_r;
  __Pyx_RefNannyDeclarations
  grpc_channel_credentials *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  grpc_call_credentials *__pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":181
 *   cdef grpc_channel_credentials *c(self) except *:
 *     cdef grpc_channel_credentials *c_channel_credentials
 *     c_channel_credentials = self._channel_credentials.c()             # <<<<<<<<<<<<<<
 *     cdef grpc_call_credentials *c_call_credentials_composition = _composition(
 *         self._call_credentialses)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_v_self->_channel_credentials->__pyx_vtab)->c(__pyx_v_self->_channel_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 181, __pyx_L1_error)
  __pyx_v_c_channel_credentials = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":183
 *     c_channel_credentials = self._channel_credentials.c()
 *     cdef grpc_call_credentials *c_call_credentials_composition = _composition(
 *         self._call_credentialses)             # <<<<<<<<<<<<<<
 *     cdef grpc_channel_credentials *composition
 *     c_composition = grpc_composite_channel_credentials_create(
 */
  __pyx_t_2 = __pyx_v_self->_call_credentialses;
  __Pyx_INCREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":182
 *     cdef grpc_channel_credentials *c_channel_credentials
 *     c_channel_credentials = self._channel_credentials.c()
 *     cdef grpc_call_credentials *c_call_credentials_composition = _composition(             # <<<<<<<<<<<<<<
 *         self._call_credentialses)
 *     cdef grpc_channel_credentials *composition
 */
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__composition(__pyx_t_2); if (unlikely(__pyx_t_3 == ((grpc_call_credentials *)NULL) && PyErr_Occurred())) __PYX_ERR(5, 182, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c_call_credentials_composition = __pyx_t_3;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":185
 *         self._call_credentialses)
 *     cdef grpc_channel_credentials *composition
 *     c_composition = grpc_composite_channel_credentials_create(             # <<<<<<<<<<<<<<
 *         c_channel_credentials, c_call_credentials_composition, NULL)
 *     grpc_channel_credentials_release(c_channel_credentials)
 */
  __pyx_v_c_composition = grpc_composite_channel_credentials_create(__pyx_v_c_channel_credentials, __pyx_v_c_call_credentials_composition, NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":187
 *     c_composition = grpc_composite_channel_credentials_create(
 *         c_channel_credentials, c_call_credentials_composition, NULL)
 *     grpc_channel_credentials_release(c_channel_credentials)             # <<<<<<<<<<<<<<
 *     grpc_call_credentials_release(c_call_credentials_composition)
 *     return c_composition
 */
  grpc_channel_credentials_release(__pyx_v_c_channel_credentials);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":188
 *         c_channel_credentials, c_call_credentials_composition, NULL)
 *     grpc_channel_credentials_release(c_channel_credentials)
 *     grpc_call_credentials_release(c_call_credentials_composition)             # <<<<<<<<<<<<<<
 *     return c_composition
 * 
 */
  grpc_call_credentials_release(__pyx_v_c_call_credentials_composition);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":189
 *     grpc_channel_credentials_release(c_channel_credentials)
 *     grpc_call_credentials_release(c_call_credentials_composition)
 *     return c_composition             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_c_composition;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":179
 *     self._channel_credentials = channel_credentials
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_channel_credentials *c_channel_credentials
 *     c_channel_credentials = self._channel_credentials.c()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeChannelCredentials.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":73
 * cdef class CompositeChannelCredentials(ChannelCredentials):
 * 
 *   cdef readonly tuple _call_credentialses             # <<<<<<<<<<<<<<
 *   cdef readonly ChannelCredentials _channel_credentials
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_19_call_credentialses_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_19_call_credentialses_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_19_call_credentialses___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_19_call_credentialses___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_call_credentialses);
  __pyx_r = __pyx_v_self->_call_credentialses;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":74
 * 
 *   cdef readonly tuple _call_credentialses
 *   cdef readonly ChannelCredentials _channel_credentials             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_20_channel_credentials_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_20_channel_credentials_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_20_channel_credentials___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_20_channel_credentials___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_channel_credentials);
  __pyx_r = ((PyObject *)__pyx_v_self->_channel_credentials);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":194
 * cdef class XDSChannelCredentials(ChannelCredentials):
 * 
 *     def __cinit__(self, fallback_credentials):             # <<<<<<<<<<<<<<
 *         self._fallback_credentials = fallback_credentials
 * 
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_fallback_credentials = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fallback_credentials,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fallback_credentials)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 194, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(5, 194, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_fallback_credentials = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 194, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.XDSChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)__pyx_v_self), __pyx_v_fallback_credentials);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self, PyObject *__pyx_v_fallback_credentials) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":195
 * 
 *     def __cinit__(self, fallback_credentials):
 *         self._fallback_credentials = fallback_credentials             # <<<<<<<<<<<<<<
 * 
 *     cdef grpc_channel_credentials *c(self) except *:
 */
  if (!(likely(((__pyx_v_fallback_credentials) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_fallback_credentials, __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials))))) __PYX_ERR(5, 195, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_fallback_credentials;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_fallback_credentials);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_fallback_credentials);
  __pyx_v_self->_fallback_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":194
 * cdef class XDSChannelCredentials(ChannelCredentials):
 * 
 *     def __cinit__(self, fallback_credentials):             # <<<<<<<<<<<<<<
 *         self._fallback_credentials = fallback_credentials
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.XDSChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":197
 *         self._fallback_credentials = fallback_credentials
 * 
 *     cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *       cdef grpc_channel_credentials *c_fallback_creds = self._fallback_credentials.c()
 *       cdef grpc_channel_credentials *xds_creds = grpc_xds_credentials_create(c_fallback_creds)
 */

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self) {
  grpc_channel_credentials *__pyx_v_c_fallback_creds;
  grpc_channel_credentials *__pyx_v_xds_creds;
  grpc_channel_credentials *__pyx_r;
  grpc_channel_credentials *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":198
 * 
 *     cdef grpc_channel_credentials *c(self) except *:
 *       cdef grpc_channel_credentials *c_fallback_creds = self._fallback_credentials.c()             # <<<<<<<<<<<<<<
 *       cdef grpc_channel_credentials *xds_creds = grpc_xds_credentials_create(c_fallback_creds)
 *       grpc_channel_credentials_release(c_fallback_creds)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_v_self->_fallback_credentials->__pyx_vtab)->c(__pyx_v_self->_fallback_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 198, __pyx_L1_error)
  __pyx_v_c_fallback_creds = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":199
 *     cdef grpc_channel_credentials *c(self) except *:
 *       cdef grpc_channel_credentials *c_fallback_creds = self._fallback_credentials.c()
 *       cdef grpc_channel_credentials *xds_creds = grpc_xds_credentials_create(c_fallback_creds)             # <<<<<<<<<<<<<<
 *       grpc_channel_credentials_release(c_fallback_creds)
 *       return xds_creds
 */
  __pyx_v_xds_creds = grpc_xds_credentials_create(__pyx_v_c_fallback_creds);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":200
 *       cdef grpc_channel_credentials *c_fallback_creds = self._fallback_credentials.c()
 *       cdef grpc_channel_credentials *xds_creds = grpc_xds_credentials_create(c_fallback_creds)
 *       grpc_channel_credentials_release(c_fallback_creds)             # <<<<<<<<<<<<<<
 *       return xds_creds
 * 
 */
  grpc_channel_credentials_release(__pyx_v_c_fallback_creds);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":201
 *       cdef grpc_channel_credentials *xds_creds = grpc_xds_credentials_create(c_fallback_creds)
 *       grpc_channel_credentials_release(c_fallback_creds)
 *       return xds_creds             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_xds_creds;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":197
 *         self._fallback_credentials = fallback_credentials
 * 
 *     cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *       cdef grpc_channel_credentials *c_fallback_creds = self._fallback_credentials.c()
 *       cdef grpc_channel_credentials *xds_creds = grpc_xds_credentials_create(c_fallback_creds)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.XDSChannelCredentials.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":81
 * cdef class XDSChannelCredentials(ChannelCredentials):
 * 
 *   cdef readonly ChannelCredentials _fallback_credentials             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_21_fallback_credentials_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_21_fallback_credentials_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_21_fallback_credentials___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_21_fallback_credentials___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_fallback_credentials);
  __pyx_r = ((PyObject *)__pyx_v_self->_fallback_credentials);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.XDSChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.XDSChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.XDSChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":206
 * cdef class ServerCertificateConfig:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self.c_cert_config = NULL
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":207
 * 
 *   def __cinit__(self):
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     self.c_cert_config = NULL
 *     self.c_pem_root_certs = NULL
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":208
 *   def __cinit__(self):
 *     fork_handlers_and_grpc_init()
 *     self.c_cert_config = NULL             # <<<<<<<<<<<<<<
 *     self.c_pem_root_certs = NULL
 *     self.c_ssl_pem_key_cert_pairs = NULL
 */
  __pyx_v_self->c_cert_config = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":209
 *     fork_handlers_and_grpc_init()
 *     self.c_cert_config = NULL
 *     self.c_pem_root_certs = NULL             # <<<<<<<<<<<<<<
 *     self.c_ssl_pem_key_cert_pairs = NULL
 *     self.references = []
 */
  __pyx_v_self->c_pem_root_certs = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":210
 *     self.c_cert_config = NULL
 *     self.c_pem_root_certs = NULL
 *     self.c_ssl_pem_key_cert_pairs = NULL             # <<<<<<<<<<<<<<
 *     self.references = []
 * 
 */
  __pyx_v_self->c_ssl_pem_key_cert_pairs = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":211
 *     self.c_pem_root_certs = NULL
 *     self.c_ssl_pem_key_cert_pairs = NULL
 *     self.references = []             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->references);
  __Pyx_DECREF(__pyx_v_self->references);
  __pyx_v_self->references = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":206
 * cdef class ServerCertificateConfig:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self.c_cert_config = NULL
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCertificateConfig.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":213
 *     self.references = []
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     grpc_ssl_server_certificate_config_destroy(self.c_cert_config)
 *     gpr_free(self.c_ssl_pem_key_cert_pairs)
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self) {

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":214
 * 
 *   def __dealloc__(self):
 *     grpc_ssl_server_certificate_config_destroy(self.c_cert_config)             # <<<<<<<<<<<<<<
 *     gpr_free(self.c_ssl_pem_key_cert_pairs)
 *     grpc_shutdown()
 */
  grpc_ssl_server_certificate_config_destroy(__pyx_v_self->c_cert_config);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":215
 *   def __dealloc__(self):
 *     grpc_ssl_server_certificate_config_destroy(self.c_cert_config)
 *     gpr_free(self.c_ssl_pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *     grpc_shutdown()
 * 
 */
  gpr_free(__pyx_v_self->c_ssl_pem_key_cert_pairs);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":216
 *     grpc_ssl_server_certificate_config_destroy(self.c_cert_config)
 *     gpr_free(self.c_ssl_pem_key_cert_pairs)
 *     grpc_shutdown()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  grpc_shutdown();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":213
 *     self.references = []
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     grpc_ssl_server_certificate_config_destroy(self.c_cert_config)
 *     gpr_free(self.c_ssl_pem_key_cert_pairs)
 */

  /* function exit code */
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCertificateConfig.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCertificateConfig.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCertificateConfig.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":221
 * cdef class ServerCredentials:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self.c_credentials = NULL
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":222
 * 
 *   def __cinit__(self):
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     self.c_credentials = NULL
 *     self.references = []
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 222, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":223
 *   def __cinit__(self):
 *     fork_handlers_and_grpc_init()
 *     self.c_credentials = NULL             # <<<<<<<<<<<<<<
 *     self.references = []
 *     self.initial_cert_config = None
 */
  __pyx_v_self->c_credentials = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":224
 *     fork_handlers_and_grpc_init()
 *     self.c_credentials = NULL
 *     self.references = []             # <<<<<<<<<<<<<<
 *     self.initial_cert_config = None
 *     self.cert_config_fetcher = None
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->references);
  __Pyx_DECREF(__pyx_v_self->references);
  __pyx_v_self->references = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":225
 *     self.c_credentials = NULL
 *     self.references = []
 *     self.initial_cert_config = None             # <<<<<<<<<<<<<<
 *     self.cert_config_fetcher = None
 *     self.initial_cert_config_fetched = False
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->initial_cert_config);
  __Pyx_DECREF(__pyx_v_self->initial_cert_config);
  __pyx_v_self->initial_cert_config = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":226
 *     self.references = []
 *     self.initial_cert_config = None
 *     self.cert_config_fetcher = None             # <<<<<<<<<<<<<<
 *     self.initial_cert_config_fetched = False
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->cert_config_fetcher);
  __Pyx_DECREF(__pyx_v_self->cert_config_fetcher);
  __pyx_v_self->cert_config_fetcher = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":227
 *     self.initial_cert_config = None
 *     self.cert_config_fetcher = None
 *     self.initial_cert_config_fetched = False             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
 */
  __pyx_v_self->initial_cert_config_fetched = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":221
 * cdef class ServerCredentials:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self.c_credentials = NULL
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":229
 *     self.initial_cert_config_fetched = False
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self.c_credentials != NULL:
 *       grpc_server_credentials_release(self.c_credentials)
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":230
 * 
 *   def __dealloc__(self):
 *     if self.c_credentials != NULL:             # <<<<<<<<<<<<<<
 *       grpc_server_credentials_release(self.c_credentials)
 *     grpc_shutdown()
 */
  __pyx_t_1 = (__pyx_v_self->c_credentials != NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":231
 *   def __dealloc__(self):
 *     if self.c_credentials != NULL:
 *       grpc_server_credentials_release(self.c_credentials)             # <<<<<<<<<<<<<<
 *     grpc_shutdown()
 * 
 */
    grpc_server_credentials_release(__pyx_v_self->c_credentials);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":230
 * 
 *   def __dealloc__(self):
 *     if self.c_credentials != NULL:             # <<<<<<<<<<<<<<
 *       grpc_server_credentials_release(self.c_credentials)
 *     grpc_shutdown()
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":232
 *     if self.c_credentials != NULL:
 *       grpc_server_credentials_release(self.c_credentials)
 *     grpc_shutdown()             # <<<<<<<<<<<<<<
 * 
 * cdef const char* _get_c_pem_root_certs(pem_root_certs):
 */
  grpc_shutdown();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":229
 *     self.initial_cert_config_fetched = False
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self.c_credentials != NULL:
 *       grpc_server_credentials_release(self.c_credentials)
 */

  /* function exit code */
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ServerCredentials_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ServerCredentials_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":234
 *     grpc_shutdown()
 * 
 * cdef const char* _get_c_pem_root_certs(pem_root_certs):             # <<<<<<<<<<<<<<
 *   if pem_root_certs is None:
 *     return NULL
 */

static char const *__pyx_f_4grpc_7_cython_6cygrpc__get_c_pem_root_certs(PyObject *__pyx_v_pem_root_certs) {
  char const *__pyx_r;
  int __pyx_t_1;
  char const *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":235
 * 
 * cdef const char* _get_c_pem_root_certs(pem_root_certs):
 *   if pem_root_certs is None:             # <<<<<<<<<<<<<<
 *     return NULL
 *   else:
 */
  __pyx_t_1 = (__pyx_v_pem_root_certs == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":236
 * cdef const char* _get_c_pem_root_certs(pem_root_certs):
 *   if pem_root_certs is None:
 *     return NULL             # <<<<<<<<<<<<<<
 *   else:
 *     return pem_root_certs
 */
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":235
 * 
 * cdef const char* _get_c_pem_root_certs(pem_root_certs):
 *   if pem_root_certs is None:             # <<<<<<<<<<<<<<
 *     return NULL
 *   else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":238
 *     return NULL
 *   else:
 *     return pem_root_certs             # <<<<<<<<<<<<<<
 * 
 * cdef grpc_ssl_pem_key_cert_pair* _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs):
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_AsString(__pyx_v_pem_root_certs); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(5, 238, __pyx_L1_error)
    __pyx_r = __pyx_t_2;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":234
 *     grpc_shutdown()
 * 
 * cdef const char* _get_c_pem_root_certs(pem_root_certs):             # <<<<<<<<<<<<<<
 *   if pem_root_certs is None:
 *     return NULL
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._get_c_pem_root_certs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":240
 *     return pem_root_certs
 * 
 * cdef grpc_ssl_pem_key_cert_pair* _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs):             # <<<<<<<<<<<<<<
 *   # return a malloc'ed grpc_ssl_pem_key_cert_pair from a _list_ of SslPemKeyCertPair
 *   for pair in pem_key_cert_pairs:
 */

static grpc_ssl_pem_key_cert_pair *__pyx_f_4grpc_7_cython_6cygrpc__create_c_ssl_pem_key_cert_pairs(PyObject *__pyx_v_pem_key_cert_pairs) {
  PyObject *__pyx_v_pair = NULL;
  size_t __pyx_v_c_ssl_pem_key_cert_pairs_count;
  grpc_ssl_pem_key_cert_pair *__pyx_v_c_ssl_pem_key_cert_pairs;
  size_t __pyx_v_i;
  grpc_ssl_pem_key_cert_pair *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  size_t __pyx_t_7;
  size_t __pyx_t_8;
  size_t __pyx_t_9;
  grpc_ssl_pem_key_cert_pair __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_create_c_ssl_pem_key_cert_pairs", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":242
 * cdef grpc_ssl_pem_key_cert_pair* _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs):
 *   # return a malloc'ed grpc_ssl_pem_key_cert_pair from a _list_ of SslPemKeyCertPair
 *   for pair in pem_key_cert_pairs:             # <<<<<<<<<<<<<<
 *     if not isinstance(pair, SslPemKeyCertPair):
 *       raise TypeError("expected pem_key_cert_pairs to be sequence of "
 */
  if (likely(PyList_CheckExact(__pyx_v_pem_key_cert_pairs)) || PyTuple_CheckExact(__pyx_v_pem_key_cert_pairs)) {
    __pyx_t_1 = __pyx_v_pem_key_cert_pairs; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_pem_key_cert_pairs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 242, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 242, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(5, 242, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 242, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 242, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(5, 242, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 242, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 242, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_pair, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":243
 *   # return a malloc'ed grpc_ssl_pem_key_cert_pair from a _list_ of SslPemKeyCertPair
 *   for pair in pem_key_cert_pairs:
 *     if not isinstance(pair, SslPemKeyCertPair):             # <<<<<<<<<<<<<<
 *       raise TypeError("expected pem_key_cert_pairs to be sequence of "
 *                       "SslPemKeyCertPair")
 */
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_v_pair, __pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair); 
    __pyx_t_6 = (!__pyx_t_5);
    if (unlikely(__pyx_t_6)) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":244
 *   for pair in pem_key_cert_pairs:
 *     if not isinstance(pair, SslPemKeyCertPair):
 *       raise TypeError("expected pem_key_cert_pairs to be sequence of "             # <<<<<<<<<<<<<<
 *                       "SslPemKeyCertPair")
 *   cdef size_t c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 */
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 244, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __PYX_ERR(5, 244, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":243
 *   # return a malloc'ed grpc_ssl_pem_key_cert_pair from a _list_ of SslPemKeyCertPair
 *   for pair in pem_key_cert_pairs:
 *     if not isinstance(pair, SslPemKeyCertPair):             # <<<<<<<<<<<<<<
 *       raise TypeError("expected pem_key_cert_pairs to be sequence of "
 *                       "SslPemKeyCertPair")
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":242
 * cdef grpc_ssl_pem_key_cert_pair* _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs):
 *   # return a malloc'ed grpc_ssl_pem_key_cert_pair from a _list_ of SslPemKeyCertPair
 *   for pair in pem_key_cert_pairs:             # <<<<<<<<<<<<<<
 *     if not isinstance(pair, SslPemKeyCertPair):
 *       raise TypeError("expected pem_key_cert_pairs to be sequence of "
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":246
 *       raise TypeError("expected pem_key_cert_pairs to be sequence of "
 *                       "SslPemKeyCertPair")
 *   cdef size_t c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cdef grpc_ssl_pem_key_cert_pair* c_ssl_pem_key_cert_pairs = NULL
 *   with nogil:
 */
  __pyx_t_2 = PyObject_Length(__pyx_v_pem_key_cert_pairs); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(5, 246, __pyx_L1_error)
  __pyx_v_c_ssl_pem_key_cert_pairs_count = __pyx_t_2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":247
 *                       "SslPemKeyCertPair")
 *   cdef size_t c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   cdef grpc_ssl_pem_key_cert_pair* c_ssl_pem_key_cert_pairs = NULL             # <<<<<<<<<<<<<<
 *   with nogil:
 *     c_ssl_pem_key_cert_pairs = (
 */
  __pyx_v_c_ssl_pem_key_cert_pairs = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":248
 *   cdef size_t c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   cdef grpc_ssl_pem_key_cert_pair* c_ssl_pem_key_cert_pairs = NULL
 *   with nogil:             # <<<<<<<<<<<<<<
 *     c_ssl_pem_key_cert_pairs = (
 *       <grpc_ssl_pem_key_cert_pair *>gpr_malloc(
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":250
 *   with nogil:
 *     c_ssl_pem_key_cert_pairs = (
 *       <grpc_ssl_pem_key_cert_pair *>gpr_malloc(             # <<<<<<<<<<<<<<
 *         sizeof(grpc_ssl_pem_key_cert_pair) * c_ssl_pem_key_cert_pairs_count))
 *   for i in range(c_ssl_pem_key_cert_pairs_count):
 */
        __pyx_v_c_ssl_pem_key_cert_pairs = ((grpc_ssl_pem_key_cert_pair *)gpr_malloc(((sizeof(grpc_ssl_pem_key_cert_pair)) * __pyx_v_c_ssl_pem_key_cert_pairs_count)));
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":248
 *   cdef size_t c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   cdef grpc_ssl_pem_key_cert_pair* c_ssl_pem_key_cert_pairs = NULL
 *   with nogil:             # <<<<<<<<<<<<<<
 *     c_ssl_pem_key_cert_pairs = (
 *       <grpc_ssl_pem_key_cert_pair *>gpr_malloc(
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L9;
        }
        __pyx_L9:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":252
 *       <grpc_ssl_pem_key_cert_pair *>gpr_malloc(
 *         sizeof(grpc_ssl_pem_key_cert_pair) * c_ssl_pem_key_cert_pairs_count))
 *   for i in range(c_ssl_pem_key_cert_pairs_count):             # <<<<<<<<<<<<<<
 *     c_ssl_pem_key_cert_pairs[i] = (
 *       (<SslPemKeyCertPair>pem_key_cert_pairs[i]).c_pair)
 */
  __pyx_t_7 = __pyx_v_c_ssl_pem_key_cert_pairs_count;
  __pyx_t_8 = __pyx_t_7;
  for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
    __pyx_v_i = __pyx_t_9;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":254
 *   for i in range(c_ssl_pem_key_cert_pairs_count):
 *     c_ssl_pem_key_cert_pairs[i] = (
 *       (<SslPemKeyCertPair>pem_key_cert_pairs[i]).c_pair)             # <<<<<<<<<<<<<<
 *   return c_ssl_pem_key_cert_pairs
 * 
 */
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_pem_key_cert_pairs, __pyx_v_i, size_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)__pyx_t_1)->c_pair;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":253
 *         sizeof(grpc_ssl_pem_key_cert_pair) * c_ssl_pem_key_cert_pairs_count))
 *   for i in range(c_ssl_pem_key_cert_pairs_count):
 *     c_ssl_pem_key_cert_pairs[i] = (             # <<<<<<<<<<<<<<
 *       (<SslPemKeyCertPair>pem_key_cert_pairs[i]).c_pair)
 *   return c_ssl_pem_key_cert_pairs
 */
    (__pyx_v_c_ssl_pem_key_cert_pairs[__pyx_v_i]) = __pyx_t_10;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":255
 *     c_ssl_pem_key_cert_pairs[i] = (
 *       (<SslPemKeyCertPair>pem_key_cert_pairs[i]).c_pair)
 *   return c_ssl_pem_key_cert_pairs             # <<<<<<<<<<<<<<
 * 
 * def server_credentials_ssl(pem_root_certs, pem_key_cert_pairs,
 */
  __pyx_r = __pyx_v_c_ssl_pem_key_cert_pairs;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":240
 *     return pem_root_certs
 * 
 * cdef grpc_ssl_pem_key_cert_pair* _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs):             # <<<<<<<<<<<<<<
 *   # return a malloc'ed grpc_ssl_pem_key_cert_pair from a _list_ of SslPemKeyCertPair
 *   for pair in pem_key_cert_pairs:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._create_c_ssl_pem_key_cert_pairs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pair);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":257
 *   return c_ssl_pem_key_cert_pairs
 * 
 * def server_credentials_ssl(pem_root_certs, pem_key_cert_pairs,             # <<<<<<<<<<<<<<
 *                            bint force_client_auth):
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23server_credentials_ssl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23server_credentials_ssl = {"server_credentials_ssl", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23server_credentials_ssl, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23server_credentials_ssl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_pem_root_certs = 0;
  PyObject *__pyx_v_pem_key_cert_pairs = 0;
  int __pyx_v_force_client_auth;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("server_credentials_ssl (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pem_root_certs,&__pyx_n_s_pem_key_cert_pairs,&__pyx_n_s_force_client_auth,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pem_root_certs)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 257, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pem_key_cert_pairs)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 257, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("server_credentials_ssl", 1, 3, 3, 1); __PYX_ERR(5, 257, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_force_client_auth)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 257, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("server_credentials_ssl", 1, 3, 3, 2); __PYX_ERR(5, 257, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "server_credentials_ssl") < 0)) __PYX_ERR(5, 257, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_pem_root_certs = values[0];
    __pyx_v_pem_key_cert_pairs = values[1];
    __pyx_v_force_client_auth = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_force_client_auth == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 258, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("server_credentials_ssl", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 257, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_credentials_ssl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_22server_credentials_ssl(__pyx_self, __pyx_v_pem_root_certs, __pyx_v_pem_key_cert_pairs, __pyx_v_force_client_auth);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22server_credentials_ssl(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pem_root_certs, PyObject *__pyx_v_pem_key_cert_pairs, int __pyx_v_force_client_auth) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_credentials = 0;
  char const *__pyx_v_c_pem_root_certs;
  grpc_ssl_server_certificate_config *__pyx_v_c_cert_config;
  grpc_ssl_server_credentials_options *__pyx_v_c_options;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  char const *__pyx_t_3;
  Py_ssize_t __pyx_t_4;
  grpc_ssl_pem_key_cert_pair *__pyx_t_5;
  grpc_ssl_client_certificate_request_type __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("server_credentials_ssl", 0);
  __Pyx_INCREF(__pyx_v_pem_root_certs);
  __Pyx_INCREF(__pyx_v_pem_key_cert_pairs);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":259
 * def server_credentials_ssl(pem_root_certs, pem_key_cert_pairs,
 *                            bint force_client_auth):
 *   pem_root_certs = str_to_bytes(pem_root_certs)             # <<<<<<<<<<<<<<
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 *   cdef ServerCredentials credentials = ServerCredentials()
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_pem_root_certs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_pem_root_certs, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":260
 *                            bint force_client_auth):
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.references.append(pem_root_certs)
 */
  __pyx_t_1 = PySequence_List(__pyx_v_pem_key_cert_pairs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_pem_key_cert_pairs, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":261
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 *   cdef ServerCredentials credentials = ServerCredentials()             # <<<<<<<<<<<<<<
 *   credentials.references.append(pem_root_certs)
 *   credentials.references.append(pem_key_cert_pairs)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":262
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.references.append(pem_root_certs)             # <<<<<<<<<<<<<<
 *   credentials.references.append(pem_key_cert_pairs)
 *   cdef const char * c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
 */
  if (unlikely(__pyx_v_credentials->references == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(5, 262, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_credentials->references, __pyx_v_pem_root_certs); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(5, 262, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":263
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.references.append(pem_root_certs)
 *   credentials.references.append(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cdef const char * c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
 *   credentials.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 */
  if (unlikely(__pyx_v_credentials->references == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(5, 263, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_credentials->references, __pyx_v_pem_key_cert_pairs); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(5, 263, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":264
 *   credentials.references.append(pem_root_certs)
 *   credentials.references.append(pem_key_cert_pairs)
 *   cdef const char * c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)             # <<<<<<<<<<<<<<
 *   credentials.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   credentials.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)
 */
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__get_c_pem_root_certs(__pyx_v_pem_root_certs); if (unlikely(__pyx_t_3 == ((char const *)NULL) && PyErr_Occurred())) __PYX_ERR(5, 264, __pyx_L1_error)
  __pyx_v_c_pem_root_certs = __pyx_t_3;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":265
 *   credentials.references.append(pem_key_cert_pairs)
 *   cdef const char * c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
 *   credentials.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   credentials.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)
 *   cdef grpc_ssl_server_certificate_config *c_cert_config = NULL
 */
  __pyx_t_4 = PyObject_Length(__pyx_v_pem_key_cert_pairs); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 265, __pyx_L1_error)
  __pyx_v_credentials->c_ssl_pem_key_cert_pairs_count = __pyx_t_4;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":266
 *   cdef const char * c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
 *   credentials.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   credentials.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cdef grpc_ssl_server_certificate_config *c_cert_config = NULL
 *   c_cert_config = grpc_ssl_server_certificate_config_create(
 */
  __pyx_t_5 = __pyx_f_4grpc_7_cython_6cygrpc__create_c_ssl_pem_key_cert_pairs(__pyx_v_pem_key_cert_pairs); if (unlikely(__pyx_t_5 == ((grpc_ssl_pem_key_cert_pair *)NULL) && PyErr_Occurred())) __PYX_ERR(5, 266, __pyx_L1_error)
  __pyx_v_credentials->c_ssl_pem_key_cert_pairs = __pyx_t_5;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":267
 *   credentials.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   credentials.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)
 *   cdef grpc_ssl_server_certificate_config *c_cert_config = NULL             # <<<<<<<<<<<<<<
 *   c_cert_config = grpc_ssl_server_certificate_config_create(
 *     c_pem_root_certs, credentials.c_ssl_pem_key_cert_pairs,
 */
  __pyx_v_c_cert_config = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":268
 *   credentials.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)
 *   cdef grpc_ssl_server_certificate_config *c_cert_config = NULL
 *   c_cert_config = grpc_ssl_server_certificate_config_create(             # <<<<<<<<<<<<<<
 *     c_pem_root_certs, credentials.c_ssl_pem_key_cert_pairs,
 *     credentials.c_ssl_pem_key_cert_pairs_count)
 */
  __pyx_v_c_cert_config = grpc_ssl_server_certificate_config_create(__pyx_v_c_pem_root_certs, __pyx_v_credentials->c_ssl_pem_key_cert_pairs, __pyx_v_credentials->c_ssl_pem_key_cert_pairs_count);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":271
 *     c_pem_root_certs, credentials.c_ssl_pem_key_cert_pairs,
 *     credentials.c_ssl_pem_key_cert_pairs_count)
 *   cdef grpc_ssl_server_credentials_options* c_options = NULL             # <<<<<<<<<<<<<<
 *   # C-core assumes ownership of c_cert_config
 *   c_options = grpc_ssl_server_credentials_create_options_using_config(
 */
  __pyx_v_c_options = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":275
 *   c_options = grpc_ssl_server_credentials_create_options_using_config(
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
 *     if force_client_auth else             # <<<<<<<<<<<<<<
 *     GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE,
 *     c_cert_config)
 */
  if (__pyx_v_force_client_auth) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":274
 *   # C-core assumes ownership of c_cert_config
 *   c_options = grpc_ssl_server_credentials_create_options_using_config(
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY             # <<<<<<<<<<<<<<
 *     if force_client_auth else
 *     GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE,
 */
    __pyx_t_6 = GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY;
  } else {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":276
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
 *     if force_client_auth else
 *     GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE,             # <<<<<<<<<<<<<<
 *     c_cert_config)
 *   # C-core assumes ownership of c_options
 */
    __pyx_t_6 = GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":273
 *   cdef grpc_ssl_server_credentials_options* c_options = NULL
 *   # C-core assumes ownership of c_cert_config
 *   c_options = grpc_ssl_server_credentials_create_options_using_config(             # <<<<<<<<<<<<<<
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
 *     if force_client_auth else
 */
  __pyx_v_c_options = grpc_ssl_server_credentials_create_options_using_config(__pyx_t_6, __pyx_v_c_cert_config);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":279
 *     c_cert_config)
 *   # C-core assumes ownership of c_options
 *   credentials.c_credentials = grpc_ssl_server_credentials_create_with_options(c_options)             # <<<<<<<<<<<<<<
 *   return credentials
 * 
 */
  __pyx_v_credentials->c_credentials = grpc_ssl_server_credentials_create_with_options(__pyx_v_c_options);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":280
 *   # C-core assumes ownership of c_options
 *   credentials.c_credentials = grpc_ssl_server_credentials_create_with_options(c_options)
 *   return credentials             # <<<<<<<<<<<<<<
 * 
 * def server_certificate_config_ssl(pem_root_certs, pem_key_cert_pairs):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_credentials);
  __pyx_r = ((PyObject *)__pyx_v_credentials);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":257
 *   return c_ssl_pem_key_cert_pairs
 * 
 * def server_credentials_ssl(pem_root_certs, pem_key_cert_pairs,             # <<<<<<<<<<<<<<
 *                            bint force_client_auth):
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_credentials_ssl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_credentials);
  __Pyx_XDECREF(__pyx_v_pem_root_certs);
  __Pyx_XDECREF(__pyx_v_pem_key_cert_pairs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":282
 *   return credentials
 * 
 * def server_certificate_config_ssl(pem_root_certs, pem_key_cert_pairs):             # <<<<<<<<<<<<<<
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_25server_certificate_config_ssl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_25server_certificate_config_ssl = {"server_certificate_config_ssl", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_25server_certificate_config_ssl, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_25server_certificate_config_ssl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_pem_root_certs = 0;
  PyObject *__pyx_v_pem_key_cert_pairs = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("server_certificate_config_ssl (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pem_root_certs,&__pyx_n_s_pem_key_cert_pairs,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pem_root_certs)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 282, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pem_key_cert_pairs)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 282, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("server_certificate_config_ssl", 1, 2, 2, 1); __PYX_ERR(5, 282, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "server_certificate_config_ssl") < 0)) __PYX_ERR(5, 282, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_pem_root_certs = values[0];
    __pyx_v_pem_key_cert_pairs = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("server_certificate_config_ssl", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 282, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_certificate_config_ssl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_24server_certificate_config_ssl(__pyx_self, __pyx_v_pem_root_certs, __pyx_v_pem_key_cert_pairs);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24server_certificate_config_ssl(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pem_root_certs, PyObject *__pyx_v_pem_key_cert_pairs) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_cert_config = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  char const *__pyx_t_3;
  Py_ssize_t __pyx_t_4;
  grpc_ssl_pem_key_cert_pair *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("server_certificate_config_ssl", 0);
  __Pyx_INCREF(__pyx_v_pem_root_certs);
  __Pyx_INCREF(__pyx_v_pem_key_cert_pairs);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":283
 * 
 * def server_certificate_config_ssl(pem_root_certs, pem_key_cert_pairs):
 *   pem_root_certs = str_to_bytes(pem_root_certs)             # <<<<<<<<<<<<<<
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 *   cdef ServerCertificateConfig cert_config = ServerCertificateConfig()
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_pem_root_certs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_pem_root_certs, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":284
 * def server_certificate_config_ssl(pem_root_certs, pem_key_cert_pairs):
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cdef ServerCertificateConfig cert_config = ServerCertificateConfig()
 *   cert_config.references.append(pem_root_certs)
 */
  __pyx_t_1 = PySequence_List(__pyx_v_pem_key_cert_pairs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_pem_key_cert_pairs, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":285
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 *   cdef ServerCertificateConfig cert_config = ServerCertificateConfig()             # <<<<<<<<<<<<<<
 *   cert_config.references.append(pem_root_certs)
 *   cert_config.references.append(pem_key_cert_pairs)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_cert_config = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":286
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 *   cdef ServerCertificateConfig cert_config = ServerCertificateConfig()
 *   cert_config.references.append(pem_root_certs)             # <<<<<<<<<<<<<<
 *   cert_config.references.append(pem_key_cert_pairs)
 *   cert_config.c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
 */
  if (unlikely(__pyx_v_cert_config->references == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(5, 286, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_cert_config->references, __pyx_v_pem_root_certs); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(5, 286, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":287
 *   cdef ServerCertificateConfig cert_config = ServerCertificateConfig()
 *   cert_config.references.append(pem_root_certs)
 *   cert_config.references.append(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cert_config.c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
 *   cert_config.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 */
  if (unlikely(__pyx_v_cert_config->references == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(5, 287, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_cert_config->references, __pyx_v_pem_key_cert_pairs); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(5, 287, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":288
 *   cert_config.references.append(pem_root_certs)
 *   cert_config.references.append(pem_key_cert_pairs)
 *   cert_config.c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)             # <<<<<<<<<<<<<<
 *   cert_config.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   cert_config.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)
 */
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__get_c_pem_root_certs(__pyx_v_pem_root_certs); if (unlikely(__pyx_t_3 == ((char const *)NULL) && PyErr_Occurred())) __PYX_ERR(5, 288, __pyx_L1_error)
  __pyx_v_cert_config->c_pem_root_certs = __pyx_t_3;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":289
 *   cert_config.references.append(pem_key_cert_pairs)
 *   cert_config.c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
 *   cert_config.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cert_config.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)
 *   cert_config.c_cert_config = grpc_ssl_server_certificate_config_create(
 */
  __pyx_t_4 = PyObject_Length(__pyx_v_pem_key_cert_pairs); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 289, __pyx_L1_error)
  __pyx_v_cert_config->c_ssl_pem_key_cert_pairs_count = __pyx_t_4;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":290
 *   cert_config.c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
 *   cert_config.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   cert_config.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cert_config.c_cert_config = grpc_ssl_server_certificate_config_create(
 *     cert_config.c_pem_root_certs, cert_config.c_ssl_pem_key_cert_pairs,
 */
  __pyx_t_5 = __pyx_f_4grpc_7_cython_6cygrpc__create_c_ssl_pem_key_cert_pairs(__pyx_v_pem_key_cert_pairs); if (unlikely(__pyx_t_5 == ((grpc_ssl_pem_key_cert_pair *)NULL) && PyErr_Occurred())) __PYX_ERR(5, 290, __pyx_L1_error)
  __pyx_v_cert_config->c_ssl_pem_key_cert_pairs = __pyx_t_5;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":291
 *   cert_config.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   cert_config.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)
 *   cert_config.c_cert_config = grpc_ssl_server_certificate_config_create(             # <<<<<<<<<<<<<<
 *     cert_config.c_pem_root_certs, cert_config.c_ssl_pem_key_cert_pairs,
 *     cert_config.c_ssl_pem_key_cert_pairs_count)
 */
  __pyx_v_cert_config->c_cert_config = grpc_ssl_server_certificate_config_create(__pyx_v_cert_config->c_pem_root_certs, __pyx_v_cert_config->c_ssl_pem_key_cert_pairs, __pyx_v_cert_config->c_ssl_pem_key_cert_pairs_count);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":294
 *     cert_config.c_pem_root_certs, cert_config.c_ssl_pem_key_cert_pairs,
 *     cert_config.c_ssl_pem_key_cert_pairs_count)
 *   return cert_config             # <<<<<<<<<<<<<<
 * 
 * def server_credentials_ssl_dynamic_cert_config(initial_cert_config,
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_cert_config);
  __pyx_r = ((PyObject *)__pyx_v_cert_config);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":282
 *   return credentials
 * 
 * def server_certificate_config_ssl(pem_root_certs, pem_key_cert_pairs):             # <<<<<<<<<<<<<<
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_certificate_config_ssl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cert_config);
  __Pyx_XDECREF(__pyx_v_pem_root_certs);
  __Pyx_XDECREF(__pyx_v_pem_key_cert_pairs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":296
 *   return cert_config
 * 
 * def server_credentials_ssl_dynamic_cert_config(initial_cert_config,             # <<<<<<<<<<<<<<
 *                                                cert_config_fetcher,
 *                                                bint force_client_auth):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27server_credentials_ssl_dynamic_cert_config(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_27server_credentials_ssl_dynamic_cert_config = {"server_credentials_ssl_dynamic_cert_config", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_27server_credentials_ssl_dynamic_cert_config, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27server_credentials_ssl_dynamic_cert_config(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_initial_cert_config = 0;
  PyObject *__pyx_v_cert_config_fetcher = 0;
  int __pyx_v_force_client_auth;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("server_credentials_ssl_dynamic_cert_config (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_initial_cert_config,&__pyx_n_s_cert_config_fetcher,&__pyx_n_s_force_client_auth,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_initial_cert_config)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 296, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_cert_config_fetcher)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 296, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("server_credentials_ssl_dynamic_cert_config", 1, 3, 3, 1); __PYX_ERR(5, 296, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_force_client_auth)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 296, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("server_credentials_ssl_dynamic_cert_config", 1, 3, 3, 2); __PYX_ERR(5, 296, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "server_credentials_ssl_dynamic_cert_config") < 0)) __PYX_ERR(5, 296, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_initial_cert_config = values[0];
    __pyx_v_cert_config_fetcher = values[1];
    __pyx_v_force_client_auth = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_force_client_auth == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 298, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("server_credentials_ssl_dynamic_cert_config", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 296, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_credentials_ssl_dynamic_cert_config", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_26server_credentials_ssl_dynamic_cert_config(__pyx_self, __pyx_v_initial_cert_config, __pyx_v_cert_config_fetcher, __pyx_v_force_client_auth);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_26server_credentials_ssl_dynamic_cert_config(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_initial_cert_config, PyObject *__pyx_v_cert_config_fetcher, int __pyx_v_force_client_auth) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_credentials = 0;
  grpc_ssl_server_credentials_options *__pyx_v_c_options;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  grpc_ssl_client_certificate_request_type __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("server_credentials_ssl_dynamic_cert_config", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":299
 *                                                cert_config_fetcher,
 *                                                bint force_client_auth):
 *   if not isinstance(initial_cert_config, grpc.ServerCertificateConfiguration):             # <<<<<<<<<<<<<<
 *     raise TypeError(
 *         'initial_cert_config must be a grpc.ServerCertificateConfiguration')
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_grpc); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ServerCertificateConfiguration); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = PyObject_IsInstance(__pyx_v_initial_cert_config, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(5, 299, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = (!__pyx_t_3);
  if (unlikely(__pyx_t_4)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":300
 *                                                bint force_client_auth):
 *   if not isinstance(initial_cert_config, grpc.ServerCertificateConfiguration):
 *     raise TypeError(             # <<<<<<<<<<<<<<
 *         'initial_cert_config must be a grpc.ServerCertificateConfiguration')
 *   if not callable(cert_config_fetcher):
 */
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(5, 300, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":299
 *                                                cert_config_fetcher,
 *                                                bint force_client_auth):
 *   if not isinstance(initial_cert_config, grpc.ServerCertificateConfiguration):             # <<<<<<<<<<<<<<
 *     raise TypeError(
 *         'initial_cert_config must be a grpc.ServerCertificateConfiguration')
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":302
 *     raise TypeError(
 *         'initial_cert_config must be a grpc.ServerCertificateConfiguration')
 *   if not callable(cert_config_fetcher):             # <<<<<<<<<<<<<<
 *     raise TypeError('cert_config_fetcher must be callable')
 *   cdef ServerCredentials credentials = ServerCredentials()
 */
  __pyx_t_4 = __Pyx_PyCallable_Check(__pyx_v_cert_config_fetcher); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(5, 302, __pyx_L1_error)
  __pyx_t_3 = (!__pyx_t_4);
  if (unlikely(__pyx_t_3)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":303
 *         'initial_cert_config must be a grpc.ServerCertificateConfiguration')
 *   if not callable(cert_config_fetcher):
 *     raise TypeError('cert_config_fetcher must be callable')             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.initial_cert_config = initial_cert_config
 */
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 303, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(5, 303, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":302
 *     raise TypeError(
 *         'initial_cert_config must be a grpc.ServerCertificateConfiguration')
 *   if not callable(cert_config_fetcher):             # <<<<<<<<<<<<<<
 *     raise TypeError('cert_config_fetcher must be callable')
 *   cdef ServerCredentials credentials = ServerCredentials()
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":304
 *   if not callable(cert_config_fetcher):
 *     raise TypeError('cert_config_fetcher must be callable')
 *   cdef ServerCredentials credentials = ServerCredentials()             # <<<<<<<<<<<<<<
 *   credentials.initial_cert_config = initial_cert_config
 *   credentials.cert_config_fetcher = cert_config_fetcher
 */
  __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":305
 *     raise TypeError('cert_config_fetcher must be callable')
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.initial_cert_config = initial_cert_config             # <<<<<<<<<<<<<<
 *   credentials.cert_config_fetcher = cert_config_fetcher
 *   cdef grpc_ssl_server_credentials_options* c_options = NULL
 */
  __Pyx_INCREF(__pyx_v_initial_cert_config);
  __Pyx_GIVEREF(__pyx_v_initial_cert_config);
  __Pyx_GOTREF(__pyx_v_credentials->initial_cert_config);
  __Pyx_DECREF(__pyx_v_credentials->initial_cert_config);
  __pyx_v_credentials->initial_cert_config = __pyx_v_initial_cert_config;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":306
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.initial_cert_config = initial_cert_config
 *   credentials.cert_config_fetcher = cert_config_fetcher             # <<<<<<<<<<<<<<
 *   cdef grpc_ssl_server_credentials_options* c_options = NULL
 *   c_options = grpc_ssl_server_credentials_create_options_using_config_fetcher(
 */
  __Pyx_INCREF(__pyx_v_cert_config_fetcher);
  __Pyx_GIVEREF(__pyx_v_cert_config_fetcher);
  __Pyx_GOTREF(__pyx_v_credentials->cert_config_fetcher);
  __Pyx_DECREF(__pyx_v_credentials->cert_config_fetcher);
  __pyx_v_credentials->cert_config_fetcher = __pyx_v_cert_config_fetcher;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":307
 *   credentials.initial_cert_config = initial_cert_config
 *   credentials.cert_config_fetcher = cert_config_fetcher
 *   cdef grpc_ssl_server_credentials_options* c_options = NULL             # <<<<<<<<<<<<<<
 *   c_options = grpc_ssl_server_credentials_create_options_using_config_fetcher(
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
 */
  __pyx_v_c_options = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":310
 *   c_options = grpc_ssl_server_credentials_create_options_using_config_fetcher(
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
 *     if force_client_auth else             # <<<<<<<<<<<<<<
 *     GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE,
 *     _server_cert_config_fetcher_wrapper,
 */
  if (__pyx_v_force_client_auth) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":309
 *   cdef grpc_ssl_server_credentials_options* c_options = NULL
 *   c_options = grpc_ssl_server_credentials_create_options_using_config_fetcher(
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY             # <<<<<<<<<<<<<<
 *     if force_client_auth else
 *     GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE,
 */
    __pyx_t_5 = GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY;
  } else {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":311
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
 *     if force_client_auth else
 *     GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE,             # <<<<<<<<<<<<<<
 *     _server_cert_config_fetcher_wrapper,
 *     <void*>credentials)
 */
    __pyx_t_5 = GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":308
 *   credentials.cert_config_fetcher = cert_config_fetcher
 *   cdef grpc_ssl_server_credentials_options* c_options = NULL
 *   c_options = grpc_ssl_server_credentials_create_options_using_config_fetcher(             # <<<<<<<<<<<<<<
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
 *     if force_client_auth else
 */
  __pyx_v_c_options = grpc_ssl_server_credentials_create_options_using_config_fetcher(__pyx_t_5, __pyx_f_4grpc_7_cython_6cygrpc__server_cert_config_fetcher_wrapper, ((void *)__pyx_v_credentials));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":315
 *     <void*>credentials)
 *   # C-core assumes ownership of c_options
 *   credentials.c_credentials = grpc_ssl_server_credentials_create_with_options(c_options)             # <<<<<<<<<<<<<<
 *   return credentials
 * 
 */
  __pyx_v_credentials->c_credentials = grpc_ssl_server_credentials_create_with_options(__pyx_v_c_options);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":316
 *   # C-core assumes ownership of c_options
 *   credentials.c_credentials = grpc_ssl_server_credentials_create_with_options(c_options)
 *   return credentials             # <<<<<<<<<<<<<<
 * 
 * cdef grpc_ssl_certificate_config_reload_status _server_cert_config_fetcher_wrapper(
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_credentials);
  __pyx_r = ((PyObject *)__pyx_v_credentials);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":296
 *   return cert_config
 * 
 * def server_credentials_ssl_dynamic_cert_config(initial_cert_config,             # <<<<<<<<<<<<<<
 *                                                cert_config_fetcher,
 *                                                bint force_client_auth):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_credentials_ssl_dynamic_cert_config", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_credentials);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":318
 *   return credentials
 * 
 * cdef grpc_ssl_certificate_config_reload_status _server_cert_config_fetcher_wrapper(             # <<<<<<<<<<<<<<
 *         void* user_data, grpc_ssl_server_certificate_config **config) noexcept with gil:
 *   # This is a credentials.ServerCertificateConfig
 */

static grpc_ssl_certificate_config_reload_status __pyx_f_4grpc_7_cython_6cygrpc__server_cert_config_fetcher_wrapper(void *__pyx_v_user_data, grpc_ssl_server_certificate_config **__pyx_v_config) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_cert_config = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_credentials = NULL;
  PyObject *__pyx_v_user_cb = NULL;
  PyObject *__pyx_v_cert_config_wrapper = NULL;
  grpc_ssl_certificate_config_reload_status __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  unsigned int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("_server_cert_config_fetcher_wrapper", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":321
 *         void* user_data, grpc_ssl_server_certificate_config **config) noexcept with gil:
 *   # This is a credentials.ServerCertificateConfig
 *   cdef ServerCertificateConfig cert_config = None             # <<<<<<<<<<<<<<
 *   if not user_data:
 *     raise ValueError('internal error: user_data must be specified')
 */
  __Pyx_INCREF(Py_None);
  __pyx_v_cert_config = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)Py_None);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":322
 *   # This is a credentials.ServerCertificateConfig
 *   cdef ServerCertificateConfig cert_config = None
 *   if not user_data:             # <<<<<<<<<<<<<<
 *     raise ValueError('internal error: user_data must be specified')
 *   credentials = <ServerCredentials>user_data
 */
  __pyx_t_1 = (!(__pyx_v_user_data != 0));
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":323
 *   cdef ServerCertificateConfig cert_config = None
 *   if not user_data:
 *     raise ValueError('internal error: user_data must be specified')             # <<<<<<<<<<<<<<
 *   credentials = <ServerCredentials>user_data
 *   if not credentials.initial_cert_config_fetched:
 */
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(5, 323, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":322
 *   # This is a credentials.ServerCertificateConfig
 *   cdef ServerCertificateConfig cert_config = None
 *   if not user_data:             # <<<<<<<<<<<<<<
 *     raise ValueError('internal error: user_data must be specified')
 *   credentials = <ServerCredentials>user_data
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":324
 *   if not user_data:
 *     raise ValueError('internal error: user_data must be specified')
 *   credentials = <ServerCredentials>user_data             # <<<<<<<<<<<<<<
 *   if not credentials.initial_cert_config_fetched:
 *     # C-core is asking for the initial cert config
 */
  __pyx_t_2 = ((PyObject *)__pyx_v_user_data);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":325
 *     raise ValueError('internal error: user_data must be specified')
 *   credentials = <ServerCredentials>user_data
 *   if not credentials.initial_cert_config_fetched:             # <<<<<<<<<<<<<<
 *     # C-core is asking for the initial cert config
 *     credentials.initial_cert_config_fetched = True
 */
  __pyx_t_1 = (!__pyx_v_credentials->initial_cert_config_fetched);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":327
 *   if not credentials.initial_cert_config_fetched:
 *     # C-core is asking for the initial cert config
 *     credentials.initial_cert_config_fetched = True             # <<<<<<<<<<<<<<
 *     cert_config = credentials.initial_cert_config._certificate_configuration
 *   else:
 */
    __pyx_v_credentials->initial_cert_config_fetched = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":328
 *     # C-core is asking for the initial cert config
 *     credentials.initial_cert_config_fetched = True
 *     cert_config = credentials.initial_cert_config._certificate_configuration             # <<<<<<<<<<<<<<
 *   else:
 *     user_cb = credentials.cert_config_fetcher
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_credentials->initial_cert_config, __pyx_n_s_certificate_configuration); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig))))) __PYX_ERR(5, 328, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_cert_config, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":325
 *     raise ValueError('internal error: user_data must be specified')
 *   credentials = <ServerCredentials>user_data
 *   if not credentials.initial_cert_config_fetched:             # <<<<<<<<<<<<<<
 *     # C-core is asking for the initial cert config
 *     credentials.initial_cert_config_fetched = True
 */
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":330
 *     cert_config = credentials.initial_cert_config._certificate_configuration
 *   else:
 *     user_cb = credentials.cert_config_fetcher             # <<<<<<<<<<<<<<
 *     try:
 *       cert_config_wrapper = user_cb()
 */
  /*else*/ {
    __pyx_t_2 = __pyx_v_credentials->cert_config_fetcher;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_user_cb = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":331
 *   else:
 *     user_cb = credentials.cert_config_fetcher
 *     try:             # <<<<<<<<<<<<<<
 *       cert_config_wrapper = user_cb()
 *     except Exception:
 */
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":332
 *     user_cb = credentials.cert_config_fetcher
 *     try:
 *       cert_config_wrapper = user_cb()             # <<<<<<<<<<<<<<
 *     except Exception:
 *       _LOGGER.exception('Error fetching certificate config')
 */
        __Pyx_INCREF(__pyx_v_user_cb);
        __pyx_t_6 = __pyx_v_user_cb; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
            __pyx_t_8 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 332, __pyx_L5_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __pyx_v_cert_config_wrapper = __pyx_t_2;
        __pyx_t_2 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":331
 *   else:
 *     user_cb = credentials.cert_config_fetcher
 *     try:             # <<<<<<<<<<<<<<
 *       cert_config_wrapper = user_cb()
 *     except Exception:
 */
      }
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L10_try_end;
      __pyx_L5_error:;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":333
 *     try:
 *       cert_config_wrapper = user_cb()
 *     except Exception:             # <<<<<<<<<<<<<<
 *       _LOGGER.exception('Error fetching certificate config')
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL
 */
      __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
      if (__pyx_t_9) {
        __Pyx_AddTraceback("grpc._cython.cygrpc._server_cert_config_fetcher_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(5, 333, __pyx_L7_except_error)
        __Pyx_XGOTREF(__pyx_t_2);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":334
 *       cert_config_wrapper = user_cb()
 *     except Exception:
 *       _LOGGER.exception('Error fetching certificate config')             # <<<<<<<<<<<<<<
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL
 *     if cert_config_wrapper is None:
 */
        __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 334, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_exception); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 334, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_11 = NULL;
        __pyx_t_8 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12);
          if (likely(__pyx_t_11)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
            __Pyx_INCREF(__pyx_t_11);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_12, function);
            __pyx_t_8 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_kp_s_Error_fetching_certificate_confi};
          __pyx_t_10 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 334, __pyx_L7_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        }
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":335
 *     except Exception:
 *       _LOGGER.exception('Error fetching certificate config')
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL             # <<<<<<<<<<<<<<
 *     if cert_config_wrapper is None:
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED
 */
        __pyx_r = GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L8_except_return;
      }
      goto __pyx_L7_except_error;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":331
 *   else:
 *     user_cb = credentials.cert_config_fetcher
 *     try:             # <<<<<<<<<<<<<<
 *       cert_config_wrapper = user_cb()
 *     except Exception:
 */
      __pyx_L7_except_error:;
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
      goto __pyx_L1_error;
      __pyx_L8_except_return:;
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
      goto __pyx_L0;
      __pyx_L10_try_end:;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":336
 *       _LOGGER.exception('Error fetching certificate config')
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL
 *     if cert_config_wrapper is None:             # <<<<<<<<<<<<<<
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED
 *     elif not isinstance(
 */
    __pyx_t_1 = (__pyx_v_cert_config_wrapper == Py_None);
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":337
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL
 *     if cert_config_wrapper is None:
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED             # <<<<<<<<<<<<<<
 *     elif not isinstance(
 *         cert_config_wrapper, grpc.ServerCertificateConfiguration):
 */
      __pyx_r = GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED;
      goto __pyx_L0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":336
 *       _LOGGER.exception('Error fetching certificate config')
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL
 *     if cert_config_wrapper is None:             # <<<<<<<<<<<<<<
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED
 *     elif not isinstance(
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":339
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED
 *     elif not isinstance(
 *         cert_config_wrapper, grpc.ServerCertificateConfiguration):             # <<<<<<<<<<<<<<
 *       _LOGGER.error(
 *           'Error fetching certificate configuration: certificate '
 */
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_grpc); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 339, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_ServerCertificateConfiguration); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 339, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":338
 *     if cert_config_wrapper is None:
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED
 *     elif not isinstance(             # <<<<<<<<<<<<<<
 *         cert_config_wrapper, grpc.ServerCertificateConfiguration):
 *       _LOGGER.error(
 */
    __pyx_t_1 = PyObject_IsInstance(__pyx_v_cert_config_wrapper, __pyx_t_6); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(5, 338, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_13 = (!__pyx_t_1);
    if (__pyx_t_13) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":340
 *     elif not isinstance(
 *         cert_config_wrapper, grpc.ServerCertificateConfiguration):
 *       _LOGGER.error(             # <<<<<<<<<<<<<<
 *           'Error fetching certificate configuration: certificate '
 *           'configuration must be of type grpc.ServerCertificateConfiguration, '
 */
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 340, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 340, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":343
 *           'Error fetching certificate configuration: certificate '
 *           'configuration must be of type grpc.ServerCertificateConfiguration, '
 *           'not %s' % type(cert_config_wrapper).__name__)             # <<<<<<<<<<<<<<
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL
 *     else:
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_cert_config_wrapper)), __pyx_n_s_name_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 343, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_10 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Error_fetching_certificate_confi_2, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 343, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = NULL;
      __pyx_t_8 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_8 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_10};
        __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 340, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":344
 *           'configuration must be of type grpc.ServerCertificateConfiguration, '
 *           'not %s' % type(cert_config_wrapper).__name__)
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL             # <<<<<<<<<<<<<<
 *     else:
 *       cert_config = cert_config_wrapper._certificate_configuration
 */
      __pyx_r = GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL;
      goto __pyx_L0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":338
 *     if cert_config_wrapper is None:
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED
 *     elif not isinstance(             # <<<<<<<<<<<<<<
 *         cert_config_wrapper, grpc.ServerCertificateConfiguration):
 *       _LOGGER.error(
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":346
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL
 *     else:
 *       cert_config = cert_config_wrapper._certificate_configuration             # <<<<<<<<<<<<<<
 *   config[0] = <grpc_ssl_server_certificate_config*>cert_config.c_cert_config
 *   # our caller will assume ownership of memory, so we have to recreate
 */
    /*else*/ {
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_cert_config_wrapper, __pyx_n_s_certificate_configuration); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 346, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig))))) __PYX_ERR(5, 346, __pyx_L1_error)
      __Pyx_DECREF_SET(__pyx_v_cert_config, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)__pyx_t_6));
      __pyx_t_6 = 0;
    }
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":347
 *     else:
 *       cert_config = cert_config_wrapper._certificate_configuration
 *   config[0] = <grpc_ssl_server_certificate_config*>cert_config.c_cert_config             # <<<<<<<<<<<<<<
 *   # our caller will assume ownership of memory, so we have to recreate
 *   # a copy of c_cert_config here
 */
  (__pyx_v_config[0]) = ((grpc_ssl_server_certificate_config *)__pyx_v_cert_config->c_cert_config);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":350
 *   # our caller will assume ownership of memory, so we have to recreate
 *   # a copy of c_cert_config here
 *   cert_config.c_cert_config = grpc_ssl_server_certificate_config_create(             # <<<<<<<<<<<<<<
 *       cert_config.c_pem_root_certs, cert_config.c_ssl_pem_key_cert_pairs,
 *       cert_config.c_ssl_pem_key_cert_pairs_count)
 */
  __pyx_v_cert_config->c_cert_config = grpc_ssl_server_certificate_config_create(__pyx_v_cert_config->c_pem_root_certs, __pyx_v_cert_config->c_ssl_pem_key_cert_pairs, __pyx_v_cert_config->c_ssl_pem_key_cert_pairs_count);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":353
 *       cert_config.c_pem_root_certs, cert_config.c_ssl_pem_key_cert_pairs,
 *       cert_config.c_ssl_pem_key_cert_pairs_count)
 *   return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_NEW             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_NEW;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":318
 *   return credentials
 * 
 * cdef grpc_ssl_certificate_config_reload_status _server_cert_config_fetcher_wrapper(             # <<<<<<<<<<<<<<
 *         void* user_data, grpc_ssl_server_certificate_config **config) noexcept with gil:
 *   # This is a credentials.ServerCertificateConfig
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc._server_cert_config_fetcher_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = (grpc_ssl_certificate_config_reload_status) 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cert_config);
  __Pyx_XDECREF((PyObject *)__pyx_v_credentials);
  __Pyx_XDECREF(__pyx_v_user_cb);
  __Pyx_XDECREF(__pyx_v_cert_config_wrapper);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":362
 * cdef class LocalChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *     self._local_connect_type = local_connect_type
 * 
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  grpc_local_connect_type __pyx_v_local_connect_type;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_local_connect_type,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_local_connect_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 362, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(5, 362, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_local_connect_type = ((grpc_local_connect_type)__Pyx_PyInt_As_grpc_local_connect_type(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 362, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 362, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.LocalChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *)__pyx_v_self), __pyx_v_local_connect_type);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self, grpc_local_connect_type __pyx_v_local_connect_type) {
  int __pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":363
 * 
 *   def __cinit__(self, grpc_local_connect_type local_connect_type):
 *     self._local_connect_type = local_connect_type             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 */
  __pyx_v_self->_local_connect_type = __pyx_v_local_connect_type;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":362
 * cdef class LocalChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *     self._local_connect_type = local_connect_type
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":365
 *     self._local_connect_type = local_connect_type
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_local_connect_type local_connect_type
 *     local_connect_type = self._local_connect_type
 */

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self) {
  grpc_local_connect_type __pyx_v_local_connect_type;
  grpc_channel_credentials *__pyx_r;
  grpc_local_connect_type __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":367
 *   cdef grpc_channel_credentials *c(self) except *:
 *     cdef grpc_local_connect_type local_connect_type
 *     local_connect_type = self._local_connect_type             # <<<<<<<<<<<<<<
 *     return grpc_local_credentials_create(local_connect_type)
 * 
 */
  __pyx_t_1 = __pyx_v_self->_local_connect_type;
  __pyx_v_local_connect_type = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":368
 *     cdef grpc_local_connect_type local_connect_type
 *     local_connect_type = self._local_connect_type
 *     return grpc_local_credentials_create(local_connect_type)             # <<<<<<<<<<<<<<
 * 
 * def channel_credentials_local(grpc_local_connect_type local_connect_type):
 */
  __pyx_r = grpc_local_credentials_create(__pyx_v_local_connect_type);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":365
 *     self._local_connect_type = local_connect_type
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_local_connect_type local_connect_type
 *     local_connect_type = self._local_connect_type
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.LocalChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.LocalChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.LocalChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":370
 *     return grpc_local_credentials_create(local_connect_type)
 * 
 * def channel_credentials_local(grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *   return LocalChannelCredentials(local_connect_type)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29channel_credentials_local(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29channel_credentials_local = {"channel_credentials_local", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29channel_credentials_local, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29channel_credentials_local(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_local_connect_type __pyx_v_local_connect_type;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channel_credentials_local (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_local_connect_type,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_local_connect_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 370, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "channel_credentials_local") < 0)) __PYX_ERR(5, 370, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_local_connect_type = ((grpc_local_connect_type)__Pyx_PyInt_As_grpc_local_connect_type(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 370, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channel_credentials_local", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 370, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channel_credentials_local", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28channel_credentials_local(__pyx_self, __pyx_v_local_connect_type);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28channel_credentials_local(CYTHON_UNUSED PyObject *__pyx_self, grpc_local_connect_type __pyx_v_local_connect_type) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channel_credentials_local", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":371
 * 
 * def channel_credentials_local(grpc_local_connect_type local_connect_type):
 *   return LocalChannelCredentials(local_connect_type)             # <<<<<<<<<<<<<<
 * 
 * cdef class InsecureChannelCredentials(ChannelCredentials):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_local_connect_type(__pyx_v_local_connect_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":370
 *     return grpc_local_credentials_create(local_connect_type)
 * 
 * def channel_credentials_local(grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *   return LocalChannelCredentials(local_connect_type)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channel_credentials_local", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":375
 * cdef class InsecureChannelCredentials(ChannelCredentials):
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     return grpc_insecure_credentials_create()
 * 
 */

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_v_self) {
  grpc_channel_credentials *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":376
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 *     return grpc_insecure_credentials_create()             # <<<<<<<<<<<<<<
 * 
 * def channel_credentials_insecure():
 */
  __pyx_r = grpc_insecure_credentials_create();
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":375
 * cdef class InsecureChannelCredentials(ChannelCredentials):
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     return grpc_insecure_credentials_create()
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __Pyx_INCREF(__pyx_empty_tuple);
  __pyx_v_state = __pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict)) __PYX_ERR(10, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_InsecureChannelCr); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_238750788)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_InsecureChannelCredentials__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_InsecureChannelCr); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_238750788)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.InsecureChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_InsecureChannelCredentials__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.InsecureChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_InsecureChannelCredentials__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_InsecureChannelCredentials__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_InsecureChannelCredentials__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.InsecureChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":378
 *     return grpc_insecure_credentials_create()
 * 
 * def channel_credentials_insecure():             # <<<<<<<<<<<<<<
 *   return InsecureChannelCredentials()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31channel_credentials_insecure(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_31channel_credentials_insecure = {"channel_credentials_insecure", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_31channel_credentials_insecure, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31channel_credentials_insecure(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channel_credentials_insecure (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30channel_credentials_insecure(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30channel_credentials_insecure(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channel_credentials_insecure", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":379
 * 
 * def channel_credentials_insecure():
 *   return InsecureChannelCredentials()             # <<<<<<<<<<<<<<
 * 
 * def server_credentials_local(grpc_local_connect_type local_connect_type):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":378
 *     return grpc_insecure_credentials_create()
 * 
 * def channel_credentials_insecure():             # <<<<<<<<<<<<<<
 *   return InsecureChannelCredentials()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channel_credentials_insecure", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":381
 *   return InsecureChannelCredentials()
 * 
 * def server_credentials_local(grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_local_server_credentials_create(local_connect_type)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_33server_credentials_local(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_33server_credentials_local = {"server_credentials_local", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_33server_credentials_local, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_33server_credentials_local(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_local_connect_type __pyx_v_local_connect_type;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("server_credentials_local (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_local_connect_type,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_local_connect_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 381, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "server_credentials_local") < 0)) __PYX_ERR(5, 381, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_local_connect_type = ((grpc_local_connect_type)__Pyx_PyInt_As_grpc_local_connect_type(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 381, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("server_credentials_local", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 381, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_credentials_local", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_32server_credentials_local(__pyx_self, __pyx_v_local_connect_type);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_32server_credentials_local(CYTHON_UNUSED PyObject *__pyx_self, grpc_local_connect_type __pyx_v_local_connect_type) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_credentials = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("server_credentials_local", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":382
 * 
 * def server_credentials_local(grpc_local_connect_type local_connect_type):
 *   cdef ServerCredentials credentials = ServerCredentials()             # <<<<<<<<<<<<<<
 *   credentials.c_credentials = grpc_local_server_credentials_create(local_connect_type)
 *   return credentials
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":383
 * def server_credentials_local(grpc_local_connect_type local_connect_type):
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_local_server_credentials_create(local_connect_type)             # <<<<<<<<<<<<<<
 *   return credentials
 * 
 */
  __pyx_v_credentials->c_credentials = grpc_local_server_credentials_create(__pyx_v_local_connect_type);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":384
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_local_server_credentials_create(local_connect_type)
 *   return credentials             # <<<<<<<<<<<<<<
 * 
 * def xds_server_credentials(ServerCredentials fallback_credentials):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_credentials);
  __pyx_r = ((PyObject *)__pyx_v_credentials);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":381
 *   return InsecureChannelCredentials()
 * 
 * def server_credentials_local(grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_local_server_credentials_create(local_connect_type)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_credentials_local", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_credentials);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":386
 *   return credentials
 * 
 * def xds_server_credentials(ServerCredentials fallback_credentials):             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_xds_server_credentials_create(fallback_credentials.c_credentials)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_35xds_server_credentials(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_35xds_server_credentials = {"xds_server_credentials", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_35xds_server_credentials, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_35xds_server_credentials(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_fallback_credentials = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("xds_server_credentials (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fallback_credentials,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fallback_credentials)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 386, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "xds_server_credentials") < 0)) __PYX_ERR(5, 386, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_fallback_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("xds_server_credentials", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 386, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.xds_server_credentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fallback_credentials), __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials, 1, "fallback_credentials", 0))) __PYX_ERR(5, 386, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_34xds_server_credentials(__pyx_self, __pyx_v_fallback_credentials);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_34xds_server_credentials(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_fallback_credentials) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_credentials = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("xds_server_credentials", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":387
 * 
 * def xds_server_credentials(ServerCredentials fallback_credentials):
 *   cdef ServerCredentials credentials = ServerCredentials()             # <<<<<<<<<<<<<<
 *   credentials.c_credentials = grpc_xds_server_credentials_create(fallback_credentials.c_credentials)
 *   # NOTE: We do not need to call grpc_server_credentials_release on the
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":388
 * def xds_server_credentials(ServerCredentials fallback_credentials):
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_xds_server_credentials_create(fallback_credentials.c_credentials)             # <<<<<<<<<<<<<<
 *   # NOTE: We do not need to call grpc_server_credentials_release on the
 *   # fallback credentials here because this will be done by the __dealloc__
 */
  __pyx_v_credentials->c_credentials = grpc_xds_server_credentials_create(__pyx_v_fallback_credentials->c_credentials);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":392
 *   # fallback credentials here because this will be done by the __dealloc__
 *   # method of its Cython wrapper.
 *   return credentials             # <<<<<<<<<<<<<<
 * 
 * def insecure_server_credentials():
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_credentials);
  __pyx_r = ((PyObject *)__pyx_v_credentials);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":386
 *   return credentials
 * 
 * def xds_server_credentials(ServerCredentials fallback_credentials):             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_xds_server_credentials_create(fallback_credentials.c_credentials)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.xds_server_credentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_credentials);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":394
 *   return credentials
 * 
 * def insecure_server_credentials():             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_insecure_server_credentials_create()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_37insecure_server_credentials(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_37insecure_server_credentials = {"insecure_server_credentials", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_37insecure_server_credentials, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_37insecure_server_credentials(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("insecure_server_credentials (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_36insecure_server_credentials(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_36insecure_server_credentials(CYTHON_UNUSED PyObject *__pyx_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_credentials = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("insecure_server_credentials", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":395
 * 
 * def insecure_server_credentials():
 *   cdef ServerCredentials credentials = ServerCredentials()             # <<<<<<<<<<<<<<
 *   credentials.c_credentials = grpc_insecure_server_credentials_create()
 *   return credentials
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":396
 * def insecure_server_credentials():
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_insecure_server_credentials_create()             # <<<<<<<<<<<<<<
 *   return credentials
 * 
 */
  __pyx_v_credentials->c_credentials = grpc_insecure_server_credentials_create();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":397
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_insecure_server_credentials_create()
 *   return credentials             # <<<<<<<<<<<<<<
 * 
 * cdef class ALTSChannelCredentials(ChannelCredentials):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_credentials);
  __pyx_r = ((PyObject *)__pyx_v_credentials);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":394
 *   return credentials
 * 
 * def insecure_server_credentials():             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_insecure_server_credentials_create()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.insecure_server_credentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_credentials);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":401
 * cdef class ALTSChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, list service_accounts):             # <<<<<<<<<<<<<<
 *     self.c_options = grpc_alts_credentials_client_options_create()
 *     cdef str account
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_service_accounts = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_service_accounts,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_service_accounts)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 401, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(5, 401, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_service_accounts = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 401, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ALTSChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_service_accounts), (&PyList_Type), 1, "service_accounts", 1))) __PYX_ERR(5, 401, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *)__pyx_v_self), __pyx_v_service_accounts);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self, PyObject *__pyx_v_service_accounts) {
  PyObject *__pyx_v_account = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  char const *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":402
 * 
 *   def __cinit__(self, list service_accounts):
 *     self.c_options = grpc_alts_credentials_client_options_create()             # <<<<<<<<<<<<<<
 *     cdef str account
 *     for account in service_accounts:
 */
  __pyx_v_self->c_options = grpc_alts_credentials_client_options_create();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":404
 *     self.c_options = grpc_alts_credentials_client_options_create()
 *     cdef str account
 *     for account in service_accounts:             # <<<<<<<<<<<<<<
 *       grpc_alts_credentials_client_options_add_target_service_account(
 *           self.c_options, str_to_bytes(account))
 */
  if (unlikely(__pyx_v_service_accounts == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(5, 404, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_v_service_accounts; __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
      #if !CYTHON_ASSUME_SAFE_MACROS
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 404, __pyx_L1_error)
      #endif
      if (__pyx_t_2 >= __pyx_temp) break;
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(5, 404, __pyx_L1_error)
    #else
    __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    if (!(likely(PyString_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(5, 404, __pyx_L1_error)
    __Pyx_XDECREF_SET(__pyx_v_account, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":406
 *     for account in service_accounts:
 *       grpc_alts_credentials_client_options_add_target_service_account(
 *           self.c_options, str_to_bytes(account))             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
 */
    __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_account); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 406, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (unlikely(__pyx_t_3 == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
      __PYX_ERR(5, 406, __pyx_L1_error)
    }
    __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_t_3); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(5, 406, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":405
 *     cdef str account
 *     for account in service_accounts:
 *       grpc_alts_credentials_client_options_add_target_service_account(             # <<<<<<<<<<<<<<
 *           self.c_options, str_to_bytes(account))
 * 
 */
    grpc_alts_credentials_client_options_add_target_service_account(__pyx_v_self->c_options, __pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":404
 *     self.c_options = grpc_alts_credentials_client_options_create()
 *     cdef str account
 *     for account in service_accounts:             # <<<<<<<<<<<<<<
 *       grpc_alts_credentials_client_options_add_target_service_account(
 *           self.c_options, str_to_bytes(account))
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":401
 * cdef class ALTSChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, list service_accounts):             # <<<<<<<<<<<<<<
 *     self.c_options = grpc_alts_credentials_client_options_create()
 *     cdef str account
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ALTSChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_account);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":408
 *           self.c_options, str_to_bytes(account))
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self.c_options != NULL:
 *       grpc_alts_credentials_options_destroy(self.c_options)
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":409
 * 
 *   def __dealloc__(self):
 *     if self.c_options != NULL:             # <<<<<<<<<<<<<<
 *       grpc_alts_credentials_options_destroy(self.c_options)
 * 
 */
  __pyx_t_1 = (__pyx_v_self->c_options != NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":410
 *   def __dealloc__(self):
 *     if self.c_options != NULL:
 *       grpc_alts_credentials_options_destroy(self.c_options)             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 */
    grpc_alts_credentials_options_destroy(__pyx_v_self->c_options);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":409
 * 
 *   def __dealloc__(self):
 *     if self.c_options != NULL:             # <<<<<<<<<<<<<<
 *       grpc_alts_credentials_options_destroy(self.c_options)
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":408
 *           self.c_options, str_to_bytes(account))
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self.c_options != NULL:
 *       grpc_alts_credentials_options_destroy(self.c_options)
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":412
 *       grpc_alts_credentials_options_destroy(self.c_options)
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     return grpc_alts_credentials_create(self.c_options)
 * 
 */

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self) {
  grpc_channel_credentials *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":413
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 *     return grpc_alts_credentials_create(self.c_options)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = grpc_alts_credentials_create(__pyx_v_self->c_options);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":412
 *       grpc_alts_credentials_options_destroy(self.c_options)
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     return grpc_alts_credentials_create(self.c_options)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ALTSChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ALTSChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ALTSChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":416
 * 
 * 
 * def channel_credentials_alts(list service_accounts):             # <<<<<<<<<<<<<<
 *   return ALTSChannelCredentials(service_accounts)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_39channel_credentials_alts(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_39channel_credentials_alts = {"channel_credentials_alts", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_39channel_credentials_alts, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_39channel_credentials_alts(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_service_accounts = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channel_credentials_alts (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_service_accounts,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_service_accounts)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 416, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "channel_credentials_alts") < 0)) __PYX_ERR(5, 416, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_service_accounts = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channel_credentials_alts", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 416, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channel_credentials_alts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_service_accounts), (&PyList_Type), 1, "service_accounts", 1))) __PYX_ERR(5, 416, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_38channel_credentials_alts(__pyx_self, __pyx_v_service_accounts);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_38channel_credentials_alts(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_service_accounts) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channel_credentials_alts", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":417
 * 
 * def channel_credentials_alts(list service_accounts):
 *   return ALTSChannelCredentials(service_accounts)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials), __pyx_v_service_accounts); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":416
 * 
 * 
 * def channel_credentials_alts(list service_accounts):             # <<<<<<<<<<<<<<
 *   return ALTSChannelCredentials(service_accounts)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channel_credentials_alts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":420
 * 
 * 
 * def server_credentials_alts():             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   cdef grpc_alts_credentials_options* c_options = grpc_alts_credentials_server_options_create()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_41server_credentials_alts(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_41server_credentials_alts = {"server_credentials_alts", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_41server_credentials_alts, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_41server_credentials_alts(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("server_credentials_alts (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_40server_credentials_alts(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_40server_credentials_alts(CYTHON_UNUSED PyObject *__pyx_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_credentials = 0;
  grpc_alts_credentials_options *__pyx_v_c_options;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("server_credentials_alts", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":421
 * 
 * def server_credentials_alts():
 *   cdef ServerCredentials credentials = ServerCredentials()             # <<<<<<<<<<<<<<
 *   cdef grpc_alts_credentials_options* c_options = grpc_alts_credentials_server_options_create()
 *   credentials.c_credentials = grpc_alts_server_credentials_create(c_options)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":422
 * def server_credentials_alts():
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   cdef grpc_alts_credentials_options* c_options = grpc_alts_credentials_server_options_create()             # <<<<<<<<<<<<<<
 *   credentials.c_credentials = grpc_alts_server_credentials_create(c_options)
 *   # Options can be destroyed as deep copy was performed.
 */
  __pyx_v_c_options = grpc_alts_credentials_server_options_create();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":423
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   cdef grpc_alts_credentials_options* c_options = grpc_alts_credentials_server_options_create()
 *   credentials.c_credentials = grpc_alts_server_credentials_create(c_options)             # <<<<<<<<<<<<<<
 *   # Options can be destroyed as deep copy was performed.
 *   grpc_alts_credentials_options_destroy(c_options)
 */
  __pyx_v_credentials->c_credentials = grpc_alts_server_credentials_create(__pyx_v_c_options);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":425
 *   credentials.c_credentials = grpc_alts_server_credentials_create(c_options)
 *   # Options can be destroyed as deep copy was performed.
 *   grpc_alts_credentials_options_destroy(c_options)             # <<<<<<<<<<<<<<
 *   return credentials
 * 
 */
  grpc_alts_credentials_options_destroy(__pyx_v_c_options);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":426
 *   # Options can be destroyed as deep copy was performed.
 *   grpc_alts_credentials_options_destroy(c_options)
 *   return credentials             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_credentials);
  __pyx_r = ((PyObject *)__pyx_v_credentials);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":420
 * 
 * 
 * def server_credentials_alts():             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   cdef grpc_alts_credentials_options* c_options = grpc_alts_credentials_server_options_create()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_credentials_alts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_credentials);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":433
 *   cdef grpc_call_credentials* _call_creds
 * 
 *   def __cinit__(self, CallCredentials call_creds):             # <<<<<<<<<<<<<<
 *     self._c_creds = NULL
 *     self._call_creds = call_creds.c()
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_creds = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_call_creds,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call_creds)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 433, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(5, 433, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_call_creds = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 433, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ComputeEngineChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_creds), __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, 1, "call_creds", 0))) __PYX_ERR(5, 433, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *)__pyx_v_self), __pyx_v_call_creds);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_creds) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  grpc_call_credentials *__pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":434
 * 
 *   def __cinit__(self, CallCredentials call_creds):
 *     self._c_creds = NULL             # <<<<<<<<<<<<<<
 *     self._call_creds = call_creds.c()
 *     if self._call_creds == NULL:
 */
  __pyx_v_self->_c_creds = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":435
 *   def __cinit__(self, CallCredentials call_creds):
 *     self._c_creds = NULL
 *     self._call_creds = call_creds.c()             # <<<<<<<<<<<<<<
 *     if self._call_creds == NULL:
 *       raise ValueError("Call credentials may not be NULL.")
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_call_creds->__pyx_vtab)->c(__pyx_v_call_creds); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 435, __pyx_L1_error)
  __pyx_v_self->_call_creds = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":436
 *     self._c_creds = NULL
 *     self._call_creds = call_creds.c()
 *     if self._call_creds == NULL:             # <<<<<<<<<<<<<<
 *       raise ValueError("Call credentials may not be NULL.")
 * 
 */
  __pyx_t_2 = (__pyx_v_self->_call_creds == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":437
 *     self._call_creds = call_creds.c()
 *     if self._call_creds == NULL:
 *       raise ValueError("Call credentials may not be NULL.")             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(5, 437, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":436
 *     self._c_creds = NULL
 *     self._call_creds = call_creds.c()
 *     if self._call_creds == NULL:             # <<<<<<<<<<<<<<
 *       raise ValueError("Call credentials may not be NULL.")
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":433
 *   cdef grpc_call_credentials* _call_creds
 * 
 *   def __cinit__(self, CallCredentials call_creds):             # <<<<<<<<<<<<<<
 *     self._c_creds = NULL
 *     self._call_creds = call_creds.c()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ComputeEngineChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":439
 *       raise ValueError("Call credentials may not be NULL.")
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     with nogil:
 *       self._c_creds = grpc_google_default_credentials_create(self._call_creds)
 */

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self) {
  grpc_channel_credentials *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":440
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 *     with nogil:             # <<<<<<<<<<<<<<
 *       self._c_creds = grpc_google_default_credentials_create(self._call_creds)
 *       return self._c_creds
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":441
 *   cdef grpc_channel_credentials *c(self) except *:
 *     with nogil:
 *       self._c_creds = grpc_google_default_credentials_create(self._call_creds)             # <<<<<<<<<<<<<<
 *       return self._c_creds
 * 
 */
        __pyx_v_self->_c_creds = grpc_google_default_credentials_create(__pyx_v_self->_call_creds);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":442
 *     with nogil:
 *       self._c_creds = grpc_google_default_credentials_create(self._call_creds)
 *       return self._c_creds             # <<<<<<<<<<<<<<
 * 
 * 
 */
        __pyx_r = __pyx_v_self->_c_creds;
        goto __pyx_L3_return;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":440
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 *     with nogil:             # <<<<<<<<<<<<<<
 *       self._c_creds = grpc_google_default_credentials_create(self._call_creds)
 *       return self._c_creds
 */
      /*finally:*/ {
        __pyx_L3_return: {
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L0;
        }
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":439
 *       raise ValueError("Call credentials may not be NULL.")
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     with nogil:
 *       self._c_creds = grpc_google_default_credentials_create(self._call_creds)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ComputeEngineChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ComputeEngineChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ComputeEngineChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":445
 * 
 * 
 * def channel_credentials_compute_engine(call_creds):             # <<<<<<<<<<<<<<
 *   return ComputeEngineChannelCredentials(call_creds)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_43channel_credentials_compute_engine(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_43channel_credentials_compute_engine = {"channel_credentials_compute_engine", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_43channel_credentials_compute_engine, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_43channel_credentials_compute_engine(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_call_creds = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channel_credentials_compute_engine (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_call_creds,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call_creds)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 445, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "channel_credentials_compute_engine") < 0)) __PYX_ERR(5, 445, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_call_creds = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channel_credentials_compute_engine", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 445, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channel_credentials_compute_engine", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_42channel_credentials_compute_engine(__pyx_self, __pyx_v_call_creds);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_42channel_credentials_compute_engine(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_call_creds) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channel_credentials_compute_engine", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":446
 * 
 * def channel_credentials_compute_engine(call_creds):
 *   return ComputeEngineChannelCredentials(call_creds)             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials), __pyx_v_call_creds); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 446, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":445
 * 
 * 
 * def channel_credentials_compute_engine(call_creds):             # <<<<<<<<<<<<<<
 *   return ComputeEngineChannelCredentials(call_creds)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channel_credentials_compute_engine", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":18
 * g_interrupt_check_period_ms = 200
 * 
 * cdef grpc_event _next(grpc_completion_queue *c_completion_queue, deadline) except *:             # <<<<<<<<<<<<<<
 *   global g_interrupt_check_period_ms
 *   cdef gpr_timespec c_increment
 */

static grpc_event __pyx_f_4grpc_7_cython_6cygrpc__next(grpc_completion_queue *__pyx_v_c_completion_queue, PyObject *__pyx_v_deadline) {
  gpr_timespec __pyx_v_c_increment;
  gpr_timespec __pyx_v_c_timeout;
  gpr_timespec __pyx_v_c_deadline;
  grpc_event __pyx_v_c_event;
  grpc_event __pyx_r;
  int __pyx_t_1;
  gpr_timespec __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":23
 *   cdef gpr_timespec c_timeout
 *   cdef gpr_timespec c_deadline
 *   c_increment = gpr_time_from_millis(g_interrupt_check_period_ms, GPR_TIMESPAN)             # <<<<<<<<<<<<<<
 *   if deadline is None:
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
 */
  __pyx_v_c_increment = gpr_time_from_millis(__pyx_v_4grpc_7_cython_6cygrpc_g_interrupt_check_period_ms, GPR_TIMESPAN);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":24
 *   cdef gpr_timespec c_deadline
 *   c_increment = gpr_time_from_millis(g_interrupt_check_period_ms, GPR_TIMESPAN)
 *   if deadline is None:             # <<<<<<<<<<<<<<
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
 *   else:
 */
  __pyx_t_1 = (__pyx_v_deadline == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":25
 *   c_increment = gpr_time_from_millis(g_interrupt_check_period_ms, GPR_TIMESPAN)
 *   if deadline is None:
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)             # <<<<<<<<<<<<<<
 *   else:
 *     c_deadline = _timespec_from_time(deadline)
 */
    __pyx_v_c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":24
 *   cdef gpr_timespec c_deadline
 *   c_increment = gpr_time_from_millis(g_interrupt_check_period_ms, GPR_TIMESPAN)
 *   if deadline is None:             # <<<<<<<<<<<<<<
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
 *   else:
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":27
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
 *   else:
 *     c_deadline = _timespec_from_time(deadline)             # <<<<<<<<<<<<<<
 * 
 *   while True:
 */
  /*else*/ {
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(__pyx_v_deadline); if (unlikely(PyErr_Occurred())) __PYX_ERR(15, 27, __pyx_L1_error)
    __pyx_v_c_deadline = __pyx_t_2;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":29
 *     c_deadline = _timespec_from_time(deadline)
 * 
 *   while True:             # <<<<<<<<<<<<<<
 *     with nogil:
 *       c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 */
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":30
 * 
 *   while True:
 *     with nogil:             # <<<<<<<<<<<<<<
 *       c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 *       if gpr_time_cmp(c_timeout, c_deadline) > 0:
 */
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        #endif
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":31
 *   while True:
 *     with nogil:
 *       c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)             # <<<<<<<<<<<<<<
 *       if gpr_time_cmp(c_timeout, c_deadline) > 0:
 *         c_timeout = c_deadline
 */
          __pyx_v_c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), __pyx_v_c_increment);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":32
 *     with nogil:
 *       c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 *       if gpr_time_cmp(c_timeout, c_deadline) > 0:             # <<<<<<<<<<<<<<
 *         c_timeout = c_deadline
 * 
 */
          __pyx_t_1 = (gpr_time_cmp(__pyx_v_c_timeout, __pyx_v_c_deadline) > 0);
          if (__pyx_t_1) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":33
 *       c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 *       if gpr_time_cmp(c_timeout, c_deadline) > 0:
 *         c_timeout = c_deadline             # <<<<<<<<<<<<<<
 * 
 *       c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)
 */
            __pyx_v_c_timeout = __pyx_v_c_deadline;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":32
 *     with nogil:
 *       c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 *       if gpr_time_cmp(c_timeout, c_deadline) > 0:             # <<<<<<<<<<<<<<
 *         c_timeout = c_deadline
 * 
 */
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":35
 *         c_timeout = c_deadline
 * 
 *       c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)             # <<<<<<<<<<<<<<
 * 
 *       if (c_event.type != GRPC_QUEUE_TIMEOUT or
 */
          __pyx_v_c_event = grpc_completion_queue_next(__pyx_v_c_completion_queue, __pyx_v_c_timeout, NULL);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":37
 *       c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)
 * 
 *       if (c_event.type != GRPC_QUEUE_TIMEOUT or             # <<<<<<<<<<<<<<
 *           gpr_time_cmp(c_timeout, c_deadline) == 0):
 *         break
 */
          __pyx_t_3 = (__pyx_v_c_event.type != GRPC_QUEUE_TIMEOUT);
          if (!__pyx_t_3) {
          } else {
            __pyx_t_1 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":38
 * 
 *       if (c_event.type != GRPC_QUEUE_TIMEOUT or
 *           gpr_time_cmp(c_timeout, c_deadline) == 0):             # <<<<<<<<<<<<<<
 *         break
 * 
 */
          __pyx_t_3 = (gpr_time_cmp(__pyx_v_c_timeout, __pyx_v_c_deadline) == 0);
          __pyx_t_1 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":37
 *       c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)
 * 
 *       if (c_event.type != GRPC_QUEUE_TIMEOUT or             # <<<<<<<<<<<<<<
 *           gpr_time_cmp(c_timeout, c_deadline) == 0):
 *         break
 */
          if (__pyx_t_1) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":39
 *       if (c_event.type != GRPC_QUEUE_TIMEOUT or
 *           gpr_time_cmp(c_timeout, c_deadline) == 0):
 *         break             # <<<<<<<<<<<<<<
 * 
 *     # Handle any signals
 */
            goto __pyx_L7_break;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":37
 *       c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)
 * 
 *       if (c_event.type != GRPC_QUEUE_TIMEOUT or             # <<<<<<<<<<<<<<
 *           gpr_time_cmp(c_timeout, c_deadline) == 0):
 *         break
 */
          }
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":30
 * 
 *   while True:
 *     with nogil:             # <<<<<<<<<<<<<<
 *       c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 *       if gpr_time_cmp(c_timeout, c_deadline) > 0:
 */
        /*finally:*/ {
          /*normal exit:*/{
            #ifdef WITH_THREAD
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L10;
          }
          __pyx_L7_break: {
            #ifdef WITH_THREAD
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L5_break;
          }
          __pyx_L10:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":42
 * 
 *     # Handle any signals
 *     cpython.PyErr_CheckSignals()             # <<<<<<<<<<<<<<
 *   return c_event
 * 
 */
    __pyx_t_4 = PyErr_CheckSignals(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(15, 42, __pyx_L1_error)
  }
  __pyx_L5_break:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":43
 *     # Handle any signals
 *     cpython.PyErr_CheckSignals()
 *   return c_event             # <<<<<<<<<<<<<<
 * 
 * cdef _interpret_event(grpc_event c_event):
 */
  __pyx_r = __pyx_v_c_event;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":18
 * g_interrupt_check_period_ms = 200
 * 
 * cdef grpc_event _next(grpc_completion_queue *c_completion_queue, deadline) except *:             # <<<<<<<<<<<<<<
 *   global g_interrupt_check_period_ms
 *   cdef gpr_timespec c_increment
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":45
 *   return c_event
 * 
 * cdef _interpret_event(grpc_event c_event):             # <<<<<<<<<<<<<<
 *   cdef _Tag tag
 *   if c_event.type == GRPC_QUEUE_TIMEOUT:
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__interpret_event(grpc_event __pyx_v_c_event) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v_tag = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_interpret_event", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":47
 * cdef _interpret_event(grpc_event c_event):
 *   cdef _Tag tag
 *   if c_event.type == GRPC_QUEUE_TIMEOUT:             # <<<<<<<<<<<<<<
 *     # TODO(ericgribkoff) Do not coopt ConnectivityEvent here.
 *     return None, ConnectivityEvent(GRPC_QUEUE_TIMEOUT, False, None)
 */
  switch (__pyx_v_c_event.type) {
    case GRPC_QUEUE_TIMEOUT:

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":49
 *   if c_event.type == GRPC_QUEUE_TIMEOUT:
 *     # TODO(ericgribkoff) Do not coopt ConnectivityEvent here.
 *     return None, ConnectivityEvent(GRPC_QUEUE_TIMEOUT, False, None)             # <<<<<<<<<<<<<<
 *   elif c_event.type == GRPC_QUEUE_SHUTDOWN:
 *     # NOTE(nathaniel): For now we coopt ConnectivityEvent here.
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_From_grpc_completion_type(GRPC_QUEUE_TIMEOUT); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 49, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 49, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(15, 49, __pyx_L1_error);
    __Pyx_INCREF(Py_False);
    __Pyx_GIVEREF(Py_False);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, Py_False)) __PYX_ERR(15, 49, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None)) __PYX_ERR(15, 49, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 49, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 49, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, Py_None)) __PYX_ERR(15, 49, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(15, 49, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":47
 * cdef _interpret_event(grpc_event c_event):
 *   cdef _Tag tag
 *   if c_event.type == GRPC_QUEUE_TIMEOUT:             # <<<<<<<<<<<<<<
 *     # TODO(ericgribkoff) Do not coopt ConnectivityEvent here.
 *     return None, ConnectivityEvent(GRPC_QUEUE_TIMEOUT, False, None)
 */
    break;
    case GRPC_QUEUE_SHUTDOWN:

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":52
 *   elif c_event.type == GRPC_QUEUE_SHUTDOWN:
 *     # NOTE(nathaniel): For now we coopt ConnectivityEvent here.
 *     return None, ConnectivityEvent(GRPC_QUEUE_SHUTDOWN, False, None)             # <<<<<<<<<<<<<<
 *   else:
 *     tag = <_Tag>c_event.tag
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyInt_From_grpc_completion_type(GRPC_QUEUE_SHUTDOWN); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 52, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 52, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(15, 52, __pyx_L1_error);
    __Pyx_INCREF(Py_False);
    __Pyx_GIVEREF(Py_False);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, Py_False)) __PYX_ERR(15, 52, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(15, 52, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 52, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 52, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, Py_None)) __PYX_ERR(15, 52, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2)) __PYX_ERR(15, 52, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":50
 *     # TODO(ericgribkoff) Do not coopt ConnectivityEvent here.
 *     return None, ConnectivityEvent(GRPC_QUEUE_TIMEOUT, False, None)
 *   elif c_event.type == GRPC_QUEUE_SHUTDOWN:             # <<<<<<<<<<<<<<
 *     # NOTE(nathaniel): For now we coopt ConnectivityEvent here.
 *     return None, ConnectivityEvent(GRPC_QUEUE_SHUTDOWN, False, None)
 */
    break;
    default:

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":54
 *     return None, ConnectivityEvent(GRPC_QUEUE_SHUTDOWN, False, None)
 *   else:
 *     tag = <_Tag>c_event.tag             # <<<<<<<<<<<<<<
 *     # We receive event tags only after they've been inc-ref'd elsewhere in
 *     # the code.
 */
    __pyx_t_1 = ((PyObject *)__pyx_v_c_event.tag);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":57
 *     # We receive event tags only after they've been inc-ref'd elsewhere in
 *     # the code.
 *     cpython.Py_DECREF(tag)             # <<<<<<<<<<<<<<
 *     return tag, tag.event(c_event)
 * 
 */
    Py_DECREF(((PyObject *)__pyx_v_tag));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":58
 *     # the code.
 *     cpython.Py_DECREF(tag)
 *     return tag, tag.event(c_event)             # <<<<<<<<<<<<<<
 * 
 * cdef _internal_latent_event(_LatentEventArg latent_event_arg):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag *)__pyx_v_tag->__pyx_vtab)->event(__pyx_v_tag, __pyx_v_c_event)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 58, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 58, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF((PyObject *)__pyx_v_tag);
    __Pyx_GIVEREF((PyObject *)__pyx_v_tag);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_tag))) __PYX_ERR(15, 58, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(15, 58, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
    break;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":45
 *   return c_event
 * 
 * cdef _interpret_event(grpc_event c_event):             # <<<<<<<<<<<<<<
 *   cdef _Tag tag
 *   if c_event.type == GRPC_QUEUE_TIMEOUT:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._interpret_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":60
 *     return tag, tag.event(c_event)
 * 
 * cdef _internal_latent_event(_LatentEventArg latent_event_arg):             # <<<<<<<<<<<<<<
 *   cdef grpc_event c_event = _next(latent_event_arg.c_completion_queue, latent_event_arg.deadline)
 *   return _interpret_event(c_event)
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__internal_latent_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *__pyx_v_latent_event_arg) {
  grpc_event __pyx_v_c_event;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  grpc_event __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_internal_latent_event", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":61
 * 
 * cdef _internal_latent_event(_LatentEventArg latent_event_arg):
 *   cdef grpc_event c_event = _next(latent_event_arg.c_completion_queue, latent_event_arg.deadline)             # <<<<<<<<<<<<<<
 *   return _interpret_event(c_event)
 * 
 */
  __pyx_t_1 = __pyx_v_latent_event_arg->deadline;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__next(__pyx_v_latent_event_arg->c_completion_queue, __pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(15, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_c_event = __pyx_t_2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":62
 * cdef _internal_latent_event(_LatentEventArg latent_event_arg):
 *   cdef grpc_event c_event = _next(latent_event_arg.c_completion_queue, latent_event_arg.deadline)
 *   return _interpret_event(c_event)             # <<<<<<<<<<<<<<
 * 
 * cdef _latent_event(grpc_completion_queue *c_completion_queue, object deadline):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__interpret_event(__pyx_v_c_event); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":60
 *     return tag, tag.event(c_event)
 * 
 * cdef _internal_latent_event(_LatentEventArg latent_event_arg):             # <<<<<<<<<<<<<<
 *   cdef grpc_event c_event = _next(latent_event_arg.c_completion_queue, latent_event_arg.deadline)
 *   return _interpret_event(c_event)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._internal_latent_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":64
 *   return _interpret_event(c_event)
 * 
 * cdef _latent_event(grpc_completion_queue *c_completion_queue, object deadline):             # <<<<<<<<<<<<<<
 *     global g_gevent_activated
 * 
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__latent_event(grpc_completion_queue *__pyx_v_c_completion_queue, PyObject *__pyx_v_deadline) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *__pyx_v_latent_event_arg = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  unsigned int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_latent_event", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":67
 *     global g_gevent_activated
 * 
 *     latent_event_arg = _LatentEventArg()             # <<<<<<<<<<<<<<
 *     latent_event_arg.c_completion_queue = c_completion_queue
 *     latent_event_arg.deadline = deadline
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_latent_event_arg = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":68
 * 
 *     latent_event_arg = _LatentEventArg()
 *     latent_event_arg.c_completion_queue = c_completion_queue             # <<<<<<<<<<<<<<
 *     latent_event_arg.deadline = deadline
 * 
 */
  __pyx_v_latent_event_arg->c_completion_queue = __pyx_v_c_completion_queue;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":69
 *     latent_event_arg = _LatentEventArg()
 *     latent_event_arg.c_completion_queue = c_completion_queue
 *     latent_event_arg.deadline = deadline             # <<<<<<<<<<<<<<
 * 
 *     if g_gevent_activated:
 */
  __Pyx_INCREF(__pyx_v_deadline);
  __Pyx_GIVEREF(__pyx_v_deadline);
  __Pyx_GOTREF(__pyx_v_latent_event_arg->deadline);
  __Pyx_DECREF(__pyx_v_latent_event_arg->deadline);
  __pyx_v_latent_event_arg->deadline = __pyx_v_deadline;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":71
 *     latent_event_arg.deadline = deadline
 * 
 *     if g_gevent_activated:             # <<<<<<<<<<<<<<
 *       # For gevent, completion_queue_next is run in a native thread pool.
 *       global g_gevent_threadpool
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_g_gevent_activated); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(15, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":75
 *       global g_gevent_threadpool
 * 
 *       result = g_gevent_threadpool.apply(_internal_latent_event, (latent_event_arg,))             # <<<<<<<<<<<<<<
 *       return result
 *     else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_g_gevent_threadpool); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_apply); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(__pyx_f_4grpc_7_cython_6cygrpc__internal_latent_event); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF((PyObject *)__pyx_v_latent_event_arg);
    __Pyx_GIVEREF((PyObject *)__pyx_v_latent_event_arg);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_latent_event_arg))) __PYX_ERR(15, 75, __pyx_L1_error);
    __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_5};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 75, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_v_result = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":76
 * 
 *       result = g_gevent_threadpool.apply(_internal_latent_event, (latent_event_arg,))
 *       return result             # <<<<<<<<<<<<<<
 *     else:
 *       return _internal_latent_event(latent_event_arg)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_result);
    __pyx_r = __pyx_v_result;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":71
 *     latent_event_arg.deadline = deadline
 * 
 *     if g_gevent_activated:             # <<<<<<<<<<<<<<
 *       # For gevent, completion_queue_next is run in a native thread pool.
 *       global g_gevent_threadpool
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":78
 *       return result
 *     else:
 *       return _internal_latent_event(latent_event_arg)             # <<<<<<<<<<<<<<
 * 
 * cdef class CompletionQueue:
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__internal_latent_event(__pyx_v_latent_event_arg); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 78, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":64
 *   return _interpret_event(c_event)
 * 
 * cdef _latent_event(grpc_completion_queue *c_completion_queue, object deadline):             # <<<<<<<<<<<<<<
 *     global g_gevent_activated
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc._latent_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_latent_event_arg);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":82
 * cdef class CompletionQueue:
 * 
 *   def __cinit__(self, shutdown_cq=False):             # <<<<<<<<<<<<<<
 *     cdef grpc_completion_queue_attributes c_attrs
 *     fork_handlers_and_grpc_init()
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_shutdown_cq = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shutdown_cq,0};
    values[0] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_False));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_shutdown_cq);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(15, 82, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(15, 82, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_shutdown_cq = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, __pyx_nargs); __PYX_ERR(15, 82, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self), __pyx_v_shutdown_cq);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, PyObject *__pyx_v_shutdown_cq) {
  grpc_completion_queue_attributes __pyx_v_c_attrs;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":84
 *   def __cinit__(self, shutdown_cq=False):
 *     cdef grpc_completion_queue_attributes c_attrs
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     if shutdown_cq:
 *       c_attrs.version = 1
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":85
 *     cdef grpc_completion_queue_attributes c_attrs
 *     fork_handlers_and_grpc_init()
 *     if shutdown_cq:             # <<<<<<<<<<<<<<
 *       c_attrs.version = 1
 *       c_attrs.cq_completion_type = GRPC_CQ_NEXT
 */
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_shutdown_cq); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(15, 85, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":86
 *     fork_handlers_and_grpc_init()
 *     if shutdown_cq:
 *       c_attrs.version = 1             # <<<<<<<<<<<<<<
 *       c_attrs.cq_completion_type = GRPC_CQ_NEXT
 *       c_attrs.cq_polling_type = GRPC_CQ_NON_LISTENING
 */
    __pyx_v_c_attrs.version = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":87
 *     if shutdown_cq:
 *       c_attrs.version = 1
 *       c_attrs.cq_completion_type = GRPC_CQ_NEXT             # <<<<<<<<<<<<<<
 *       c_attrs.cq_polling_type = GRPC_CQ_NON_LISTENING
 *       c_attrs.cq_shutdown_cb = NULL
 */
    __pyx_v_c_attrs.cq_completion_type = GRPC_CQ_NEXT;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":88
 *       c_attrs.version = 1
 *       c_attrs.cq_completion_type = GRPC_CQ_NEXT
 *       c_attrs.cq_polling_type = GRPC_CQ_NON_LISTENING             # <<<<<<<<<<<<<<
 *       c_attrs.cq_shutdown_cb = NULL
 *       self.c_completion_queue = grpc_completion_queue_create(
 */
    __pyx_v_c_attrs.cq_polling_type = GRPC_CQ_NON_LISTENING;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":89
 *       c_attrs.cq_completion_type = GRPC_CQ_NEXT
 *       c_attrs.cq_polling_type = GRPC_CQ_NON_LISTENING
 *       c_attrs.cq_shutdown_cb = NULL             # <<<<<<<<<<<<<<
 *       self.c_completion_queue = grpc_completion_queue_create(
 *           grpc_completion_queue_factory_lookup(&c_attrs), &c_attrs, NULL);
 */
    __pyx_v_c_attrs.cq_shutdown_cb = NULL;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":90
 *       c_attrs.cq_polling_type = GRPC_CQ_NON_LISTENING
 *       c_attrs.cq_shutdown_cb = NULL
 *       self.c_completion_queue = grpc_completion_queue_create(             # <<<<<<<<<<<<<<
 *           grpc_completion_queue_factory_lookup(&c_attrs), &c_attrs, NULL);
 *     else:
 */
    __pyx_v_self->c_completion_queue = grpc_completion_queue_create(grpc_completion_queue_factory_lookup((&__pyx_v_c_attrs)), (&__pyx_v_c_attrs), NULL);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":85
 *     cdef grpc_completion_queue_attributes c_attrs
 *     fork_handlers_and_grpc_init()
 *     if shutdown_cq:             # <<<<<<<<<<<<<<
 *       c_attrs.version = 1
 *       c_attrs.cq_completion_type = GRPC_CQ_NEXT
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":93
 *           grpc_completion_queue_factory_lookup(&c_attrs), &c_attrs, NULL);
 *     else:
 *       self.c_completion_queue = grpc_completion_queue_create_for_next(NULL)             # <<<<<<<<<<<<<<
 *     self.is_shutting_down = False
 *     self.is_shutdown = False
 */
  /*else*/ {
    __pyx_v_self->c_completion_queue = grpc_completion_queue_create_for_next(NULL);
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":94
 *     else:
 *       self.c_completion_queue = grpc_completion_queue_create_for_next(NULL)
 *     self.is_shutting_down = False             # <<<<<<<<<<<<<<
 *     self.is_shutdown = False
 * 
 */
  __pyx_v_self->is_shutting_down = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":95
 *       self.c_completion_queue = grpc_completion_queue_create_for_next(NULL)
 *     self.is_shutting_down = False
 *     self.is_shutdown = False             # <<<<<<<<<<<<<<
 * 
 *   cdef _interpret_event(self, grpc_event c_event):
 */
  __pyx_v_self->is_shutdown = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":82
 * cdef class CompletionQueue:
 * 
 *   def __cinit__(self, shutdown_cq=False):             # <<<<<<<<<<<<<<
 *     cdef grpc_completion_queue_attributes c_attrs
 *     fork_handlers_and_grpc_init()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":97
 *     self.is_shutdown = False
 * 
 *   cdef _interpret_event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     unused_tag, event = _interpret_event(c_event)
 *     if event.completion_type == GRPC_QUEUE_SHUTDOWN:
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_15CompletionQueue__interpret_event(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, grpc_event __pyx_v_c_event) {
  CYTHON_UNUSED PyObject *__pyx_v_unused_tag = NULL;
  PyObject *__pyx_v_event = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_interpret_event", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":98
 * 
 *   cdef _interpret_event(self, grpc_event c_event):
 *     unused_tag, event = _interpret_event(c_event)             # <<<<<<<<<<<<<<
 *     if event.completion_type == GRPC_QUEUE_SHUTDOWN:
 *       self.is_shutdown = True
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__interpret_event(__pyx_v_c_event); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(15, 98, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 98, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 98, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 98, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_4);
    index = 0; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) __PYX_ERR(15, 98, __pyx_L1_error)
    __pyx_t_5 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(15, 98, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_unused_tag = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_event = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":99
 *   cdef _interpret_event(self, grpc_event c_event):
 *     unused_tag, event = _interpret_event(c_event)
 *     if event.completion_type == GRPC_QUEUE_SHUTDOWN:             # <<<<<<<<<<<<<<
 *       self.is_shutdown = True
 *     return event
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event, __pyx_n_s_completion_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_From_grpc_completion_type(GRPC_QUEUE_SHUTDOWN); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 99, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(15, 99, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":100
 *     unused_tag, event = _interpret_event(c_event)
 *     if event.completion_type == GRPC_QUEUE_SHUTDOWN:
 *       self.is_shutdown = True             # <<<<<<<<<<<<<<
 *     return event
 * 
 */
    __pyx_v_self->is_shutdown = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":99
 *   cdef _interpret_event(self, grpc_event c_event):
 *     unused_tag, event = _interpret_event(c_event)
 *     if event.completion_type == GRPC_QUEUE_SHUTDOWN:             # <<<<<<<<<<<<<<
 *       self.is_shutdown = True
 *     return event
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":101
 *     if event.completion_type == GRPC_QUEUE_SHUTDOWN:
 *       self.is_shutdown = True
 *     return event             # <<<<<<<<<<<<<<
 * 
 *   def _internal_poll(self, deadline):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_event);
  __pyx_r = __pyx_v_event;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":97
 *     self.is_shutdown = False
 * 
 *   cdef _interpret_event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     unused_tag, event = _interpret_event(c_event)
 *     if event.completion_type == GRPC_QUEUE_SHUTDOWN:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue._interpret_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_unused_tag);
  __Pyx_XDECREF(__pyx_v_event);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":103
 *     return event
 * 
 *   def _internal_poll(self, deadline):             # <<<<<<<<<<<<<<
 *     return self._interpret_event(_next(self.c_completion_queue, deadline))
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_3_internal_poll(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_3_internal_poll = {"_internal_poll", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_3_internal_poll, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_3_internal_poll(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_deadline = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_internal_poll (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_deadline,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_deadline)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(15, 103, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_internal_poll") < 0)) __PYX_ERR(15, 103, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_deadline = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_internal_poll", 1, 1, 1, __pyx_nargs); __PYX_ERR(15, 103, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue._internal_poll", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_2_internal_poll(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self), __pyx_v_deadline);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_2_internal_poll(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, PyObject *__pyx_v_deadline) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  grpc_event __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_internal_poll", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":104
 * 
 *   def _internal_poll(self, deadline):
 *     return self._interpret_event(_next(self.c_completion_queue, deadline))             # <<<<<<<<<<<<<<
 * 
 *   # We name this 'poll' to avoid problems with CPython's expectations for
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__next(__pyx_v_self->c_completion_queue, __pyx_v_deadline); if (unlikely(PyErr_Occurred())) __PYX_ERR(15, 104, __pyx_L1_error)
  __pyx_t_2 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self->__pyx_vtab)->_interpret_event(__pyx_v_self, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":103
 *     return event
 * 
 *   def _internal_poll(self, deadline):             # <<<<<<<<<<<<<<
 *     return self._interpret_event(_next(self.c_completion_queue, deadline))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue._internal_poll", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":108
 *   # We name this 'poll' to avoid problems with CPython's expectations for
 *   # 'special' methods (like next and __next__).
 *   def poll(self, deadline=None):             # <<<<<<<<<<<<<<
 *     global g_gevent_activated
 *     if g_gevent_activated:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_5poll(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_5poll = {"poll", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_5poll, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_5poll(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_deadline = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("poll (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_deadline,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_deadline);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(15, 108, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "poll") < 0)) __PYX_ERR(15, 108, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_deadline = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("poll", 0, 0, 1, __pyx_nargs); __PYX_ERR(15, 108, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.poll", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_4poll(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self), __pyx_v_deadline);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_4poll(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, PyObject *__pyx_v_deadline) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  unsigned int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("poll", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":110
 *   def poll(self, deadline=None):
 *     global g_gevent_activated
 *     if g_gevent_activated:             # <<<<<<<<<<<<<<
 *       return g_gevent_threadpool.apply(CompletionQueue._internal_poll, (self, deadline))
 *     else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_g_gevent_activated); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(15, 110, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":111
 *     global g_gevent_activated
 *     if g_gevent_activated:
 *       return g_gevent_threadpool.apply(CompletionQueue._internal_poll, (self, deadline))             # <<<<<<<<<<<<<<
 *     else:
 *       return self._internal_poll(deadline)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_g_gevent_threadpool); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_apply); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue), __pyx_n_s_internal_poll); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF((PyObject *)__pyx_v_self);
    __Pyx_GIVEREF((PyObject *)__pyx_v_self);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_self))) __PYX_ERR(15, 111, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_deadline);
    __Pyx_GIVEREF(__pyx_v_deadline);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_deadline)) __PYX_ERR(15, 111, __pyx_L1_error);
    __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_5};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 111, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":110
 *   def poll(self, deadline=None):
 *     global g_gevent_activated
 *     if g_gevent_activated:             # <<<<<<<<<<<<<<
 *       return g_gevent_threadpool.apply(CompletionQueue._internal_poll, (self, deadline))
 *     else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":113
 *       return g_gevent_threadpool.apply(CompletionQueue._internal_poll, (self, deadline))
 *     else:
 *       return self._internal_poll(deadline)             # <<<<<<<<<<<<<<
 * 
 *   def shutdown(self):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_internal_poll); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_deadline};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 113, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":108
 *   # We name this 'poll' to avoid problems with CPython's expectations for
 *   # 'special' methods (like next and __next__).
 *   def poll(self, deadline=None):             # <<<<<<<<<<<<<<
 *     global g_gevent_activated
 *     if g_gevent_activated:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.poll", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":115
 *       return self._internal_poll(deadline)
 * 
 *   def shutdown(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_completion_queue_shutdown(self.c_completion_queue)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_7shutdown(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_7shutdown = {"shutdown", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_7shutdown, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_7shutdown(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("shutdown", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "shutdown", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_6shutdown(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_6shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":116
 * 
 *   def shutdown(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_completion_queue_shutdown(self.c_completion_queue)
 *     self.is_shutting_down = True
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":117
 *   def shutdown(self):
 *     with nogil:
 *       grpc_completion_queue_shutdown(self.c_completion_queue)             # <<<<<<<<<<<<<<
 *     self.is_shutting_down = True
 * 
 */
        grpc_completion_queue_shutdown(__pyx_v_self->c_completion_queue);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":116
 * 
 *   def shutdown(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_completion_queue_shutdown(self.c_completion_queue)
 *     self.is_shutting_down = True
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":118
 *     with nogil:
 *       grpc_completion_queue_shutdown(self.c_completion_queue)
 *     self.is_shutting_down = True             # <<<<<<<<<<<<<<
 * 
 *   def clear(self):
 */
  __pyx_v_self->is_shutting_down = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":115
 *       return self._internal_poll(deadline)
 * 
 *   def shutdown(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_completion_queue_shutdown(self.c_completion_queue)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":120
 *     self.is_shutting_down = True
 * 
 *   def clear(self):             # <<<<<<<<<<<<<<
 *     if not self.is_shutting_down:
 *       raise ValueError('queue must be shutting down to be cleared')
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_9clear(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_9clear = {"clear", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_9clear, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_9clear(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("clear (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("clear", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "clear", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_8clear(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_8clear(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("clear", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":121
 * 
 *   def clear(self):
 *     if not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError('queue must be shutting down to be cleared')
 *     while self.poll().type != GRPC_QUEUE_SHUTDOWN:
 */
  __pyx_t_1 = (!__pyx_v_self->is_shutting_down);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":122
 *   def clear(self):
 *     if not self.is_shutting_down:
 *       raise ValueError('queue must be shutting down to be cleared')             # <<<<<<<<<<<<<<
 *     while self.poll().type != GRPC_QUEUE_SHUTDOWN:
 *       pass
 */
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(15, 122, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":121
 * 
 *   def clear(self):
 *     if not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError('queue must be shutting down to be cleared')
 *     while self.poll().type != GRPC_QUEUE_SHUTDOWN:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":123
 *     if not self.is_shutting_down:
 *       raise ValueError('queue must be shutting down to be cleared')
 *     while self.poll().type != GRPC_QUEUE_SHUTDOWN:             # <<<<<<<<<<<<<<
 *       pass
 * 
 */
  while (1) {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_poll); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 123, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyInt_From_grpc_completion_type(GRPC_QUEUE_SHUTDOWN); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 123, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(15, 123, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!__pyx_t_1) break;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":120
 *     self.is_shutting_down = True
 * 
 *   def clear(self):             # <<<<<<<<<<<<<<
 *     if not self.is_shutting_down:
 *       raise ValueError('queue must be shutting down to be cleared')
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.clear", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":126
 *       pass
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     cdef gpr_timespec c_deadline
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_11__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_11__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_10__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_10__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self) {
  gpr_timespec __pyx_v_c_deadline;
  grpc_event __pyx_v_event;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":128
 *   def __dealloc__(self):
 *     cdef gpr_timespec c_deadline
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)             # <<<<<<<<<<<<<<
 *     if self.c_completion_queue != NULL:
 *       # Ensure shutdown
 */
  __pyx_v_c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":129
 *     cdef gpr_timespec c_deadline
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
 *     if self.c_completion_queue != NULL:             # <<<<<<<<<<<<<<
 *       # Ensure shutdown
 *       if not self.is_shutting_down:
 */
  __pyx_t_1 = (__pyx_v_self->c_completion_queue != NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":131
 *     if self.c_completion_queue != NULL:
 *       # Ensure shutdown
 *       if not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *         grpc_completion_queue_shutdown(self.c_completion_queue)
 *       # Pump the queue (All outstanding calls should have been cancelled)
 */
    __pyx_t_1 = (!__pyx_v_self->is_shutting_down);
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":132
 *       # Ensure shutdown
 *       if not self.is_shutting_down:
 *         grpc_completion_queue_shutdown(self.c_completion_queue)             # <<<<<<<<<<<<<<
 *       # Pump the queue (All outstanding calls should have been cancelled)
 *       while not self.is_shutdown:
 */
      grpc_completion_queue_shutdown(__pyx_v_self->c_completion_queue);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":131
 *     if self.c_completion_queue != NULL:
 *       # Ensure shutdown
 *       if not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *         grpc_completion_queue_shutdown(self.c_completion_queue)
 *       # Pump the queue (All outstanding calls should have been cancelled)
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":134
 *         grpc_completion_queue_shutdown(self.c_completion_queue)
 *       # Pump the queue (All outstanding calls should have been cancelled)
 *       while not self.is_shutdown:             # <<<<<<<<<<<<<<
 *         event = grpc_completion_queue_next(
 *             self.c_completion_queue, c_deadline, NULL)
 */
    while (1) {
      __pyx_t_1 = (!__pyx_v_self->is_shutdown);
      if (!__pyx_t_1) break;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":135
 *       # Pump the queue (All outstanding calls should have been cancelled)
 *       while not self.is_shutdown:
 *         event = grpc_completion_queue_next(             # <<<<<<<<<<<<<<
 *             self.c_completion_queue, c_deadline, NULL)
 *         self._interpret_event(event)
 */
      __pyx_v_event = grpc_completion_queue_next(__pyx_v_self->c_completion_queue, __pyx_v_c_deadline, NULL);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":137
 *         event = grpc_completion_queue_next(
 *             self.c_completion_queue, c_deadline, NULL)
 *         self._interpret_event(event)             # <<<<<<<<<<<<<<
 *       grpc_completion_queue_destroy(self.c_completion_queue)
 *     grpc_shutdown()
 */
      __pyx_t_2 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self->__pyx_vtab)->_interpret_event(__pyx_v_self, __pyx_v_event); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 137, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":138
 *             self.c_completion_queue, c_deadline, NULL)
 *         self._interpret_event(event)
 *       grpc_completion_queue_destroy(self.c_completion_queue)             # <<<<<<<<<<<<<<
 *     grpc_shutdown()
 */
    grpc_completion_queue_destroy(__pyx_v_self->c_completion_queue);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":129
 *     cdef gpr_timespec c_deadline
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
 *     if self.c_completion_queue != NULL:             # <<<<<<<<<<<<<<
 *       # Ensure shutdown
 *       if not self.is_shutting_down:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":139
 *         self._interpret_event(event)
 *       grpc_completion_queue_destroy(self.c_completion_queue)
 *     grpc_shutdown()             # <<<<<<<<<<<<<<
 */
  grpc_shutdown();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":126
 *       pass
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     cdef gpr_timespec c_deadline
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.CompletionQueue.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_13__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_13__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_13__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_13__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_12__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_12__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_15__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_15__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_15__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_15__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_14__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_14__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":17
 * cdef class ConnectivityEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  grpc_completion_type __pyx_v_completion_type;
  int __pyx_v_success;
  PyObject *__pyx_v_tag = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_completion_type,&__pyx_n_s_success,&__pyx_n_s_tag,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_completion_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 17, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_success)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 17, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 1); __PYX_ERR(16, 17, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 17, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 2); __PYX_ERR(16, 17, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(16, 17, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
    }
    __pyx_v_completion_type = ((grpc_completion_type)__Pyx_PyInt_As_grpc_completion_type(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 18, __pyx_L3_error)
    __pyx_v_success = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_success == (int)-1) && PyErr_Occurred())) __PYX_ERR(16, 18, __pyx_L3_error)
    __pyx_v_tag = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(16, 17, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ConnectivityEvent.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)__pyx_v_self), __pyx_v_completion_type, __pyx_v_success, __pyx_v_tag);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":19
 *   def __cinit__(
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type             # <<<<<<<<<<<<<<
 *     self.success = success
 *     self.tag = tag
 */
  __pyx_v_self->completion_type = __pyx_v_completion_type;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":20
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type
 *     self.success = success             # <<<<<<<<<<<<<<
 *     self.tag = tag
 * 
 */
  __pyx_v_self->success = __pyx_v_success;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":21
 *     self.completion_type = completion_type
 *     self.success = success
 *     self.tag = tag             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_INCREF(__pyx_v_tag);
  __Pyx_GIVEREF(__pyx_v_tag);
  __Pyx_GOTREF(__pyx_v_self->tag);
  __Pyx_DECREF(__pyx_v_self->tag);
  __pyx_v_self->tag = __pyx_v_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":17
 * cdef class ConnectivityEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":20
 * cdef class ConnectivityEvent(BaseEvent):
 * 
 *   cdef readonly grpc_completion_type completion_type             # <<<<<<<<<<<<<<
 *   cdef readonly bint success
 *   cdef readonly object tag
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_15completion_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_15completion_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_15completion_type___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_completion_type(__pyx_v_self->completion_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ConnectivityEvent.completion_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":21
 * 
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success             # <<<<<<<<<<<<<<
 *   cdef readonly object tag
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_7success_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_7success_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_7success___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->success); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ConnectivityEvent.success.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":22
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success
 *   cdef readonly object tag             # <<<<<<<<<<<<<<
 * 
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3tag_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3tag_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3tag___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->tag);
  __pyx_r = __pyx_v_self->tag;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ConnectivityEvent.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ConnectivityEvent_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ConnectivityEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ConnectivityEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":26
 * cdef class RequestCallEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag,
 *       Call call, CallDetails call_details, tuple invocation_metadata):
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  grpc_completion_type __pyx_v_completion_type;
  int __pyx_v_success;
  PyObject *__pyx_v_tag = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_call_details = 0;
  PyObject *__pyx_v_invocation_metadata = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_completion_type,&__pyx_n_s_success,&__pyx_n_s_tag,&__pyx_n_s_call,&__pyx_n_s_call_details,&__pyx_n_s_invocation_metadata,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_completion_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 26, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_success)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 26, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 6, 6, 1); __PYX_ERR(16, 26, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 26, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 6, 6, 2); __PYX_ERR(16, 26, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 26, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 6, 6, 3); __PYX_ERR(16, 26, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 26, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 6, 6, 4); __PYX_ERR(16, 26, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_invocation_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 26, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 6, 6, 5); __PYX_ERR(16, 26, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(16, 26, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
      values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
      values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
      values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
    }
    __pyx_v_completion_type = ((grpc_completion_type)__Pyx_PyInt_As_grpc_completion_type(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 27, __pyx_L3_error)
    __pyx_v_success = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_success == (int)-1) && PyErr_Occurred())) __PYX_ERR(16, 27, __pyx_L3_error)
    __pyx_v_tag = values[2];
    __pyx_v_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)values[3]);
    __pyx_v_call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)values[4]);
    __pyx_v_invocation_metadata = ((PyObject*)values[5]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 6, 6, __pyx_nargs); __PYX_ERR(16, 26, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.RequestCallEvent.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call), __pyx_ptype_4grpc_7_cython_6cygrpc_Call, 1, "call", 0))) __PYX_ERR(16, 28, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_details), __pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails, 1, "call_details", 0))) __PYX_ERR(16, 28, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_invocation_metadata), (&PyTuple_Type), 1, "invocation_metadata", 1))) __PYX_ERR(16, 28, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self), __pyx_v_completion_type, __pyx_v_success, __pyx_v_tag, __pyx_v_call, __pyx_v_call_details, __pyx_v_invocation_metadata);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_call_details, PyObject *__pyx_v_invocation_metadata) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":29
 *       self, grpc_completion_type completion_type, bint success, object tag,
 *       Call call, CallDetails call_details, tuple invocation_metadata):
 *     self.completion_type = completion_type             # <<<<<<<<<<<<<<
 *     self.success = success
 *     self.tag = tag
 */
  __pyx_v_self->completion_type = __pyx_v_completion_type;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":30
 *       Call call, CallDetails call_details, tuple invocation_metadata):
 *     self.completion_type = completion_type
 *     self.success = success             # <<<<<<<<<<<<<<
 *     self.tag = tag
 *     self.call = call
 */
  __pyx_v_self->success = __pyx_v_success;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":31
 *     self.completion_type = completion_type
 *     self.success = success
 *     self.tag = tag             # <<<<<<<<<<<<<<
 *     self.call = call
 *     self.call_details = call_details
 */
  __Pyx_INCREF(__pyx_v_tag);
  __Pyx_GIVEREF(__pyx_v_tag);
  __Pyx_GOTREF(__pyx_v_self->tag);
  __Pyx_DECREF(__pyx_v_self->tag);
  __pyx_v_self->tag = __pyx_v_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":32
 *     self.success = success
 *     self.tag = tag
 *     self.call = call             # <<<<<<<<<<<<<<
 *     self.call_details = call_details
 *     self.invocation_metadata = invocation_metadata
 */
  __Pyx_INCREF((PyObject *)__pyx_v_call);
  __Pyx_GIVEREF((PyObject *)__pyx_v_call);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->call);
  __Pyx_DECREF((PyObject *)__pyx_v_self->call);
  __pyx_v_self->call = __pyx_v_call;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":33
 *     self.tag = tag
 *     self.call = call
 *     self.call_details = call_details             # <<<<<<<<<<<<<<
 *     self.invocation_metadata = invocation_metadata
 * 
 */
  __Pyx_INCREF((PyObject *)__pyx_v_call_details);
  __Pyx_GIVEREF((PyObject *)__pyx_v_call_details);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->call_details);
  __Pyx_DECREF((PyObject *)__pyx_v_self->call_details);
  __pyx_v_self->call_details = __pyx_v_call_details;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":34
 *     self.call = call
 *     self.call_details = call_details
 *     self.invocation_metadata = invocation_metadata             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_INCREF(__pyx_v_invocation_metadata);
  __Pyx_GIVEREF(__pyx_v_invocation_metadata);
  __Pyx_GOTREF(__pyx_v_self->invocation_metadata);
  __Pyx_DECREF(__pyx_v_self->invocation_metadata);
  __pyx_v_self->invocation_metadata = __pyx_v_invocation_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":26
 * cdef class RequestCallEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag,
 *       Call call, CallDetails call_details, tuple invocation_metadata):
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":27
 * cdef class RequestCallEvent(BaseEvent):
 * 
 *   cdef readonly grpc_completion_type completion_type             # <<<<<<<<<<<<<<
 *   cdef readonly bint success
 *   cdef readonly object tag
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_15completion_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_15completion_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_15completion_type___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_completion_type(__pyx_v_self->completion_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RequestCallEvent.completion_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":28
 * 
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success             # <<<<<<<<<<<<<<
 *   cdef readonly object tag
 *   cdef readonly Call call
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_7success_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_7success_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_7success___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->success); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RequestCallEvent.success.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":29
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success
 *   cdef readonly object tag             # <<<<<<<<<<<<<<
 *   cdef readonly Call call
 *   cdef readonly CallDetails call_details
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_3tag_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_3tag_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_3tag___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->tag);
  __pyx_r = __pyx_v_self->tag;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":30
 *   cdef readonly bint success
 *   cdef readonly object tag
 *   cdef readonly Call call             # <<<<<<<<<<<<<<
 *   cdef readonly CallDetails call_details
 *   cdef readonly tuple invocation_metadata
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_4call_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_4call_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_4call___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_4call___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->call);
  __pyx_r = ((PyObject *)__pyx_v_self->call);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":31
 *   cdef readonly object tag
 *   cdef readonly Call call
 *   cdef readonly CallDetails call_details             # <<<<<<<<<<<<<<
 *   cdef readonly tuple invocation_metadata
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_12call_details_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_12call_details_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_12call_details___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_12call_details___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->call_details);
  __pyx_r = ((PyObject *)__pyx_v_self->call_details);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":32
 *   cdef readonly Call call
 *   cdef readonly CallDetails call_details
 *   cdef readonly tuple invocation_metadata             # <<<<<<<<<<<<<<
 * 
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_19invocation_metadata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_19invocation_metadata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_19invocation_metadata___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_19invocation_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->invocation_metadata);
  __pyx_r = __pyx_v_self->invocation_metadata;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16RequestCallEvent_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.RequestCallEvent.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16RequestCallEvent_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.RequestCallEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.RequestCallEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":39
 * cdef class BatchOperationEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag,
 *       object batch_operations):
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  grpc_completion_type __pyx_v_completion_type;
  int __pyx_v_success;
  PyObject *__pyx_v_tag = 0;
  PyObject *__pyx_v_batch_operations = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_completion_type,&__pyx_n_s_success,&__pyx_n_s_tag,&__pyx_n_s_batch_operations,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_completion_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 39, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_success)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 39, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 1); __PYX_ERR(16, 39, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 39, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 2); __PYX_ERR(16, 39, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_batch_operations)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 39, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 3); __PYX_ERR(16, 39, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(16, 39, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
      values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
    }
    __pyx_v_completion_type = ((grpc_completion_type)__Pyx_PyInt_As_grpc_completion_type(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 40, __pyx_L3_error)
    __pyx_v_success = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_success == (int)-1) && PyErr_Occurred())) __PYX_ERR(16, 40, __pyx_L3_error)
    __pyx_v_tag = values[2];
    __pyx_v_batch_operations = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, __pyx_nargs); __PYX_ERR(16, 39, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.BatchOperationEvent.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_v_self), __pyx_v_completion_type, __pyx_v_success, __pyx_v_tag, __pyx_v_batch_operations);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag, PyObject *__pyx_v_batch_operations) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":42
 *       self, grpc_completion_type completion_type, bint success, object tag,
 *       object batch_operations):
 *     self.completion_type = completion_type             # <<<<<<<<<<<<<<
 *     self.success = success
 *     self.tag = tag
 */
  __pyx_v_self->completion_type = __pyx_v_completion_type;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":43
 *       object batch_operations):
 *     self.completion_type = completion_type
 *     self.success = success             # <<<<<<<<<<<<<<
 *     self.tag = tag
 *     self.batch_operations = batch_operations
 */
  __pyx_v_self->success = __pyx_v_success;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":44
 *     self.completion_type = completion_type
 *     self.success = success
 *     self.tag = tag             # <<<<<<<<<<<<<<
 *     self.batch_operations = batch_operations
 * 
 */
  __Pyx_INCREF(__pyx_v_tag);
  __Pyx_GIVEREF(__pyx_v_tag);
  __Pyx_GOTREF(__pyx_v_self->tag);
  __Pyx_DECREF(__pyx_v_self->tag);
  __pyx_v_self->tag = __pyx_v_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":45
 *     self.success = success
 *     self.tag = tag
 *     self.batch_operations = batch_operations             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_INCREF(__pyx_v_batch_operations);
  __Pyx_GIVEREF(__pyx_v_batch_operations);
  __Pyx_GOTREF(__pyx_v_self->batch_operations);
  __Pyx_DECREF(__pyx_v_self->batch_operations);
  __pyx_v_self->batch_operations = __pyx_v_batch_operations;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":39
 * cdef class BatchOperationEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag,
 *       object batch_operations):
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":37
 * cdef class BatchOperationEvent(BaseEvent):
 * 
 *   cdef readonly grpc_completion_type completion_type             # <<<<<<<<<<<<<<
 *   cdef readonly bint success
 *   cdef readonly object tag
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_15completion_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_15completion_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_15completion_type___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_completion_type(__pyx_v_self->completion_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.BatchOperationEvent.completion_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":38
 * 
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success             # <<<<<<<<<<<<<<
 *   cdef readonly object tag
 *   cdef readonly object batch_operations
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_7success_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_7success_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_7success___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->success); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.BatchOperationEvent.success.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":39
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success
 *   cdef readonly object tag             # <<<<<<<<<<<<<<
 *   cdef readonly object batch_operations
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3tag_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3tag_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3tag___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->tag);
  __pyx_r = __pyx_v_self->tag;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":40
 *   cdef readonly bint success
 *   cdef readonly object tag
 *   cdef readonly object batch_operations             # <<<<<<<<<<<<<<
 * 
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_16batch_operations_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_16batch_operations_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_16batch_operations___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_16batch_operations___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->batch_operations);
  __pyx_r = __pyx_v_self->batch_operations;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.BatchOperationEvent.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19BatchOperationEvent_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.BatchOperationEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.BatchOperationEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":50
 * cdef class ServerShutdownEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  grpc_completion_type __pyx_v_completion_type;
  int __pyx_v_success;
  PyObject *__pyx_v_tag = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_completion_type,&__pyx_n_s_success,&__pyx_n_s_tag,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_completion_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 50, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_success)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 50, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 1); __PYX_ERR(16, 50, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 50, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 2); __PYX_ERR(16, 50, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(16, 50, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
    }
    __pyx_v_completion_type = ((grpc_completion_type)__Pyx_PyInt_As_grpc_completion_type(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 51, __pyx_L3_error)
    __pyx_v_success = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_success == (int)-1) && PyErr_Occurred())) __PYX_ERR(16, 51, __pyx_L3_error)
    __pyx_v_tag = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(16, 50, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerShutdownEvent.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)__pyx_v_self), __pyx_v_completion_type, __pyx_v_success, __pyx_v_tag);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":52
 *   def __cinit__(
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type             # <<<<<<<<<<<<<<
 *     self.success = success
 *     self.tag = tag
 */
  __pyx_v_self->completion_type = __pyx_v_completion_type;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":53
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type
 *     self.success = success             # <<<<<<<<<<<<<<
 *     self.tag = tag
 */
  __pyx_v_self->success = __pyx_v_success;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":54
 *     self.completion_type = completion_type
 *     self.success = success
 *     self.tag = tag             # <<<<<<<<<<<<<<
 */
  __Pyx_INCREF(__pyx_v_tag);
  __Pyx_GIVEREF(__pyx_v_tag);
  __Pyx_GOTREF(__pyx_v_self->tag);
  __Pyx_DECREF(__pyx_v_self->tag);
  __pyx_v_self->tag = __pyx_v_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":50
 * cdef class ServerShutdownEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":45
 * cdef class ServerShutdownEvent(BaseEvent):
 * 
 *   cdef readonly grpc_completion_type completion_type             # <<<<<<<<<<<<<<
 *   cdef readonly bint success
 *   cdef readonly object tag
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_15completion_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_15completion_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_15completion_type___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_completion_type(__pyx_v_self->completion_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerShutdownEvent.completion_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":46
 * 
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success             # <<<<<<<<<<<<<<
 *   cdef readonly object tag
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_7success_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_7success_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_7success___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->success); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerShutdownEvent.success.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":47
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success
 *   cdef readonly object tag             # <<<<<<<<<<<<<<
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3tag_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3tag_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3tag___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->tag);
  __pyx_r = __pyx_v_self->tag;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerShutdownEvent.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerShutdownEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerShutdownEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":27
 * 
 * 
 * cdef void _store_c_metadata(             # <<<<<<<<<<<<<<
 *     metadata, grpc_metadata **c_metadata, size_t *c_count) except *:
 *   if metadata is None:
 */

static void __pyx_f_4grpc_7_cython_6cygrpc__store_c_metadata(PyObject *__pyx_v_metadata, grpc_metadata **__pyx_v_c_metadata, size_t *__pyx_v_c_count) {
  PyObject *__pyx_v_metadatum_count = NULL;
  PyObject *__pyx_v_index = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_encoded_key = NULL;
  PyObject *__pyx_v_encoded_value = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *(*__pyx_t_11)(PyObject *);
  int __pyx_t_12;
  grpc_slice __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_store_c_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":29
 * cdef void _store_c_metadata(
 *     metadata, grpc_metadata **c_metadata, size_t *c_count) except *:
 *   if metadata is None:             # <<<<<<<<<<<<<<
 *     c_count[0] = 0
 *     c_metadata[0] = NULL
 */
  __pyx_t_1 = (__pyx_v_metadata == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":30
 *     metadata, grpc_metadata **c_metadata, size_t *c_count) except *:
 *   if metadata is None:
 *     c_count[0] = 0             # <<<<<<<<<<<<<<
 *     c_metadata[0] = NULL
 *   else:
 */
    (__pyx_v_c_count[0]) = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":31
 *   if metadata is None:
 *     c_count[0] = 0
 *     c_metadata[0] = NULL             # <<<<<<<<<<<<<<
 *   else:
 *     metadatum_count = len(metadata)
 */
    (__pyx_v_c_metadata[0]) = NULL;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":29
 * cdef void _store_c_metadata(
 *     metadata, grpc_metadata **c_metadata, size_t *c_count) except *:
 *   if metadata is None:             # <<<<<<<<<<<<<<
 *     c_count[0] = 0
 *     c_metadata[0] = NULL
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":33
 *     c_metadata[0] = NULL
 *   else:
 *     metadatum_count = len(metadata)             # <<<<<<<<<<<<<<
 *     if metadatum_count == 0:
 *       c_count[0] = 0
 */
  /*else*/ {
    __pyx_t_2 = PyObject_Length(__pyx_v_metadata); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(18, 33, __pyx_L1_error)
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 33, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_metadatum_count = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":34
 *   else:
 *     metadatum_count = len(metadata)
 *     if metadatum_count == 0:             # <<<<<<<<<<<<<<
 *       c_count[0] = 0
 *       c_metadata[0] = NULL
 */
    __pyx_t_1 = (__Pyx_PyInt_BoolEqObjC(__pyx_v_metadatum_count, __pyx_int_0, 0, 0)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(18, 34, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":35
 *     metadatum_count = len(metadata)
 *     if metadatum_count == 0:
 *       c_count[0] = 0             # <<<<<<<<<<<<<<
 *       c_metadata[0] = NULL
 *     else:
 */
      (__pyx_v_c_count[0]) = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":36
 *     if metadatum_count == 0:
 *       c_count[0] = 0
 *       c_metadata[0] = NULL             # <<<<<<<<<<<<<<
 *     else:
 *       c_count[0] = metadatum_count
 */
      (__pyx_v_c_metadata[0]) = NULL;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":34
 *   else:
 *     metadatum_count = len(metadata)
 *     if metadatum_count == 0:             # <<<<<<<<<<<<<<
 *       c_count[0] = 0
 *       c_metadata[0] = NULL
 */
      goto __pyx_L4;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":38
 *       c_metadata[0] = NULL
 *     else:
 *       c_count[0] = metadatum_count             # <<<<<<<<<<<<<<
 *       c_metadata[0] = <grpc_metadata *>gpr_malloc(
 *           metadatum_count * sizeof(grpc_metadata))
 */
    /*else*/ {
      __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_v_metadatum_count); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(18, 38, __pyx_L1_error)
      (__pyx_v_c_count[0]) = __pyx_t_4;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":40
 *       c_count[0] = metadatum_count
 *       c_metadata[0] = <grpc_metadata *>gpr_malloc(
 *           metadatum_count * sizeof(grpc_metadata))             # <<<<<<<<<<<<<<
 *       for index, (key, value) in enumerate(metadata):
 *         encoded_key = _encode(key)
 */
      __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(grpc_metadata))); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 40, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = PyNumber_Multiply(__pyx_v_metadatum_count, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 40, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_5); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(18, 40, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":39
 *     else:
 *       c_count[0] = metadatum_count
 *       c_metadata[0] = <grpc_metadata *>gpr_malloc(             # <<<<<<<<<<<<<<
 *           metadatum_count * sizeof(grpc_metadata))
 *       for index, (key, value) in enumerate(metadata):
 */
      (__pyx_v_c_metadata[0]) = ((grpc_metadata *)gpr_malloc(__pyx_t_4));

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":41
 *       c_metadata[0] = <grpc_metadata *>gpr_malloc(
 *           metadatum_count * sizeof(grpc_metadata))
 *       for index, (key, value) in enumerate(metadata):             # <<<<<<<<<<<<<<
 *         encoded_key = _encode(key)
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)
 */
      __Pyx_INCREF(__pyx_int_0);
      __pyx_t_5 = __pyx_int_0;
      if (likely(PyList_CheckExact(__pyx_v_metadata)) || PyTuple_CheckExact(__pyx_v_metadata)) {
        __pyx_t_3 = __pyx_v_metadata; __Pyx_INCREF(__pyx_t_3);
        __pyx_t_2 = 0;
        __pyx_t_6 = NULL;
      } else {
        __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_metadata); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 41, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(18, 41, __pyx_L1_error)
      }
      for (;;) {
        if (likely(!__pyx_t_6)) {
          if (likely(PyList_CheckExact(__pyx_t_3))) {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
              #if !CYTHON_ASSUME_SAFE_MACROS
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(18, 41, __pyx_L1_error)
              #endif
              if (__pyx_t_2 >= __pyx_temp) break;
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(18, 41, __pyx_L1_error)
            #else
            __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 41, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          } else {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
              #if !CYTHON_ASSUME_SAFE_MACROS
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(18, 41, __pyx_L1_error)
              #endif
              if (__pyx_t_2 >= __pyx_temp) break;
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(18, 41, __pyx_L1_error)
            #else
            __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 41, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          }
        } else {
          __pyx_t_7 = __pyx_t_6(__pyx_t_3);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(18, 41, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
          PyObject* sequence = __pyx_t_7;
          Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
          if (unlikely(size != 2)) {
            if (size > 2) __Pyx_RaiseTooManyValuesError(2);
            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
            __PYX_ERR(18, 41, __pyx_L1_error)
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
            __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); 
          } else {
            __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
            __pyx_t_9 = PyList_GET_ITEM(sequence, 1); 
          }
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_9);
          #else
          __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(18, 41, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(18, 41, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        } else {
          Py_ssize_t index = -1;
          __pyx_t_10 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(18, 41, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_11 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_10);
          index = 0; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_8);
          index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L7_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_9);
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) __PYX_ERR(18, 41, __pyx_L1_error)
          __pyx_t_11 = NULL;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          goto __pyx_L8_unpacking_done;
          __pyx_L7_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_11 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          __PYX_ERR(18, 41, __pyx_L1_error)
          __pyx_L8_unpacking_done:;
        }
        __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_8);
        __pyx_t_8 = 0;
        __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_9);
        __pyx_t_9 = 0;
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_5);
        __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_5, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 41, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_5);
        __pyx_t_5 = __pyx_t_7;
        __pyx_t_7 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":42
 *           metadatum_count * sizeof(grpc_metadata))
 *       for index, (key, value) in enumerate(metadata):
 *         encoded_key = _encode(key)             # <<<<<<<<<<<<<<
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)
 *         if not isinstance(encoded_value, bytes):
 */
        __pyx_t_7 = __pyx_f_4grpc_7_cython_6cygrpc__encode(__pyx_v_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 42, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_XDECREF_SET(__pyx_v_encoded_key, ((PyObject*)__pyx_t_7));
        __pyx_t_7 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":43
 *       for index, (key, value) in enumerate(metadata):
 *         encoded_key = _encode(key)
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)             # <<<<<<<<<<<<<<
 *         if not isinstance(encoded_value, bytes):
 *           raise TypeError('Binary metadata key="%s" expected bytes, got %s' % (
 */
        if (unlikely(__pyx_v_encoded_key == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
          __PYX_ERR(18, 43, __pyx_L1_error)
        }
        __pyx_t_9 = PySequence_GetSlice(__pyx_v_encoded_key, -4L, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_9)) __PYX_ERR(18, 43, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_1 = (__Pyx_PyBytes_Equals(__pyx_t_9, __pyx_kp_b_bin, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(18, 43, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (__pyx_t_1) {
          __Pyx_INCREF(__pyx_v_value);
          __pyx_t_7 = __pyx_v_value;
        } else {
          __pyx_t_9 = __pyx_f_4grpc_7_cython_6cygrpc__encode(__pyx_v_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(18, 43, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_7 = __pyx_t_9;
          __pyx_t_9 = 0;
        }
        __Pyx_XDECREF_SET(__pyx_v_encoded_value, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":44
 *         encoded_key = _encode(key)
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)
 *         if not isinstance(encoded_value, bytes):             # <<<<<<<<<<<<<<
 *           raise TypeError('Binary metadata key="%s" expected bytes, got %s' % (
 *             key,
 */
        __pyx_t_1 = PyBytes_Check(__pyx_v_encoded_value); 
        __pyx_t_12 = (!__pyx_t_1);
        if (unlikely(__pyx_t_12)) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":46
 *         if not isinstance(encoded_value, bytes):
 *           raise TypeError('Binary metadata key="%s" expected bytes, got %s' % (
 *             key,             # <<<<<<<<<<<<<<
 *             type(encoded_value)
 *           ))
 */
          __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 46, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_INCREF(__pyx_v_key);
          __Pyx_GIVEREF(__pyx_v_key);
          if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_key)) __PYX_ERR(18, 46, __pyx_L1_error);
          __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_encoded_value)));
          __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_v_encoded_value)));
          if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)Py_TYPE(__pyx_v_encoded_value)))) __PYX_ERR(18, 46, __pyx_L1_error);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":45
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)
 *         if not isinstance(encoded_value, bytes):
 *           raise TypeError('Binary metadata key="%s" expected bytes, got %s' % (             # <<<<<<<<<<<<<<
 *             key,
 *             type(encoded_value)
 */
          __pyx_t_9 = __Pyx_PyString_Format(__pyx_kp_s_Binary_metadata_key_s_expected_b, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(18, 45, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 45, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_Raise(__pyx_t_7, 0, 0, 0);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __PYX_ERR(18, 45, __pyx_L1_error)

          /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":44
 *         encoded_key = _encode(key)
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)
 *         if not isinstance(encoded_value, bytes):             # <<<<<<<<<<<<<<
 *           raise TypeError('Binary metadata key="%s" expected bytes, got %s' % (
 *             key,
 */
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":49
 *             type(encoded_value)
 *           ))
 *         c_metadata[0][index].key = _slice_from_bytes(encoded_key)             # <<<<<<<<<<<<<<
 *         c_metadata[0][index].value = _slice_from_bytes(encoded_value)
 * 
 */
        __pyx_t_13 = __pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes(__pyx_v_encoded_key); if (unlikely(PyErr_Occurred())) __PYX_ERR(18, 49, __pyx_L1_error)
        __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(18, 49, __pyx_L1_error)
        ((__pyx_v_c_metadata[0])[__pyx_t_14]).key = __pyx_t_13;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":50
 *           ))
 *         c_metadata[0][index].key = _slice_from_bytes(encoded_key)
 *         c_metadata[0][index].value = _slice_from_bytes(encoded_value)             # <<<<<<<<<<<<<<
 * 
 * 
 */
        if (!(likely(PyBytes_CheckExact(__pyx_v_encoded_value))||((__pyx_v_encoded_value) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_encoded_value))) __PYX_ERR(18, 50, __pyx_L1_error)
        __pyx_t_13 = __pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes(((PyObject*)__pyx_v_encoded_value)); if (unlikely(PyErr_Occurred())) __PYX_ERR(18, 50, __pyx_L1_error)
        __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(18, 50, __pyx_L1_error)
        ((__pyx_v_c_metadata[0])[__pyx_t_14]).value = __pyx_t_13;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":41
 *       c_metadata[0] = <grpc_metadata *>gpr_malloc(
 *           metadatum_count * sizeof(grpc_metadata))
 *       for index, (key, value) in enumerate(metadata):             # <<<<<<<<<<<<<<
 *         encoded_key = _encode(key)
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)
 */
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __pyx_L4:;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":27
 * 
 * 
 * cdef void _store_c_metadata(             # <<<<<<<<<<<<<<
 *     metadata, grpc_metadata **c_metadata, size_t *c_count) except *:
 *   if metadata is None:
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("grpc._cython.cygrpc._store_c_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_metadatum_count);
  __Pyx_XDECREF(__pyx_v_index);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_encoded_key);
  __Pyx_XDECREF(__pyx_v_encoded_value);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":53
 * 
 * 
 * cdef void _release_c_metadata(grpc_metadata *c_metadata, int count) except *:             # <<<<<<<<<<<<<<
 *   if 0 < count:
 *     for index in range(count):
 */

static void __pyx_f_4grpc_7_cython_6cygrpc__release_c_metadata(grpc_metadata *__pyx_v_c_metadata, int __pyx_v_count) {
  int __pyx_v_index;
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":54
 * 
 * cdef void _release_c_metadata(grpc_metadata *c_metadata, int count) except *:
 *   if 0 < count:             # <<<<<<<<<<<<<<
 *     for index in range(count):
 *       grpc_slice_unref(c_metadata[index].key)
 */
  __pyx_t_1 = (0 < __pyx_v_count);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":55
 * cdef void _release_c_metadata(grpc_metadata *c_metadata, int count) except *:
 *   if 0 < count:
 *     for index in range(count):             # <<<<<<<<<<<<<<
 *       grpc_slice_unref(c_metadata[index].key)
 *       grpc_slice_unref(c_metadata[index].value)
 */
    __pyx_t_2 = __pyx_v_count;
    __pyx_t_3 = __pyx_t_2;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
      __pyx_v_index = __pyx_t_4;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":56
 *   if 0 < count:
 *     for index in range(count):
 *       grpc_slice_unref(c_metadata[index].key)             # <<<<<<<<<<<<<<
 *       grpc_slice_unref(c_metadata[index].value)
 *     gpr_free(c_metadata)
 */
      grpc_slice_unref((__pyx_v_c_metadata[__pyx_v_index]).key);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":57
 *     for index in range(count):
 *       grpc_slice_unref(c_metadata[index].key)
 *       grpc_slice_unref(c_metadata[index].value)             # <<<<<<<<<<<<<<
 *     gpr_free(c_metadata)
 * 
 */
      grpc_slice_unref((__pyx_v_c_metadata[__pyx_v_index]).value);
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":58
 *       grpc_slice_unref(c_metadata[index].key)
 *       grpc_slice_unref(c_metadata[index].value)
 *     gpr_free(c_metadata)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    gpr_free(__pyx_v_c_metadata);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":54
 * 
 * cdef void _release_c_metadata(grpc_metadata *c_metadata, int count) except *:
 *   if 0 < count:             # <<<<<<<<<<<<<<
 *     for index in range(count):
 *       grpc_slice_unref(c_metadata[index].key)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":53
 * 
 * 
 * cdef void _release_c_metadata(grpc_metadata *c_metadata, int count) except *:             # <<<<<<<<<<<<<<
 *   if 0 < count:
 *     for index in range(count):
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":61
 * 
 * 
 * cdef tuple _metadatum(grpc_slice key_slice, grpc_slice value_slice):             # <<<<<<<<<<<<<<
 *   cdef bytes key = _slice_bytes(key_slice)
 *   cdef bytes value = _slice_bytes(value_slice)
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__metadatum(grpc_slice __pyx_v_key_slice, grpc_slice __pyx_v_value_slice) {
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  unsigned int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_metadatum", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":62
 * 
 * cdef tuple _metadatum(grpc_slice key_slice, grpc_slice value_slice):
 *   cdef bytes key = _slice_bytes(key_slice)             # <<<<<<<<<<<<<<
 *   cdef bytes value = _slice_bytes(value_slice)
 *   return <tuple>_Metadatum(
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(__pyx_v_key_slice); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_key = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":63
 * cdef tuple _metadatum(grpc_slice key_slice, grpc_slice value_slice):
 *   cdef bytes key = _slice_bytes(key_slice)
 *   cdef bytes value = _slice_bytes(value_slice)             # <<<<<<<<<<<<<<
 *   return <tuple>_Metadatum(
 *       _decode(key), value if key[-4:] == b'-bin' else _decode(value))
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(__pyx_v_value_slice); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_value = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":64
 *   cdef bytes key = _slice_bytes(key_slice)
 *   cdef bytes value = _slice_bytes(value_slice)
 *   return <tuple>_Metadatum(             # <<<<<<<<<<<<<<
 *       _decode(key), value if key[-4:] == b'-bin' else _decode(value))
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Metadatum); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":65
 *   cdef bytes value = _slice_bytes(value_slice)
 *   return <tuple>_Metadatum(
 *       _decode(key), value if key[-4:] == b'-bin' else _decode(value))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__decode(__pyx_v_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (unlikely(__pyx_v_key == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(18, 65, __pyx_L1_error)
  }
  __pyx_t_5 = PySequence_GetSlice(__pyx_v_key, -4L, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = (__Pyx_PyBytes_Equals(__pyx_t_5, __pyx_kp_b_bin, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(18, 65, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_6) {
    __Pyx_INCREF(__pyx_v_value);
    __pyx_t_4 = __pyx_v_value;
  } else {
    __pyx_t_5 = __pyx_f_4grpc_7_cython_6cygrpc__decode(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __pyx_t_5;
    __pyx_t_5 = 0;
  }
  __pyx_t_5 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 64, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":64
 *   cdef bytes key = _slice_bytes(key_slice)
 *   cdef bytes value = _slice_bytes(value_slice)
 *   return <tuple>_Metadatum(             # <<<<<<<<<<<<<<
 *       _decode(key), value if key[-4:] == b'-bin' else _decode(value))
 * 
 */
  __Pyx_INCREF(((PyObject*)__pyx_t_1));
  __pyx_r = ((PyObject*)__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":61
 * 
 * 
 * cdef tuple _metadatum(grpc_slice key_slice, grpc_slice value_slice):             # <<<<<<<<<<<<<<
 *   cdef bytes key = _slice_bytes(key_slice)
 *   cdef bytes value = _slice_bytes(value_slice)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._metadatum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9_metadata_2generator44(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":70
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):
 *   return tuple(
 *       _metadatum(             # <<<<<<<<<<<<<<
 *           c_metadata_array.metadata[index].key,
 *           c_metadata_array.metadata[index].value)
 */

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9_metadata_genexpr(PyObject *__pyx_self, size_t __pyx_genexpr_arg_0) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(18, 70, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata *) __pyx_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope);
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_9_metadata_2generator44, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_metadata_locals_genexpr, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(18, 70, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._metadata.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9_metadata_2generator44(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  size_t __pyx_t_1;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(18, 70, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":73
 *           c_metadata_array.metadata[index].key,
 *           c_metadata_array.metadata[index].value)
 *       for index in range(c_metadata_array.count))             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_cur_scope->__pyx_v_index = __pyx_t_3;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":70
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):
 *   return tuple(
 *       _metadatum(             # <<<<<<<<<<<<<<
 *           c_metadata_array.metadata[index].key,
 *           c_metadata_array.metadata[index].value)
 */
    __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__metadatum((__pyx_cur_scope->__pyx_outer_scope->__pyx_v_c_metadata_array->metadata[__pyx_cur_scope->__pyx_v_index]).key, (__pyx_cur_scope->__pyx_outer_scope->__pyx_v_c_metadata_array->metadata[__pyx_cur_scope->__pyx_v_index]).value); if (unlikely(!__pyx_t_4)) __PYX_ERR(18, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(18, 70, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":68
 * 
 * 
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):             # <<<<<<<<<<<<<<
 *   return tuple(
 *       _metadatum(
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__metadata(grpc_metadata_array *__pyx_v_c_metadata_array) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata *__pyx_cur_scope;
  PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9_metadata_2generator44 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_metadata", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(18, 68, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_c_metadata_array = __pyx_v_c_metadata_array;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":69
 * 
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):
 *   return tuple(             # <<<<<<<<<<<<<<
 *       _metadatum(
 *           c_metadata_array.metadata[index].key,
 */
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":70
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):
 *   return tuple(
 *       _metadatum(             # <<<<<<<<<<<<<<
 *           c_metadata_array.metadata[index].key,
 *           c_metadata_array.metadata[index].value)
 */
  __pyx_t_1 = __pyx_pf_4grpc_7_cython_6cygrpc_9_metadata_genexpr(((PyObject*)__pyx_cur_scope), __pyx_cur_scope->__pyx_v_c_metadata_array->count); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":69
 * 
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):
 *   return tuple(             # <<<<<<<<<<<<<<
 *       _metadatum(
 *           c_metadata_array.metadata[index].key,
 */
  __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":68
 * 
 * 
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):             # <<<<<<<<<<<<<<
 *   return tuple(
 *       _metadatum(
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_4grpc_7_cython_6cygrpc_9_metadata_2generator44);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":18
 * cdef class Operation:
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_9Operation_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":19
 * 
 *   cdef void c(self) except *:
 *     raise NotImplementedError()             # <<<<<<<<<<<<<<
 * 
 *   cdef void un_c(self) except *:
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(19, 19, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":18
 * cdef class Operation:
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Operation.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":21
 *     raise NotImplementedError()
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_9Operation_un_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("un_c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":22
 * 
 *   cdef void un_c(self) except *:
 *     raise NotImplementedError()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(19, 22, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":21
 *     raise NotImplementedError()
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Operation.un_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9Operation_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9Operation___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9Operation___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_c_op_cannot_be_converted_to, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Operation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9Operation_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Operation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9Operation_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9Operation_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_c_op_cannot_be_converted_to, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Operation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":27
 * cdef class SendInitialMetadataOperation(Operation):
 * 
 *   def __cinit__(self, initial_metadata, flags):             # <<<<<<<<<<<<<<
 *     self._initial_metadata = initial_metadata
 *     self._flags = flags
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_initial_metadata = 0;
  PyObject *__pyx_v_flags = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_initial_metadata,&__pyx_n_s_flags,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_initial_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 27, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flags)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 27, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(19, 27, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(19, 27, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_initial_metadata = values[0];
    __pyx_v_flags = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(19, 27, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_v_self), __pyx_v_initial_metadata, __pyx_v_flags);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self, PyObject *__pyx_v_initial_metadata, PyObject *__pyx_v_flags) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":28
 * 
 *   def __cinit__(self, initial_metadata, flags):
 *     self._initial_metadata = initial_metadata             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
 */
  __Pyx_INCREF(__pyx_v_initial_metadata);
  __Pyx_GIVEREF(__pyx_v_initial_metadata);
  __Pyx_GOTREF(__pyx_v_self->_initial_metadata);
  __Pyx_DECREF(__pyx_v_self->_initial_metadata);
  __pyx_v_self->_initial_metadata = __pyx_v_initial_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":29
 *   def __cinit__(self, initial_metadata, flags):
 *     self._initial_metadata = initial_metadata
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_flags); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 29, __pyx_L1_error)
  __pyx_v_self->_flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":27
 * cdef class SendInitialMetadataOperation(Operation):
 * 
 *   def __cinit__(self, initial_metadata, flags):             # <<<<<<<<<<<<<<
 *     self._initial_metadata = initial_metadata
 *     self._flags = flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":31
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_INITIAL_METADATA
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_3type = {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "type", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":32
 * 
 *   def type(self):
 *     return GRPC_OP_SEND_INITIAL_METADATA             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_SEND_INITIAL_METADATA); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":31
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_INITIAL_METADATA
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":34
 *     return GRPC_OP_SEND_INITIAL_METADATA
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_INITIAL_METADATA
 *     self.c_op.flags = self._flags
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  grpc_metadata *__pyx_t_3;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":35
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_INITIAL_METADATA             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 *     _store_c_metadata(
 */
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_SEND_INITIAL_METADATA;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":36
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_INITIAL_METADATA
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 *     _store_c_metadata(
 *         self._initial_metadata, &self._c_initial_metadata,
 */
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":38
 *     self.c_op.flags = self._flags
 *     _store_c_metadata(
 *         self._initial_metadata, &self._c_initial_metadata,             # <<<<<<<<<<<<<<
 *         &self._c_initial_metadata_count)
 *     self.c_op.data.send_initial_metadata.metadata = self._c_initial_metadata
 */
  __pyx_t_2 = __pyx_v_self->_initial_metadata;
  __Pyx_INCREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":37
 *     self.c_op.type = GRPC_OP_SEND_INITIAL_METADATA
 *     self.c_op.flags = self._flags
 *     _store_c_metadata(             # <<<<<<<<<<<<<<
 *         self._initial_metadata, &self._c_initial_metadata,
 *         &self._c_initial_metadata_count)
 */
  __pyx_f_4grpc_7_cython_6cygrpc__store_c_metadata(__pyx_t_2, (&__pyx_v_self->_c_initial_metadata), (&__pyx_v_self->_c_initial_metadata_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":40
 *         self._initial_metadata, &self._c_initial_metadata,
 *         &self._c_initial_metadata_count)
 *     self.c_op.data.send_initial_metadata.metadata = self._c_initial_metadata             # <<<<<<<<<<<<<<
 *     self.c_op.data.send_initial_metadata.count = self._c_initial_metadata_count
 *     self.c_op.data.send_initial_metadata.maybe_compression_level.is_set = 0
 */
  __pyx_t_3 = __pyx_v_self->_c_initial_metadata;
  __pyx_v_self->__pyx_base.c_op.data.send_initial_metadata.metadata = __pyx_t_3;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":41
 *         &self._c_initial_metadata_count)
 *     self.c_op.data.send_initial_metadata.metadata = self._c_initial_metadata
 *     self.c_op.data.send_initial_metadata.count = self._c_initial_metadata_count             # <<<<<<<<<<<<<<
 *     self.c_op.data.send_initial_metadata.maybe_compression_level.is_set = 0
 * 
 */
  __pyx_t_4 = __pyx_v_self->_c_initial_metadata_count;
  __pyx_v_self->__pyx_base.c_op.data.send_initial_metadata.count = __pyx_t_4;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":42
 *     self.c_op.data.send_initial_metadata.metadata = self._c_initial_metadata
 *     self.c_op.data.send_initial_metadata.count = self._c_initial_metadata_count
 *     self.c_op.data.send_initial_metadata.maybe_compression_level.is_set = 0             # <<<<<<<<<<<<<<
 * 
 *   cdef void un_c(self) except *:
 */
  __pyx_v_self->__pyx_base.c_op.data.send_initial_metadata.maybe_compression_level.is_set = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":34
 *     return GRPC_OP_SEND_INITIAL_METADATA
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_INITIAL_METADATA
 *     self.c_op.flags = self._flags
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":44
 *     self.c_op.data.send_initial_metadata.maybe_compression_level.is_set = 0
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     _release_c_metadata(
 *         self._c_initial_metadata, self._c_initial_metadata_count)
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":45
 * 
 *   cdef void un_c(self) except *:
 *     _release_c_metadata(             # <<<<<<<<<<<<<<
 *         self._c_initial_metadata, self._c_initial_metadata_count)
 * 
 */
  __pyx_f_4grpc_7_cython_6cygrpc__release_c_metadata(__pyx_v_self->_c_initial_metadata, __pyx_v_self->_c_initial_metadata_count); if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 45, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":44
 *     self.c_op.data.send_initial_metadata.maybe_compression_level.is_set = 0
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     _release_c_metadata(
 *         self._c_initial_metadata, self._c_initial_metadata_count)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.un_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":27
 * cdef class SendInitialMetadataOperation(Operation):
 * 
 *   cdef readonly object _initial_metadata;             # <<<<<<<<<<<<<<
 *   cdef readonly int _flags
 *   cdef grpc_metadata *_c_initial_metadata
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_17_initial_metadata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_17_initial_metadata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_17_initial_metadata___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_17_initial_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_initial_metadata);
  __pyx_r = __pyx_v_self->_initial_metadata;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":28
 * 
 *   cdef readonly object _initial_metadata;
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 *   cdef grpc_metadata *_c_initial_metadata
 *   cdef size_t _c_initial_metadata_count
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":51
 * cdef class SendMessageOperation(Operation):
 * 
 *   def __cinit__(self, bytes message, int flags):             # <<<<<<<<<<<<<<
 *     if message is None:
 *       self._message = b''
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_message = 0;
  int __pyx_v_flags;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_message,&__pyx_n_s_flags,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_message)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 51, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flags)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 51, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(19, 51, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(19, 51, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_message = ((PyObject*)values[0]);
    __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 51, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(19, 51, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendMessageOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_message), (&PyBytes_Type), 1, "message", 1))) __PYX_ERR(19, 51, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_v_self), __pyx_v_message, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self, PyObject *__pyx_v_message, int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":52
 * 
 *   def __cinit__(self, bytes message, int flags):
 *     if message is None:             # <<<<<<<<<<<<<<
 *       self._message = b''
 *     else:
 */
  __pyx_t_1 = (__pyx_v_message == ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":53
 *   def __cinit__(self, bytes message, int flags):
 *     if message is None:
 *       self._message = b''             # <<<<<<<<<<<<<<
 *     else:
 *       self._message = message
 */
    __Pyx_INCREF(__pyx_kp_b__7);
    __Pyx_GIVEREF(__pyx_kp_b__7);
    __Pyx_GOTREF(__pyx_v_self->_message);
    __Pyx_DECREF(__pyx_v_self->_message);
    __pyx_v_self->_message = __pyx_kp_b__7;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":52
 * 
 *   def __cinit__(self, bytes message, int flags):
 *     if message is None:             # <<<<<<<<<<<<<<
 *       self._message = b''
 *     else:
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":55
 *       self._message = b''
 *     else:
 *       self._message = message             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
 */
  /*else*/ {
    __Pyx_INCREF(__pyx_v_message);
    __Pyx_GIVEREF(__pyx_v_message);
    __Pyx_GOTREF(__pyx_v_self->_message);
    __Pyx_DECREF(__pyx_v_self->_message);
    __pyx_v_self->_message = __pyx_v_message;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":56
 *     else:
 *       self._message = message
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
 */
  __pyx_v_self->_flags = __pyx_v_flags;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":51
 * cdef class SendMessageOperation(Operation):
 * 
 *   def __cinit__(self, bytes message, int flags):             # <<<<<<<<<<<<<<
 *     if message is None:
 *       self._message = b''
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":58
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_MESSAGE
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20SendMessageOperation_3type = {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "type", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":59
 * 
 *   def type(self):
 *     return GRPC_OP_SEND_MESSAGE             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_SEND_MESSAGE); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":58
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_MESSAGE
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendMessageOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":61
 *     return GRPC_OP_SEND_MESSAGE
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_MESSAGE
 *     self.c_op.flags = self._flags
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_20SendMessageOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self) {
  grpc_slice __pyx_v_message_slice;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  grpc_byte_buffer *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":62
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_MESSAGE             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 *     cdef grpc_slice message_slice = grpc_slice_from_copied_buffer(
 */
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_SEND_MESSAGE;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":63
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_MESSAGE
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 *     cdef grpc_slice message_slice = grpc_slice_from_copied_buffer(
 *         self._message, len(self._message))
 */
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":65
 *     self.c_op.flags = self._flags
 *     cdef grpc_slice message_slice = grpc_slice_from_copied_buffer(
 *         self._message, len(self._message))             # <<<<<<<<<<<<<<
 *     self._c_message_byte_buffer = grpc_raw_byte_buffer_create(
 *         &message_slice, 1)
 */
  if (unlikely(__pyx_v_self->_message == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(19, 65, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_self->_message); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(19, 65, __pyx_L1_error)
  __pyx_t_3 = __pyx_v_self->_message;
  __Pyx_INCREF(__pyx_t_3);
  if (unlikely(__pyx_t_3 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(19, 65, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyBytes_GET_SIZE(__pyx_t_3); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(19, 65, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":64
 *     self.c_op.type = GRPC_OP_SEND_MESSAGE
 *     self.c_op.flags = self._flags
 *     cdef grpc_slice message_slice = grpc_slice_from_copied_buffer(             # <<<<<<<<<<<<<<
 *         self._message, len(self._message))
 *     self._c_message_byte_buffer = grpc_raw_byte_buffer_create(
 */
  __pyx_v_message_slice = grpc_slice_from_copied_buffer(__pyx_t_2, __pyx_t_4);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":66
 *     cdef grpc_slice message_slice = grpc_slice_from_copied_buffer(
 *         self._message, len(self._message))
 *     self._c_message_byte_buffer = grpc_raw_byte_buffer_create(             # <<<<<<<<<<<<<<
 *         &message_slice, 1)
 *     grpc_slice_unref(message_slice)
 */
  __pyx_v_self->_c_message_byte_buffer = grpc_raw_byte_buffer_create((&__pyx_v_message_slice), 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":68
 *     self._c_message_byte_buffer = grpc_raw_byte_buffer_create(
 *         &message_slice, 1)
 *     grpc_slice_unref(message_slice)             # <<<<<<<<<<<<<<
 *     self.c_op.data.send_message.send_message = self._c_message_byte_buffer
 * 
 */
  grpc_slice_unref(__pyx_v_message_slice);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":69
 *         &message_slice, 1)
 *     grpc_slice_unref(message_slice)
 *     self.c_op.data.send_message.send_message = self._c_message_byte_buffer             # <<<<<<<<<<<<<<
 * 
 *   cdef void un_c(self) except *:
 */
  __pyx_t_5 = __pyx_v_self->_c_message_byte_buffer;
  __pyx_v_self->__pyx_base.c_op.data.send_message.send_message = __pyx_t_5;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":61
 *     return GRPC_OP_SEND_MESSAGE
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_MESSAGE
 *     self.c_op.flags = self._flags
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendMessageOperation.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":71
 *     self.c_op.data.send_message.send_message = self._c_message_byte_buffer
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     grpc_byte_buffer_destroy(self._c_message_byte_buffer)
 * 
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_20SendMessageOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self) {

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":72
 * 
 *   cdef void un_c(self) except *:
 *     grpc_byte_buffer_destroy(self._c_message_byte_buffer)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  grpc_byte_buffer_destroy(__pyx_v_self->_c_message_byte_buffer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":71
 *     self.c_op.data.send_message.send_message = self._c_message_byte_buffer
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     grpc_byte_buffer_destroy(self._c_message_byte_buffer)
 * 
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":38
 * cdef class SendMessageOperation(Operation):
 * 
 *   cdef readonly bytes _message             # <<<<<<<<<<<<<<
 *   cdef readonly int _flags
 *   cdef grpc_byte_buffer *_c_message_byte_buffer
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_8_message_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_8_message_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_8_message___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_8_message___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_message);
  __pyx_r = __pyx_v_self->_message;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":39
 * 
 *   cdef readonly bytes _message
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 *   cdef grpc_byte_buffer *_c_message_byte_buffer
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendMessageOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20SendMessageOperation_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendMessageOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20SendMessageOperation_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendMessageOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendMessageOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":77
 * cdef class SendCloseFromClientOperation(Operation):
 * 
 *   def __cinit__(self, int flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_flags;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flags,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flags)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 77, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(19, 77, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_flags = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 77, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(19, 77, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendCloseFromClientOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)__pyx_v_self), __pyx_v_flags);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self, int __pyx_v_flags) {
  int __pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":78
 * 
 *   def __cinit__(self, int flags):
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
 */
  __pyx_v_self->_flags = __pyx_v_flags;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":77
 * cdef class SendCloseFromClientOperation(Operation):
 * 
 *   def __cinit__(self, int flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":80
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_CLOSE_FROM_CLIENT
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_3type = {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "type", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":81
 * 
 *   def type(self):
 *     return GRPC_OP_SEND_CLOSE_FROM_CLIENT             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_SEND_CLOSE_FROM_CLIENT); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":80
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_CLOSE_FROM_CLIENT
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendCloseFromClientOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":83
 *     return GRPC_OP_SEND_CLOSE_FROM_CLIENT
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_CLOSE_FROM_CLIENT
 *     self.c_op.flags = self._flags
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":84
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_CLOSE_FROM_CLIENT             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 * 
 */
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":85
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_CLOSE_FROM_CLIENT
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 * 
 *   cdef void un_c(self) except *:
 */
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":83
 *     return GRPC_OP_SEND_CLOSE_FROM_CLIENT
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_CLOSE_FROM_CLIENT
 *     self.c_op.flags = self._flags
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":87
 *     self.c_op.flags = self._flags
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     pass
 * 
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_un_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self) {

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":48
 * cdef class SendCloseFromClientOperation(Operation):
 * 
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendCloseFromClientOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendCloseFromClientOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendCloseFromClientOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendCloseFromClientOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":93
 * cdef class SendStatusFromServerOperation(Operation):
 * 
 *   def __cinit__(self, trailing_metadata, code, object details, int flags):             # <<<<<<<<<<<<<<
 *     self._trailing_metadata = trailing_metadata
 *     self._code = code
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_trailing_metadata = 0;
  PyObject *__pyx_v_code = 0;
  PyObject *__pyx_v_details = 0;
  int __pyx_v_flags;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_trailing_metadata,&__pyx_n_s_code,&__pyx_n_s_details,&__pyx_n_s_flags,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_trailing_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 93, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_code)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 93, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 1); __PYX_ERR(19, 93, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 93, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 2); __PYX_ERR(19, 93, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flags)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 93, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 3); __PYX_ERR(19, 93, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(19, 93, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
      values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
    }
    __pyx_v_trailing_metadata = values[0];
    __pyx_v_code = values[1];
    __pyx_v_details = values[2];
    __pyx_v_flags = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 93, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, __pyx_nargs); __PYX_ERR(19, 93, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self), __pyx_v_trailing_metadata, __pyx_v_code, __pyx_v_details, __pyx_v_flags);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self, PyObject *__pyx_v_trailing_metadata, PyObject *__pyx_v_code, PyObject *__pyx_v_details, int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":94
 * 
 *   def __cinit__(self, trailing_metadata, code, object details, int flags):
 *     self._trailing_metadata = trailing_metadata             # <<<<<<<<<<<<<<
 *     self._code = code
 *     self._details = details
 */
  __Pyx_INCREF(__pyx_v_trailing_metadata);
  __Pyx_GIVEREF(__pyx_v_trailing_metadata);
  __Pyx_GOTREF(__pyx_v_self->_trailing_metadata);
  __Pyx_DECREF(__pyx_v_self->_trailing_metadata);
  __pyx_v_self->_trailing_metadata = __pyx_v_trailing_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":95
 *   def __cinit__(self, trailing_metadata, code, object details, int flags):
 *     self._trailing_metadata = trailing_metadata
 *     self._code = code             # <<<<<<<<<<<<<<
 *     self._details = details
 *     self._flags = flags
 */
  __Pyx_INCREF(__pyx_v_code);
  __Pyx_GIVEREF(__pyx_v_code);
  __Pyx_GOTREF(__pyx_v_self->_code);
  __Pyx_DECREF(__pyx_v_self->_code);
  __pyx_v_self->_code = __pyx_v_code;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":96
 *     self._trailing_metadata = trailing_metadata
 *     self._code = code
 *     self._details = details             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
 */
  __Pyx_INCREF(__pyx_v_details);
  __Pyx_GIVEREF(__pyx_v_details);
  __Pyx_GOTREF(__pyx_v_self->_details);
  __Pyx_DECREF(__pyx_v_self->_details);
  __pyx_v_self->_details = __pyx_v_details;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":97
 *     self._code = code
 *     self._details = details
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
 */
  __pyx_v_self->_flags = __pyx_v_flags;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":93
 * cdef class SendStatusFromServerOperation(Operation):
 * 
 *   def __cinit__(self, trailing_metadata, code, object details, int flags):             # <<<<<<<<<<<<<<
 *     self._trailing_metadata = trailing_metadata
 *     self._code = code
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":99
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_STATUS_FROM_SERVER
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_3type = {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "type", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":100
 * 
 *   def type(self):
 *     return GRPC_OP_SEND_STATUS_FROM_SERVER             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_SEND_STATUS_FROM_SERVER); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":99
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_STATUS_FROM_SERVER
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":102
 *     return GRPC_OP_SEND_STATUS_FROM_SERVER
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_STATUS_FROM_SERVER
 *     self.c_op.flags = self._flags
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  grpc_metadata *__pyx_t_3;
  size_t __pyx_t_4;
  grpc_status_code __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  grpc_slice __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":103
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_STATUS_FROM_SERVER             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 *     _store_c_metadata(
 */
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_SEND_STATUS_FROM_SERVER;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":104
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_STATUS_FROM_SERVER
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 *     _store_c_metadata(
 *         self._trailing_metadata, &self._c_trailing_metadata,
 */
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":106
 *     self.c_op.flags = self._flags
 *     _store_c_metadata(
 *         self._trailing_metadata, &self._c_trailing_metadata,             # <<<<<<<<<<<<<<
 *         &self._c_trailing_metadata_count)
 *     self.c_op.data.send_status_from_server.trailing_metadata = (
 */
  __pyx_t_2 = __pyx_v_self->_trailing_metadata;
  __Pyx_INCREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":105
 *     self.c_op.type = GRPC_OP_SEND_STATUS_FROM_SERVER
 *     self.c_op.flags = self._flags
 *     _store_c_metadata(             # <<<<<<<<<<<<<<
 *         self._trailing_metadata, &self._c_trailing_metadata,
 *         &self._c_trailing_metadata_count)
 */
  __pyx_f_4grpc_7_cython_6cygrpc__store_c_metadata(__pyx_t_2, (&__pyx_v_self->_c_trailing_metadata), (&__pyx_v_self->_c_trailing_metadata_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":109
 *         &self._c_trailing_metadata_count)
 *     self.c_op.data.send_status_from_server.trailing_metadata = (
 *         self._c_trailing_metadata)             # <<<<<<<<<<<<<<
 *     self.c_op.data.send_status_from_server.trailing_metadata_count = (
 *         self._c_trailing_metadata_count)
 */
  __pyx_t_3 = __pyx_v_self->_c_trailing_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":108
 *         self._trailing_metadata, &self._c_trailing_metadata,
 *         &self._c_trailing_metadata_count)
 *     self.c_op.data.send_status_from_server.trailing_metadata = (             # <<<<<<<<<<<<<<
 *         self._c_trailing_metadata)
 *     self.c_op.data.send_status_from_server.trailing_metadata_count = (
 */
  __pyx_v_self->__pyx_base.c_op.data.send_status_from_server.trailing_metadata = __pyx_t_3;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":111
 *         self._c_trailing_metadata)
 *     self.c_op.data.send_status_from_server.trailing_metadata_count = (
 *         self._c_trailing_metadata_count)             # <<<<<<<<<<<<<<
 *     self.c_op.data.send_status_from_server.status = self._code
 *     self._c_details = _slice_from_bytes(_encode(self._details))
 */
  __pyx_t_4 = __pyx_v_self->_c_trailing_metadata_count;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":110
 *     self.c_op.data.send_status_from_server.trailing_metadata = (
 *         self._c_trailing_metadata)
 *     self.c_op.data.send_status_from_server.trailing_metadata_count = (             # <<<<<<<<<<<<<<
 *         self._c_trailing_metadata_count)
 *     self.c_op.data.send_status_from_server.status = self._code
 */
  __pyx_v_self->__pyx_base.c_op.data.send_status_from_server.trailing_metadata_count = __pyx_t_4;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":112
 *     self.c_op.data.send_status_from_server.trailing_metadata_count = (
 *         self._c_trailing_metadata_count)
 *     self.c_op.data.send_status_from_server.status = self._code             # <<<<<<<<<<<<<<
 *     self._c_details = _slice_from_bytes(_encode(self._details))
 *     self.c_op.data.send_status_from_server.status_details = &self._c_details
 */
  __pyx_t_5 = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(__pyx_v_self->_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 112, __pyx_L1_error)
  __pyx_v_self->__pyx_base.c_op.data.send_status_from_server.status = __pyx_t_5;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":113
 *         self._c_trailing_metadata_count)
 *     self.c_op.data.send_status_from_server.status = self._code
 *     self._c_details = _slice_from_bytes(_encode(self._details))             # <<<<<<<<<<<<<<
 *     self.c_op.data.send_status_from_server.status_details = &self._c_details
 * 
 */
  __pyx_t_2 = __pyx_v_self->_details;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc__encode(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes(((PyObject*)__pyx_t_6)); if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_v_self->_c_details = __pyx_t_7;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":114
 *     self.c_op.data.send_status_from_server.status = self._code
 *     self._c_details = _slice_from_bytes(_encode(self._details))
 *     self.c_op.data.send_status_from_server.status_details = &self._c_details             # <<<<<<<<<<<<<<
 * 
 *   cdef void un_c(self) except *:
 */
  __pyx_v_self->__pyx_base.c_op.data.send_status_from_server.status_details = (&__pyx_v_self->_c_details);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":102
 *     return GRPC_OP_SEND_STATUS_FROM_SERVER
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_STATUS_FROM_SERVER
 *     self.c_op.flags = self._flags
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":116
 *     self.c_op.data.send_status_from_server.status_details = &self._c_details
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     grpc_slice_unref(self._c_details)
 *     _release_c_metadata(
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":117
 * 
 *   cdef void un_c(self) except *:
 *     grpc_slice_unref(self._c_details)             # <<<<<<<<<<<<<<
 *     _release_c_metadata(
 *         self._c_trailing_metadata, self._c_trailing_metadata_count)
 */
  grpc_slice_unref(__pyx_v_self->_c_details);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":118
 *   cdef void un_c(self) except *:
 *     grpc_slice_unref(self._c_details)
 *     _release_c_metadata(             # <<<<<<<<<<<<<<
 *         self._c_trailing_metadata, self._c_trailing_metadata_count)
 * 
 */
  __pyx_f_4grpc_7_cython_6cygrpc__release_c_metadata(__pyx_v_self->_c_trailing_metadata, __pyx_v_self->_c_trailing_metadata_count); if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 118, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":116
 *     self.c_op.data.send_status_from_server.status_details = &self._c_details
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     grpc_slice_unref(self._c_details)
 *     _release_c_metadata(
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation.un_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":56
 * cdef class SendStatusFromServerOperation(Operation):
 * 
 *   cdef readonly object _trailing_metadata             # <<<<<<<<<<<<<<
 *   cdef readonly object _code
 *   cdef readonly object _details
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_18_trailing_metadata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_18_trailing_metadata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_18_trailing_metadata___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_18_trailing_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_trailing_metadata);
  __pyx_r = __pyx_v_self->_trailing_metadata;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":57
 * 
 *   cdef readonly object _trailing_metadata
 *   cdef readonly object _code             # <<<<<<<<<<<<<<
 *   cdef readonly object _details
 *   cdef readonly int _flags
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5_code_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5_code_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5_code___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5_code___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_code);
  __pyx_r = __pyx_v_self->_code;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":58
 *   cdef readonly object _trailing_metadata
 *   cdef readonly object _code
 *   cdef readonly object _details             # <<<<<<<<<<<<<<
 *   cdef readonly int _flags
 *   cdef grpc_metadata *_c_trailing_metadata
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_8_details_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_8_details_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_8_details___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_8_details___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_details);
  __pyx_r = __pyx_v_self->_details;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":59
 *   cdef readonly object _code
 *   cdef readonly object _details
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 *   cdef grpc_metadata *_c_trailing_metadata
 *   cdef size_t _c_trailing_metadata_count
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":124
 * cdef class ReceiveInitialMetadataOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_flags = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flags,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flags)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 124, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(19, 124, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_flags = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(19, 124, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_v_self), __pyx_v_flags);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self, PyObject *__pyx_v_flags) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":125
 * 
 *   def __cinit__(self, flags):
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_flags); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 125, __pyx_L1_error)
  __pyx_v_self->_flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":124
 * cdef class ReceiveInitialMetadataOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":127
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_INITIAL_METADATA
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_3type = {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "type", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":128
 * 
 *   def type(self):
 *     return GRPC_OP_RECV_INITIAL_METADATA             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_RECV_INITIAL_METADATA); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":127
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_INITIAL_METADATA
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":130
 *     return GRPC_OP_RECV_INITIAL_METADATA
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_INITIAL_METADATA
 *     self.c_op.flags = self._flags
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":131
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_INITIAL_METADATA             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 *     grpc_metadata_array_init(&self._c_initial_metadata)
 */
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_RECV_INITIAL_METADATA;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":132
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_INITIAL_METADATA
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 *     grpc_metadata_array_init(&self._c_initial_metadata)
 *     self.c_op.data.receive_initial_metadata.receive_initial_metadata = (
 */
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":133
 *     self.c_op.type = GRPC_OP_RECV_INITIAL_METADATA
 *     self.c_op.flags = self._flags
 *     grpc_metadata_array_init(&self._c_initial_metadata)             # <<<<<<<<<<<<<<
 *     self.c_op.data.receive_initial_metadata.receive_initial_metadata = (
 *         &self._c_initial_metadata)
 */
  grpc_metadata_array_init((&__pyx_v_self->_c_initial_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":134
 *     self.c_op.flags = self._flags
 *     grpc_metadata_array_init(&self._c_initial_metadata)
 *     self.c_op.data.receive_initial_metadata.receive_initial_metadata = (             # <<<<<<<<<<<<<<
 *         &self._c_initial_metadata)
 * 
 */
  __pyx_v_self->__pyx_base.c_op.data.recv_initial_metadata.recv_initial_metadata = (&__pyx_v_self->_c_initial_metadata);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":130
 *     return GRPC_OP_RECV_INITIAL_METADATA
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_INITIAL_METADATA
 *     self.c_op.flags = self._flags
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":137
 *         &self._c_initial_metadata)
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     self._initial_metadata = _metadata(&self._c_initial_metadata)
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("un_c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":138
 * 
 *   cdef void un_c(self) except *:
 *     self._initial_metadata = _metadata(&self._c_initial_metadata)             # <<<<<<<<<<<<<<
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)
 * 
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__metadata((&__pyx_v_self->_c_initial_metadata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_initial_metadata);
  __Pyx_DECREF(__pyx_v_self->_initial_metadata);
  __pyx_v_self->_initial_metadata = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":139
 *   cdef void un_c(self) except *:
 *     self._initial_metadata = _metadata(&self._c_initial_metadata)
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)             # <<<<<<<<<<<<<<
 * 
 *   def initial_metadata(self):
 */
  grpc_metadata_array_destroy((&__pyx_v_self->_c_initial_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":137
 *         &self._c_initial_metadata)
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     self._initial_metadata = _metadata(&self._c_initial_metadata)
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation.un_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":141
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)
 * 
 *   def initial_metadata(self):             # <<<<<<<<<<<<<<
 *     return self._initial_metadata
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_5initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_5initial_metadata = {"initial_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_5initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_5initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initial_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("initial_metadata", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "initial_metadata", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_4initial_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_4initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initial_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":142
 * 
 *   def initial_metadata(self):
 *     return self._initial_metadata             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_initial_metadata);
  __pyx_r = __pyx_v_self->_initial_metadata;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":141
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)
 * 
 *   def initial_metadata(self):             # <<<<<<<<<<<<<<
 *     return self._initial_metadata
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":70
 * cdef class ReceiveInitialMetadataOperation(Operation):
 * 
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 *   cdef tuple _initial_metadata
 *   cdef grpc_metadata_array _c_initial_metadata
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_8__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":147
 * cdef class ReceiveMessageOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_flags = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flags,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flags)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 147, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(19, 147, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_flags = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(19, 147, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_v_self), __pyx_v_flags);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self, PyObject *__pyx_v_flags) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":148
 * 
 *   def __cinit__(self, flags):
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_flags); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 148, __pyx_L1_error)
  __pyx_v_self->_flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":147
 * cdef class ReceiveMessageOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":150
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_MESSAGE
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_3type = {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "type", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":151
 * 
 *   def type(self):
 *     return GRPC_OP_RECV_MESSAGE             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_RECV_MESSAGE); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":150
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_MESSAGE
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":153
 *     return GRPC_OP_RECV_MESSAGE
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_MESSAGE
 *     self.c_op.flags = self._flags
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":154
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_MESSAGE             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 *     self.c_op.data.receive_message.receive_message = (
 */
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_RECV_MESSAGE;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":155
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_MESSAGE
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 *     self.c_op.data.receive_message.receive_message = (
 *         &self._c_message_byte_buffer)
 */
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":156
 *     self.c_op.type = GRPC_OP_RECV_MESSAGE
 *     self.c_op.flags = self._flags
 *     self.c_op.data.receive_message.receive_message = (             # <<<<<<<<<<<<<<
 *         &self._c_message_byte_buffer)
 * 
 */
  __pyx_v_self->__pyx_base.c_op.data.recv_message.recv_message = (&__pyx_v_self->_c_message_byte_buffer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":153
 *     return GRPC_OP_RECV_MESSAGE
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_MESSAGE
 *     self.c_op.flags = self._flags
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":159
 *         &self._c_message_byte_buffer)
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_byte_buffer_reader message_reader
 *     cdef bint message_reader_status
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self) {
  struct grpc_byte_buffer_reader __pyx_v_message_reader;
  int __pyx_v_message_reader_status;
  grpc_slice __pyx_v_message_slice;
  size_t __pyx_v_message_slice_length;
  void *__pyx_v_message_slice_pointer;
  PyObject *__pyx_v_message = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("un_c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":165
 *     cdef size_t message_slice_length
 *     cdef void *message_slice_pointer
 *     if self._c_message_byte_buffer != NULL:             # <<<<<<<<<<<<<<
 *       message_reader_status = grpc_byte_buffer_reader_init(
 *           &message_reader, self._c_message_byte_buffer)
 */
  __pyx_t_1 = (__pyx_v_self->_c_message_byte_buffer != NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":166
 *     cdef void *message_slice_pointer
 *     if self._c_message_byte_buffer != NULL:
 *       message_reader_status = grpc_byte_buffer_reader_init(             # <<<<<<<<<<<<<<
 *           &message_reader, self._c_message_byte_buffer)
 *       if message_reader_status:
 */
    __pyx_v_message_reader_status = grpc_byte_buffer_reader_init((&__pyx_v_message_reader), __pyx_v_self->_c_message_byte_buffer);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":168
 *       message_reader_status = grpc_byte_buffer_reader_init(
 *           &message_reader, self._c_message_byte_buffer)
 *       if message_reader_status:             # <<<<<<<<<<<<<<
 *         message = bytearray()
 *         while grpc_byte_buffer_reader_next(&message_reader, &message_slice):
 */
    if (__pyx_v_message_reader_status) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":169
 *           &message_reader, self._c_message_byte_buffer)
 *       if message_reader_status:
 *         message = bytearray()             # <<<<<<<<<<<<<<
 *         while grpc_byte_buffer_reader_next(&message_reader, &message_slice):
 *           message_slice_pointer = grpc_slice_start_ptr(message_slice)
 */
      __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyByteArray_Type))); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 169, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_message = ((PyObject*)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":170
 *       if message_reader_status:
 *         message = bytearray()
 *         while grpc_byte_buffer_reader_next(&message_reader, &message_slice):             # <<<<<<<<<<<<<<
 *           message_slice_pointer = grpc_slice_start_ptr(message_slice)
 *           message_slice_length = grpc_slice_length(message_slice)
 */
      while (1) {
        __pyx_t_1 = (grpc_byte_buffer_reader_next((&__pyx_v_message_reader), (&__pyx_v_message_slice)) != 0);
        if (!__pyx_t_1) break;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":171
 *         message = bytearray()
 *         while grpc_byte_buffer_reader_next(&message_reader, &message_slice):
 *           message_slice_pointer = grpc_slice_start_ptr(message_slice)             # <<<<<<<<<<<<<<
 *           message_slice_length = grpc_slice_length(message_slice)
 *           message += (<char *>message_slice_pointer)[:message_slice_length]
 */
        __pyx_v_message_slice_pointer = GRPC_SLICE_START_PTR(__pyx_v_message_slice);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":172
 *         while grpc_byte_buffer_reader_next(&message_reader, &message_slice):
 *           message_slice_pointer = grpc_slice_start_ptr(message_slice)
 *           message_slice_length = grpc_slice_length(message_slice)             # <<<<<<<<<<<<<<
 *           message += (<char *>message_slice_pointer)[:message_slice_length]
 *           grpc_slice_unref(message_slice)
 */
        __pyx_v_message_slice_length = GRPC_SLICE_LENGTH(__pyx_v_message_slice);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":173
 *           message_slice_pointer = grpc_slice_start_ptr(message_slice)
 *           message_slice_length = grpc_slice_length(message_slice)
 *           message += (<char *>message_slice_pointer)[:message_slice_length]             # <<<<<<<<<<<<<<
 *           grpc_slice_unref(message_slice)
 *         grpc_byte_buffer_reader_destroy(&message_reader)
 */
        __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(((char *)__pyx_v_message_slice_pointer) + 0, __pyx_v_message_slice_length - 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 173, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_message, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 173, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF_SET(__pyx_v_message, ((PyObject*)__pyx_t_3));
        __pyx_t_3 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":174
 *           message_slice_length = grpc_slice_length(message_slice)
 *           message += (<char *>message_slice_pointer)[:message_slice_length]
 *           grpc_slice_unref(message_slice)             # <<<<<<<<<<<<<<
 *         grpc_byte_buffer_reader_destroy(&message_reader)
 *         self._message = bytes(message)
 */
        grpc_slice_unref(__pyx_v_message_slice);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":175
 *           message += (<char *>message_slice_pointer)[:message_slice_length]
 *           grpc_slice_unref(message_slice)
 *         grpc_byte_buffer_reader_destroy(&message_reader)             # <<<<<<<<<<<<<<
 *         self._message = bytes(message)
 *       else:
 */
      grpc_byte_buffer_reader_destroy((&__pyx_v_message_reader));

      /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":176
 *           grpc_slice_unref(message_slice)
 *         grpc_byte_buffer_reader_destroy(&message_reader)
 *         self._message = bytes(message)             # <<<<<<<<<<<<<<
 *       else:
 *         self._message = None
 */
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyBytes_Type)), __pyx_v_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 176, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_v_self->_message);
      __Pyx_DECREF(__pyx_v_self->_message);
      __pyx_v_self->_message = ((PyObject*)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":168
 *       message_reader_status = grpc_byte_buffer_reader_init(
 *           &message_reader, self._c_message_byte_buffer)
 *       if message_reader_status:             # <<<<<<<<<<<<<<
 *         message = bytearray()
 *         while grpc_byte_buffer_reader_next(&message_reader, &message_slice):
 */
      goto __pyx_L4;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":178
 *         self._message = bytes(message)
 *       else:
 *         self._message = None             # <<<<<<<<<<<<<<
 *       grpc_byte_buffer_destroy(self._c_message_byte_buffer)
 *     else:
 */
    /*else*/ {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      __Pyx_GOTREF(__pyx_v_self->_message);
      __Pyx_DECREF(__pyx_v_self->_message);
      __pyx_v_self->_message = ((PyObject*)Py_None);
    }
    __pyx_L4:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":179
 *       else:
 *         self._message = None
 *       grpc_byte_buffer_destroy(self._c_message_byte_buffer)             # <<<<<<<<<<<<<<
 *     else:
 *       self._message = None
 */
    grpc_byte_buffer_destroy(__pyx_v_self->_c_message_byte_buffer);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":165
 *     cdef size_t message_slice_length
 *     cdef void *message_slice_pointer
 *     if self._c_message_byte_buffer != NULL:             # <<<<<<<<<<<<<<
 *       message_reader_status = grpc_byte_buffer_reader_init(
 *           &message_reader, self._c_message_byte_buffer)
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":181
 *       grpc_byte_buffer_destroy(self._c_message_byte_buffer)
 *     else:
 *       self._message = None             # <<<<<<<<<<<<<<
 * 
 *   def message(self):
 */
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    __Pyx_GOTREF(__pyx_v_self->_message);
    __Pyx_DECREF(__pyx_v_self->_message);
    __pyx_v_self->_message = ((PyObject*)Py_None);
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":159
 *         &self._c_message_byte_buffer)
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_byte_buffer_reader message_reader
 *     cdef bint message_reader_status
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation.un_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":183
 *       self._message = None
 * 
 *   def message(self):             # <<<<<<<<<<<<<<
 *     return self._message
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_5message(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_5message = {"message", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_5message, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_5message(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("message (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("message", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "message", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_4message(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_4message(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("message", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":184
 * 
 *   def message(self):
 *     return self._message             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_message);
  __pyx_r = __pyx_v_self->_message;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":183
 *       self._message = None
 * 
 *   def message(self):             # <<<<<<<<<<<<<<
 *     return self._message
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":80
 * cdef class ReceiveMessageOperation(Operation):
 * 
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 *   cdef grpc_byte_buffer *_c_message_byte_buffer
 *   cdef bytes _message
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_8__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":189
 * cdef class ReceiveStatusOnClientOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_flags = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flags,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flags)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 189, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(19, 189, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_flags = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(19, 189, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self), __pyx_v_flags);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self, PyObject *__pyx_v_flags) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":190
 * 
 *   def __cinit__(self, flags):
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_flags); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 190, __pyx_L1_error)
  __pyx_v_self->_flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":189
 * cdef class ReceiveStatusOnClientOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":192
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_STATUS_ON_CLIENT
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_3type = {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "type", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":193
 * 
 *   def type(self):
 *     return GRPC_OP_RECV_STATUS_ON_CLIENT             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_RECV_STATUS_ON_CLIENT); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":192
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_STATUS_ON_CLIENT
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":195
 *     return GRPC_OP_RECV_STATUS_ON_CLIENT
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_STATUS_ON_CLIENT
 *     self.c_op.flags = self._flags
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":196
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_STATUS_ON_CLIENT             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 *     grpc_metadata_array_init(&self._c_trailing_metadata)
 */
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_RECV_STATUS_ON_CLIENT;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":197
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_STATUS_ON_CLIENT
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 *     grpc_metadata_array_init(&self._c_trailing_metadata)
 *     self.c_op.data.receive_status_on_client.trailing_metadata = (
 */
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":198
 *     self.c_op.type = GRPC_OP_RECV_STATUS_ON_CLIENT
 *     self.c_op.flags = self._flags
 *     grpc_metadata_array_init(&self._c_trailing_metadata)             # <<<<<<<<<<<<<<
 *     self.c_op.data.receive_status_on_client.trailing_metadata = (
 *         &self._c_trailing_metadata)
 */
  grpc_metadata_array_init((&__pyx_v_self->_c_trailing_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":199
 *     self.c_op.flags = self._flags
 *     grpc_metadata_array_init(&self._c_trailing_metadata)
 *     self.c_op.data.receive_status_on_client.trailing_metadata = (             # <<<<<<<<<<<<<<
 *         &self._c_trailing_metadata)
 *     self.c_op.data.receive_status_on_client.status = (
 */
  __pyx_v_self->__pyx_base.c_op.data.recv_status_on_client.trailing_metadata = (&__pyx_v_self->_c_trailing_metadata);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":201
 *     self.c_op.data.receive_status_on_client.trailing_metadata = (
 *         &self._c_trailing_metadata)
 *     self.c_op.data.receive_status_on_client.status = (             # <<<<<<<<<<<<<<
 *         &self._c_code)
 *     self.c_op.data.receive_status_on_client.status_details = (
 */
  __pyx_v_self->__pyx_base.c_op.data.recv_status_on_client.status = (&__pyx_v_self->_c_code);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":203
 *     self.c_op.data.receive_status_on_client.status = (
 *         &self._c_code)
 *     self.c_op.data.receive_status_on_client.status_details = (             # <<<<<<<<<<<<<<
 *         &self._c_details)
 *     self.c_op.data.receive_status_on_client.error_string = (
 */
  __pyx_v_self->__pyx_base.c_op.data.recv_status_on_client.status_details = (&__pyx_v_self->_c_details);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":205
 *     self.c_op.data.receive_status_on_client.status_details = (
 *         &self._c_details)
 *     self.c_op.data.receive_status_on_client.error_string = (             # <<<<<<<<<<<<<<
 *         &self._c_error_string)
 * 
 */
  __pyx_v_self->__pyx_base.c_op.data.recv_status_on_client.error_string = (&__pyx_v_self->_c_error_string);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":195
 *     return GRPC_OP_RECV_STATUS_ON_CLIENT
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_STATUS_ON_CLIENT
 *     self.c_op.flags = self._flags
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":208
 *         &self._c_error_string)
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     self._trailing_metadata = _metadata(&self._c_trailing_metadata)
 *     grpc_metadata_array_destroy(&self._c_trailing_metadata)
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("un_c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":209
 * 
 *   cdef void un_c(self) except *:
 *     self._trailing_metadata = _metadata(&self._c_trailing_metadata)             # <<<<<<<<<<<<<<
 *     grpc_metadata_array_destroy(&self._c_trailing_metadata)
 *     self._code = self._c_code
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__metadata((&__pyx_v_self->_c_trailing_metadata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_trailing_metadata);
  __Pyx_DECREF(__pyx_v_self->_trailing_metadata);
  __pyx_v_self->_trailing_metadata = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":210
 *   cdef void un_c(self) except *:
 *     self._trailing_metadata = _metadata(&self._c_trailing_metadata)
 *     grpc_metadata_array_destroy(&self._c_trailing_metadata)             # <<<<<<<<<<<<<<
 *     self._code = self._c_code
 *     self._details = _decode(_slice_bytes(self._c_details))
 */
  grpc_metadata_array_destroy((&__pyx_v_self->_c_trailing_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":211
 *     self._trailing_metadata = _metadata(&self._c_trailing_metadata)
 *     grpc_metadata_array_destroy(&self._c_trailing_metadata)
 *     self._code = self._c_code             # <<<<<<<<<<<<<<
 *     self._details = _decode(_slice_bytes(self._c_details))
 *     grpc_slice_unref(self._c_details)
 */
  __pyx_t_1 = __Pyx_PyInt_From_grpc_status_code(__pyx_v_self->_c_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_code);
  __Pyx_DECREF(__pyx_v_self->_code);
  __pyx_v_self->_code = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":212
 *     grpc_metadata_array_destroy(&self._c_trailing_metadata)
 *     self._code = self._c_code
 *     self._details = _decode(_slice_bytes(self._c_details))             # <<<<<<<<<<<<<<
 *     grpc_slice_unref(self._c_details)
 *     if self._c_error_string != NULL:
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(__pyx_v_self->_c_details); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_details);
  __Pyx_DECREF(__pyx_v_self->_details);
  __pyx_v_self->_details = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":213
 *     self._code = self._c_code
 *     self._details = _decode(_slice_bytes(self._c_details))
 *     grpc_slice_unref(self._c_details)             # <<<<<<<<<<<<<<
 *     if self._c_error_string != NULL:
 *       self._error_string = _decode(self._c_error_string)
 */
  grpc_slice_unref(__pyx_v_self->_c_details);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":214
 *     self._details = _decode(_slice_bytes(self._c_details))
 *     grpc_slice_unref(self._c_details)
 *     if self._c_error_string != NULL:             # <<<<<<<<<<<<<<
 *       self._error_string = _decode(self._c_error_string)
 *       gpr_free(<void*>self._c_error_string)
 */
  __pyx_t_3 = (__pyx_v_self->_c_error_string != NULL);
  if (__pyx_t_3) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":215
 *     grpc_slice_unref(self._c_details)
 *     if self._c_error_string != NULL:
 *       self._error_string = _decode(self._c_error_string)             # <<<<<<<<<<<<<<
 *       gpr_free(<void*>self._c_error_string)
 *     else:
 */
    __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_self->_c_error_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 215, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 215, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_GOTREF(__pyx_v_self->_error_string);
    __Pyx_DECREF(__pyx_v_self->_error_string);
    __pyx_v_self->_error_string = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":216
 *     if self._c_error_string != NULL:
 *       self._error_string = _decode(self._c_error_string)
 *       gpr_free(<void*>self._c_error_string)             # <<<<<<<<<<<<<<
 *     else:
 *       self._error_string = ""
 */
    gpr_free(((void *)__pyx_v_self->_c_error_string));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":214
 *     self._details = _decode(_slice_bytes(self._c_details))
 *     grpc_slice_unref(self._c_details)
 *     if self._c_error_string != NULL:             # <<<<<<<<<<<<<<
 *       self._error_string = _decode(self._c_error_string)
 *       gpr_free(<void*>self._c_error_string)
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":218
 *       gpr_free(<void*>self._c_error_string)
 *     else:
 *       self._error_string = ""             # <<<<<<<<<<<<<<
 * 
 *   def trailing_metadata(self):
 */
  /*else*/ {
    __Pyx_INCREF(__pyx_kp_s__7);
    __Pyx_GIVEREF(__pyx_kp_s__7);
    __Pyx_GOTREF(__pyx_v_self->_error_string);
    __Pyx_DECREF(__pyx_v_self->_error_string);
    __pyx_v_self->_error_string = __pyx_kp_s__7;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":208
 *         &self._c_error_string)
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     self._trailing_metadata = _metadata(&self._c_trailing_metadata)
 *     grpc_metadata_array_destroy(&self._c_trailing_metadata)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation.un_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":220
 *       self._error_string = ""
 * 
 *   def trailing_metadata(self):             # <<<<<<<<<<<<<<
 *     return self._trailing_metadata
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_5trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_5trailing_metadata = {"trailing_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_5trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_5trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("trailing_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("trailing_metadata", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "trailing_metadata", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_4trailing_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_4trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("trailing_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":221
 * 
 *   def trailing_metadata(self):
 *     return self._trailing_metadata             # <<<<<<<<<<<<<<
 * 
 *   def code(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_trailing_metadata);
  __pyx_r = __pyx_v_self->_trailing_metadata;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":220
 *       self._error_string = ""
 * 
 *   def trailing_metadata(self):             # <<<<<<<<<<<<<<
 *     return self._trailing_metadata
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":223
 *     return self._trailing_metadata
 * 
 *   def code(self):             # <<<<<<<<<<<<<<
 *     return self._code
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_7code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_7code = {"code", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_7code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_7code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("code (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("code", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "code", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6code(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6code(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("code", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":224
 * 
 *   def code(self):
 *     return self._code             # <<<<<<<<<<<<<<
 * 
 *   def details(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_code);
  __pyx_r = __pyx_v_self->_code;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":223
 *     return self._trailing_metadata
 * 
 *   def code(self):             # <<<<<<<<<<<<<<
 *     return self._code
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":226
 *     return self._code
 * 
 *   def details(self):             # <<<<<<<<<<<<<<
 *     return self._details
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_9details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_9details = {"details", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_9details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_9details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("details (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("details", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "details", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_8details(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_8details(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("details", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":227
 * 
 *   def details(self):
 *     return self._details             # <<<<<<<<<<<<<<
 * 
 *   def error_string(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_details);
  __pyx_r = __pyx_v_self->_details;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":226
 *     return self._code
 * 
 *   def details(self):             # <<<<<<<<<<<<<<
 *     return self._details
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":229
 *     return self._details
 * 
 *   def error_string(self):             # <<<<<<<<<<<<<<
 *     return self._error_string
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_11error_string(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_11error_string = {"error_string", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_11error_string, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_11error_string(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("error_string (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("error_string", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "error_string", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_10error_string(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_10error_string(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("error_string", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":230
 * 
 *   def error_string(self):
 *     return self._error_string             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_error_string);
  __pyx_r = __pyx_v_self->_error_string;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":229
 *     return self._details
 * 
 *   def error_string(self):             # <<<<<<<<<<<<<<
 *     return self._error_string
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":90
 * cdef class ReceiveStatusOnClientOperation(Operation):
 * 
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 *   cdef grpc_metadata_array _c_trailing_metadata
 *   cdef grpc_status_code _c_code
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_13__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_13__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_13__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_13__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_12__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_12__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_15__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_15__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_15__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_15__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_14__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_14__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":235
 * cdef class ReceiveCloseOnServerOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_flags = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flags,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flags)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 235, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(19, 235, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_flags = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(19, 235, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)__pyx_v_self), __pyx_v_flags);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self, PyObject *__pyx_v_flags) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":236
 * 
 *   def __cinit__(self, flags):
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_flags); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 236, __pyx_L1_error)
  __pyx_v_self->_flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":235
 * cdef class ReceiveCloseOnServerOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":238
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_CLOSE_ON_SERVER
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_3type = {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "type", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":239
 * 
 *   def type(self):
 *     return GRPC_OP_RECV_CLOSE_ON_SERVER             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_RECV_CLOSE_ON_SERVER); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":238
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_CLOSE_ON_SERVER
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":241
 *     return GRPC_OP_RECV_CLOSE_ON_SERVER
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_CLOSE_ON_SERVER
 *     self.c_op.flags = self._flags
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":242
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_CLOSE_ON_SERVER             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 *     self.c_op.data.receive_close_on_server.cancelled = &self._c_cancelled
 */
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_RECV_CLOSE_ON_SERVER;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":243
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_CLOSE_ON_SERVER
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 *     self.c_op.data.receive_close_on_server.cancelled = &self._c_cancelled
 * 
 */
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":244
 *     self.c_op.type = GRPC_OP_RECV_CLOSE_ON_SERVER
 *     self.c_op.flags = self._flags
 *     self.c_op.data.receive_close_on_server.cancelled = &self._c_cancelled             # <<<<<<<<<<<<<<
 * 
 *   cdef void un_c(self) except *:
 */
  __pyx_v_self->__pyx_base.c_op.data.recv_close_on_server.cancelled = (&__pyx_v_self->_c_cancelled);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":241
 *     return GRPC_OP_RECV_CLOSE_ON_SERVER
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_CLOSE_ON_SERVER
 *     self.c_op.flags = self._flags
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":246
 *     self.c_op.data.receive_close_on_server.cancelled = &self._c_cancelled
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     self._cancelled = bool(self._c_cancelled)
 * 
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("un_c", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":247
 * 
 *   cdef void un_c(self) except *:
 *     self._cancelled = bool(self._c_cancelled)             # <<<<<<<<<<<<<<
 * 
 *   def cancelled(self):
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->_c_cancelled); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(19, 247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyBool_FromLong((!(!__pyx_t_2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_cancelled);
  __Pyx_DECREF(__pyx_v_self->_cancelled);
  __pyx_v_self->_cancelled = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":246
 *     self.c_op.data.receive_close_on_server.cancelled = &self._c_cancelled
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     self._cancelled = bool(self._c_cancelled)
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation.un_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":249
 *     self._cancelled = bool(self._c_cancelled)
 * 
 *   def cancelled(self):             # <<<<<<<<<<<<<<
 *     return self._cancelled
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_5cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_5cancelled = {"cancelled", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_5cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_5cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancelled (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("cancelled", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "cancelled", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_4cancelled(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_4cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancelled", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":250
 * 
 *   def cancelled(self):
 *     return self._cancelled             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_cancelled);
  __pyx_r = __pyx_v_self->_cancelled;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":249
 *     self._cancelled = bool(self._c_cancelled)
 * 
 *   def cancelled(self):             # <<<<<<<<<<<<<<
 *     return self._cancelled
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":106
 * cdef class ReceiveCloseOnServerOperation(Operation):
 * 
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 *   cdef object _cancelled
 *   cdef int _c_cancelled
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_8__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":16
 * 
 * 
 * cdef bytes _slice_bytes(grpc_slice slice):             # <<<<<<<<<<<<<<
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(grpc_slice __pyx_v_slice) {
  void *__pyx_v_start;
  size_t __pyx_v_length;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_slice_bytes", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":17
 * 
 * cdef bytes _slice_bytes(grpc_slice slice):
 *   cdef void *start = grpc_slice_start_ptr(slice)             # <<<<<<<<<<<<<<
 *   cdef size_t length = grpc_slice_length(slice)
 *   return (<const char *>start)[:length]
 */
  __pyx_v_start = GRPC_SLICE_START_PTR(__pyx_v_slice);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":18
 * cdef bytes _slice_bytes(grpc_slice slice):
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)             # <<<<<<<<<<<<<<
 *   return (<const char *>start)[:length]
 * 
 */
  __pyx_v_length = GRPC_SLICE_LENGTH(__pyx_v_slice);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":19
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)
 *   return (<const char *>start)[:length]             # <<<<<<<<<<<<<<
 * 
 * cdef grpc_slice _copy_slice(grpc_slice slice) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(((char const *)__pyx_v_start) + 0, __pyx_v_length - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":16
 * 
 * 
 * cdef bytes _slice_bytes(grpc_slice slice):             # <<<<<<<<<<<<<<
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._slice_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":21
 *   return (<const char *>start)[:length]
 * 
 * cdef grpc_slice _copy_slice(grpc_slice slice) nogil:             # <<<<<<<<<<<<<<
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)
 */

static grpc_slice __pyx_f_4grpc_7_cython_6cygrpc__copy_slice(grpc_slice __pyx_v_slice) {
  void *__pyx_v_start;
  size_t __pyx_v_length;
  grpc_slice __pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":22
 * 
 * cdef grpc_slice _copy_slice(grpc_slice slice) nogil:
 *   cdef void *start = grpc_slice_start_ptr(slice)             # <<<<<<<<<<<<<<
 *   cdef size_t length = grpc_slice_length(slice)
 *   return grpc_slice_from_copied_buffer(<const char *>start, length)
 */
  __pyx_v_start = GRPC_SLICE_START_PTR(__pyx_v_slice);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":23
 * cdef grpc_slice _copy_slice(grpc_slice slice) nogil:
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)             # <<<<<<<<<<<<<<
 *   return grpc_slice_from_copied_buffer(<const char *>start, length)
 * 
 */
  __pyx_v_length = GRPC_SLICE_LENGTH(__pyx_v_slice);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":24
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)
 *   return grpc_slice_from_copied_buffer(<const char *>start, length)             # <<<<<<<<<<<<<<
 * 
 * cdef grpc_slice _slice_from_bytes(bytes value) nogil:
 */
  __pyx_r = grpc_slice_from_copied_buffer(((char const *)__pyx_v_start), __pyx_v_length);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":21
 *   return (<const char *>start)[:length]
 * 
 * cdef grpc_slice _copy_slice(grpc_slice slice) nogil:             # <<<<<<<<<<<<<<
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":26
 *   return grpc_slice_from_copied_buffer(<const char *>start, length)
 * 
 * cdef grpc_slice _slice_from_bytes(bytes value) nogil:             # <<<<<<<<<<<<<<
 *   cdef const char *value_ptr
 *   cdef size_t length
 */

static grpc_slice __pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes(PyObject *__pyx_v_value) {
  char const *__pyx_v_value_ptr;
  size_t __pyx_v_length;
  grpc_slice __pyx_r;
  char const *__pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save;
  #endif

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":29
 *   cdef const char *value_ptr
 *   cdef size_t length
 *   with gil:             # <<<<<<<<<<<<<<
 *     value_ptr = <const char *>value
 *     length = len(value)
 */
  {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":30
 *   cdef size_t length
 *   with gil:
 *     value_ptr = <const char *>value             # <<<<<<<<<<<<<<
 *     length = len(value)
 *   return grpc_slice_from_copied_buffer(value_ptr, length)
 */
        if (unlikely(__pyx_v_value == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
          __PYX_ERR(21, 30, __pyx_L4_error)
        }
        __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_value); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(21, 30, __pyx_L4_error)
        __pyx_v_value_ptr = ((char const *)__pyx_t_1);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":31
 *   with gil:
 *     value_ptr = <const char *>value
 *     length = len(value)             # <<<<<<<<<<<<<<
 *   return grpc_slice_from_copied_buffer(value_ptr, length)
 * 
 */
        if (unlikely(__pyx_v_value == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
          __PYX_ERR(21, 31, __pyx_L4_error)
        }
        __pyx_t_2 = __Pyx_PyBytes_GET_SIZE(__pyx_v_value); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(21, 31, __pyx_L4_error)
        __pyx_v_length = __pyx_t_2;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":29
 *   cdef const char *value_ptr
 *   cdef size_t length
 *   with gil:             # <<<<<<<<<<<<<<
 *     value_ptr = <const char *>value
 *     length = len(value)
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          #endif
          goto __pyx_L5;
        }
        __pyx_L4_error: {
          #ifdef WITH_THREAD
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          #endif
          goto __pyx_L1_error;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":32
 *     value_ptr = <const char *>value
 *     length = len(value)
 *   return grpc_slice_from_copied_buffer(value_ptr, length)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = grpc_slice_from_copied_buffer(__pyx_v_value_ptr, __pyx_v_length);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":26
 *   return grpc_slice_from_copied_buffer(<const char *>start, length)
 * 
 * cdef grpc_slice _slice_from_bytes(bytes value) nogil:             # <<<<<<<<<<<<<<
 *   cdef const char *value_ptr
 *   cdef size_t length
 */

  /* function exit code */
  __pyx_L1_error:;
  #ifdef WITH_THREAD
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_AddTraceback("grpc._cython.cygrpc._slice_from_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":132
 * cdef class CallDetails:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     with nogil:
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":133
 * 
 *   def __cinit__(self):
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_call_details_init(&self.c_details)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 133, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":134
 *   def __cinit__(self):
 *     fork_handlers_and_grpc_init()
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_call_details_init(&self.c_details)
 * 
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":135
 *     fork_handlers_and_grpc_init()
 *     with nogil:
 *       grpc_call_details_init(&self.c_details)             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
 */
        grpc_call_details_init((&__pyx_v_self->c_details));
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":134
 *   def __cinit__(self):
 *     fork_handlers_and_grpc_init()
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_call_details_init(&self.c_details)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":132
 * cdef class CallDetails:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     with nogil:
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallDetails.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":137
 *       grpc_call_details_init(&self.c_details)
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_call_details_destroy(&self.c_details)
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self) {

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":138
 * 
 *   def __dealloc__(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_call_details_destroy(&self.c_details)
 *     grpc_shutdown()
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":139
 *   def __dealloc__(self):
 *     with nogil:
 *       grpc_call_details_destroy(&self.c_details)             # <<<<<<<<<<<<<<
 *     grpc_shutdown()
 * 
 */
        grpc_call_details_destroy((&__pyx_v_self->c_details));
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":138
 * 
 *   def __dealloc__(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_call_details_destroy(&self.c_details)
 *     grpc_shutdown()
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":140
 *     with nogil:
 *       grpc_call_details_destroy(&self.c_details)
 *     grpc_shutdown()             # <<<<<<<<<<<<<<
 * 
 *   @property
 */
  grpc_shutdown();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":137
 *       grpc_call_details_init(&self.c_details)
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_call_details_destroy(&self.c_details)
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":142
 *     grpc_shutdown()
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def method(self):
 *     return _slice_bytes(self.c_details.method)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_6method_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_6method_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_6method___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_6method___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":144
 *   @property
 *   def method(self):
 *     return _slice_bytes(self.c_details.method)             # <<<<<<<<<<<<<<
 * 
 *   @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(__pyx_v_self->c_details.method); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":142
 *     grpc_shutdown()
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def method(self):
 *     return _slice_bytes(self.c_details.method)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallDetails.method.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":146
 *     return _slice_bytes(self.c_details.method)
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def host(self):
 *     return _slice_bytes(self.c_details.host)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_4host_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_4host_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_4host___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_4host___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":148
 *   @property
 *   def host(self):
 *     return _slice_bytes(self.c_details.host)             # <<<<<<<<<<<<<<
 * 
 *   @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(__pyx_v_self->c_details.host); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":146
 *     return _slice_bytes(self.c_details.method)
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def host(self):
 *     return _slice_bytes(self.c_details.host)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallDetails.host.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":150
 *     return _slice_bytes(self.c_details.host)
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def deadline(self):
 *     return _time_from_timespec(self.c_details.deadline)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_8deadline_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_8deadline_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_8deadline___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_8deadline___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":152
 *   @property
 *   def deadline(self):
 *     return _time_from_timespec(self.c_details.deadline)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__time_from_timespec(__pyx_v_self->c_details.deadline); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(21, 152, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":150
 *     return _slice_bytes(self.c_details.host)
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def deadline(self):
 *     return _time_from_timespec(self.c_details.deadline)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallDetails.deadline.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_11CallDetails_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallDetails.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_11CallDetails_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallDetails.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallDetails.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":157
 * cdef class SslPemKeyCertPair:
 * 
 *   def __cinit__(self, bytes private_key, bytes certificate_chain):             # <<<<<<<<<<<<<<
 *     self.private_key = private_key
 *     self.certificate_chain = certificate_chain
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_private_key = 0;
  PyObject *__pyx_v_certificate_chain = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_private_key,&__pyx_n_s_certificate_chain,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_private_key)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 157, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_certificate_chain)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 157, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(21, 157, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(21, 157, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_private_key = ((PyObject*)values[0]);
    __pyx_v_certificate_chain = ((PyObject*)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(21, 157, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SslPemKeyCertPair.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_private_key), (&PyBytes_Type), 1, "private_key", 1))) __PYX_ERR(21, 157, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_certificate_chain), (&PyBytes_Type), 1, "certificate_chain", 1))) __PYX_ERR(21, 157, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)__pyx_v_self), __pyx_v_private_key, __pyx_v_certificate_chain);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self, PyObject *__pyx_v_private_key, PyObject *__pyx_v_certificate_chain) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  char const *__pyx_t_1;
  char const *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":158
 * 
 *   def __cinit__(self, bytes private_key, bytes certificate_chain):
 *     self.private_key = private_key             # <<<<<<<<<<<<<<
 *     self.certificate_chain = certificate_chain
 *     self.c_pair.private_key = self.private_key
 */
  __Pyx_INCREF(__pyx_v_private_key);
  __Pyx_GIVEREF(__pyx_v_private_key);
  __Pyx_GOTREF(__pyx_v_self->private_key);
  __Pyx_DECREF(__pyx_v_self->private_key);
  __pyx_v_self->private_key = __pyx_v_private_key;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":159
 *   def __cinit__(self, bytes private_key, bytes certificate_chain):
 *     self.private_key = private_key
 *     self.certificate_chain = certificate_chain             # <<<<<<<<<<<<<<
 *     self.c_pair.private_key = self.private_key
 *     self.c_pair.certificate_chain = self.certificate_chain
 */
  __Pyx_INCREF(__pyx_v_certificate_chain);
  __Pyx_GIVEREF(__pyx_v_certificate_chain);
  __Pyx_GOTREF(__pyx_v_self->certificate_chain);
  __Pyx_DECREF(__pyx_v_self->certificate_chain);
  __pyx_v_self->certificate_chain = __pyx_v_certificate_chain;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":160
 *     self.private_key = private_key
 *     self.certificate_chain = certificate_chain
 *     self.c_pair.private_key = self.private_key             # <<<<<<<<<<<<<<
 *     self.c_pair.certificate_chain = self.certificate_chain
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_self->private_key); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(21, 160, __pyx_L1_error)
  __pyx_v_self->c_pair.private_key = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":161
 *     self.certificate_chain = certificate_chain
 *     self.c_pair.private_key = self.private_key
 *     self.c_pair.certificate_chain = self.certificate_chain             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_AsString(__pyx_v_self->certificate_chain); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(21, 161, __pyx_L1_error)
  __pyx_v_self->c_pair.cert_chain = __pyx_t_2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":157
 * cdef class SslPemKeyCertPair:
 * 
 *   def __cinit__(self, bytes private_key, bytes certificate_chain):             # <<<<<<<<<<<<<<
 *     self.private_key = private_key
 *     self.certificate_chain = certificate_chain
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SslPemKeyCertPair.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi":29
 * 
 *   cdef grpc_ssl_pem_key_cert_pair c_pair
 *   cdef readonly object private_key, certificate_chain             # <<<<<<<<<<<<<<
 * 
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_11private_key_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_11private_key_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_11private_key___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_11private_key___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->private_key);
  __pyx_r = __pyx_v_self->private_key;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_17certificate_chain_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_17certificate_chain_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_17certificate_chain___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_17certificate_chain___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->certificate_chain);
  __pyx_r = __pyx_v_self->certificate_chain;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SslPemKeyCertPair.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SslPemKeyCertPair.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SslPemKeyCertPair.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":166
 * cdef class CompressionOptions:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_init(&self.c_options)
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self) {
  int __pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":167
 * 
 *   def __cinit__(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_compression_options_init(&self.c_options)
 * 
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":168
 *   def __cinit__(self):
 *     with nogil:
 *       grpc_compression_options_init(&self.c_options)             # <<<<<<<<<<<<<<
 * 
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):
 */
        grpc_compression_options_init((&__pyx_v_self->c_options));
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":167
 * 
 *   def __cinit__(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_compression_options_init(&self.c_options)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":166
 * cdef class CompressionOptions:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_init(&self.c_options)
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":170
 *       grpc_compression_options_init(&self.c_options)
 * 
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_3enable_algorithm(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_3enable_algorithm = {"enable_algorithm", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_3enable_algorithm, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_3enable_algorithm(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_compression_algorithm __pyx_v_algorithm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("enable_algorithm (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_algorithm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_algorithm)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 170, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "enable_algorithm") < 0)) __PYX_ERR(21, 170, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_algorithm = ((grpc_compression_algorithm)__Pyx_PyInt_As_grpc_compression_algorithm(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 170, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("enable_algorithm", 1, 1, 1, __pyx_nargs); __PYX_ERR(21, 170, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.enable_algorithm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_2enable_algorithm(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)__pyx_v_self), __pyx_v_algorithm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_2enable_algorithm(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, grpc_compression_algorithm __pyx_v_algorithm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("enable_algorithm", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":171
 * 
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 * 
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":172
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):
 *     with nogil:
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)             # <<<<<<<<<<<<<<
 * 
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):
 */
        grpc_compression_options_enable_algorithm((&__pyx_v_self->c_options), __pyx_v_algorithm);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":171
 * 
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":170
 *       grpc_compression_options_init(&self.c_options)
 * 
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":174
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 * 
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_5disable_algorithm(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_5disable_algorithm = {"disable_algorithm", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_5disable_algorithm, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_5disable_algorithm(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_compression_algorithm __pyx_v_algorithm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("disable_algorithm (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_algorithm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_algorithm)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 174, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "disable_algorithm") < 0)) __PYX_ERR(21, 174, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_algorithm = ((grpc_compression_algorithm)__Pyx_PyInt_As_grpc_compression_algorithm(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 174, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("disable_algorithm", 1, 1, 1, __pyx_nargs); __PYX_ERR(21, 174, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.disable_algorithm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_4disable_algorithm(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)__pyx_v_self), __pyx_v_algorithm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_4disable_algorithm(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, grpc_compression_algorithm __pyx_v_algorithm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("disable_algorithm", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":175
 * 
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 * 
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":176
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):
 *     with nogil:
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)             # <<<<<<<<<<<<<<
 * 
 *   def is_algorithm_enabled(self, grpc_compression_algorithm algorithm):
 */
        grpc_compression_options_disable_algorithm((&__pyx_v_self->c_options), __pyx_v_algorithm);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":175
 * 
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":174
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 * 
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":178
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 * 
 *   def is_algorithm_enabled(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     cdef int result
 *     with nogil:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_7is_algorithm_enabled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_7is_algorithm_enabled = {"is_algorithm_enabled", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_7is_algorithm_enabled, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_7is_algorithm_enabled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_compression_algorithm __pyx_v_algorithm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_algorithm_enabled (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_algorithm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_algorithm)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 178, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_algorithm_enabled") < 0)) __PYX_ERR(21, 178, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_algorithm = ((grpc_compression_algorithm)__Pyx_PyInt_As_grpc_compression_algorithm(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 178, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_algorithm_enabled", 1, 1, 1, __pyx_nargs); __PYX_ERR(21, 178, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.is_algorithm_enabled", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_6is_algorithm_enabled(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)__pyx_v_self), __pyx_v_algorithm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_6is_algorithm_enabled(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, grpc_compression_algorithm __pyx_v_algorithm) {
  int __pyx_v_result;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_algorithm_enabled", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":180
 *   def is_algorithm_enabled(self, grpc_compression_algorithm algorithm):
 *     cdef int result
 *     with nogil:             # <<<<<<<<<<<<<<
 *       result = grpc_compression_options_is_algorithm_enabled(
 *           &self.c_options, algorithm)
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":181
 *     cdef int result
 *     with nogil:
 *       result = grpc_compression_options_is_algorithm_enabled(             # <<<<<<<<<<<<<<
 *           &self.c_options, algorithm)
 *     return result
 */
        __pyx_v_result = grpc_compression_options_is_algorithm_enabled((&__pyx_v_self->c_options), __pyx_v_algorithm);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":180
 *   def is_algorithm_enabled(self, grpc_compression_algorithm algorithm):
 *     cdef int result
 *     with nogil:             # <<<<<<<<<<<<<<
 *       result = grpc_compression_options_is_algorithm_enabled(
 *           &self.c_options, algorithm)
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":183
 *       result = grpc_compression_options_is_algorithm_enabled(
 *           &self.c_options, algorithm)
 *     return result             # <<<<<<<<<<<<<<
 * 
 *   def to_channel_arg(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_result); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":178
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 * 
 *   def is_algorithm_enabled(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     cdef int result
 *     with nogil:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.is_algorithm_enabled", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":185
 *     return result
 * 
 *   def to_channel_arg(self):             # <<<<<<<<<<<<<<
 *     return (
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_9to_channel_arg(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_9to_channel_arg = {"to_channel_arg", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_9to_channel_arg, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_9to_channel_arg(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("to_channel_arg (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("to_channel_arg", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "to_channel_arg", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_8to_channel_arg(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_8to_channel_arg(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("to_channel_arg", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":186
 * 
 *   def to_channel_arg(self):
 *     return (             # <<<<<<<<<<<<<<
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
 *         self.c_options.enabled_algorithms_bitset,
 */
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":187
 *   def to_channel_arg(self):
 *     return (
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,             # <<<<<<<<<<<<<<
 *         self.c_options.enabled_algorithms_bitset,
 *     )
 */
  __pyx_t_1 = __Pyx_PyBytes_FromString(GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":188
 *     return (
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
 *         self.c_options.enabled_algorithms_bitset,             # <<<<<<<<<<<<<<
 *     )
 * 
 */
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->c_options.enabled_algorithms_bitset); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":187
 *   def to_channel_arg(self):
 *     return (
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,             # <<<<<<<<<<<<<<
 *         self.c_options.enabled_algorithms_bitset,
 *     )
 */
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(21, 187, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(21, 187, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":185
 *     return result
 * 
 *   def to_channel_arg(self):             # <<<<<<<<<<<<<<
 *     return (
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.to_channel_arg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_10__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_12__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":192
 * 
 * 
 * def compression_algorithm_name(grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *   cdef const char* name
 *   with nogil:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_45compression_algorithm_name(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_45compression_algorithm_name = {"compression_algorithm_name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_45compression_algorithm_name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_45compression_algorithm_name(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_compression_algorithm __pyx_v_algorithm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("compression_algorithm_name (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_algorithm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_algorithm)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 192, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "compression_algorithm_name") < 0)) __PYX_ERR(21, 192, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_algorithm = ((grpc_compression_algorithm)__Pyx_PyInt_As_grpc_compression_algorithm(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 192, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("compression_algorithm_name", 1, 1, 1, __pyx_nargs); __PYX_ERR(21, 192, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.compression_algorithm_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_44compression_algorithm_name(__pyx_self, __pyx_v_algorithm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_44compression_algorithm_name(CYTHON_UNUSED PyObject *__pyx_self, grpc_compression_algorithm __pyx_v_algorithm) {
  char const *__pyx_v_name;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("compression_algorithm_name", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":194
 * def compression_algorithm_name(grpc_compression_algorithm algorithm):
 *   cdef const char* name
 *   with nogil:             # <<<<<<<<<<<<<<
 *     grpc_compression_algorithm_name(algorithm, &name)
 *   # Let Cython do the right thing with string casting
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":195
 *   cdef const char* name
 *   with nogil:
 *     grpc_compression_algorithm_name(algorithm, &name)             # <<<<<<<<<<<<<<
 *   # Let Cython do the right thing with string casting
 *   return name
 */
        (void)(grpc_compression_algorithm_name(__pyx_v_algorithm, (&__pyx_v_name)));
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":194
 * def compression_algorithm_name(grpc_compression_algorithm algorithm):
 *   cdef const char* name
 *   with nogil:             # <<<<<<<<<<<<<<
 *     grpc_compression_algorithm_name(algorithm, &name)
 *   # Let Cython do the right thing with string casting
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":197
 *     grpc_compression_algorithm_name(algorithm, &name)
 *   # Let Cython do the right thing with string casting
 *   return name             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":192
 * 
 * 
 * def compression_algorithm_name(grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *   cdef const char* name
 *   with nogil:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.compression_algorithm_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":200
 * 
 * 
 * def reset_grpc_config_vars():             # <<<<<<<<<<<<<<
 *   ConfigVars.Reset()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_47reset_grpc_config_vars(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_47reset_grpc_config_vars = {"reset_grpc_config_vars", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_47reset_grpc_config_vars, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_47reset_grpc_config_vars(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset_grpc_config_vars (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_46reset_grpc_config_vars(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_46reset_grpc_config_vars(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset_grpc_config_vars", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":201
 * 
 * def reset_grpc_config_vars():
 *   ConfigVars.Reset()             # <<<<<<<<<<<<<<
 */
  grpc_core::ConfigVars::Reset();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":200
 * 
 * 
 * def reset_grpc_config_vars():             # <<<<<<<<<<<<<<
 *   ConfigVars.Reset()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":20
 * 
 * 
 * cdef grpc_ssl_roots_override_result ssl_roots_override_callback(             # <<<<<<<<<<<<<<
 *     char **pem_root_certs) nogil:
 *   with gil:
 */

static grpc_ssl_roots_override_result __pyx_f_4grpc_7_cython_6cygrpc_ssl_roots_override_callback(char **__pyx_v_pem_root_certs) {
  PyObject *__pyx_v_pkg = NULL;
  PyObject *__pyx_v_temporary_pem_root_certs = NULL;
  grpc_ssl_roots_override_result __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  char *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save;
  #endif
  __Pyx_RefNannySetupContext("ssl_roots_override_callback", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":22
 * cdef grpc_ssl_roots_override_result ssl_roots_override_callback(
 *     char **pem_root_certs) nogil:
 *   with gil:             # <<<<<<<<<<<<<<
 *     pkg = __name__
 *     if pkg.endswith('.cygrpc'):
 */
  {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":23
 *     char **pem_root_certs) nogil:
 *   with gil:
 *     pkg = __name__             # <<<<<<<<<<<<<<
 *     if pkg.endswith('.cygrpc'):
 *       pkg = pkg[:-len('.cygrpc')]
 */
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 23, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_v_pkg = __pyx_t_1;
        __pyx_t_1 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":24
 *   with gil:
 *     pkg = __name__
 *     if pkg.endswith('.cygrpc'):             # <<<<<<<<<<<<<<
 *       pkg = pkg[:-len('.cygrpc')]
 *     temporary_pem_root_certs = pkgutil.get_data(pkg, '_credentials/roots.pem')
 */
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_pkg, __pyx_n_s_endswith); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 24, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = NULL;
        __pyx_t_4 = 0;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_2))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
          if (likely(__pyx_t_3)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_2, function);
            __pyx_t_4 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_s_cygrpc};
          __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 24, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        }
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(22, 24, __pyx_L4_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__pyx_t_5) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":25
 *     pkg = __name__
 *     if pkg.endswith('.cygrpc'):
 *       pkg = pkg[:-len('.cygrpc')]             # <<<<<<<<<<<<<<
 *     temporary_pem_root_certs = pkgutil.get_data(pkg, '_credentials/roots.pem')
 *     pem_root_certs[0] = <char *>gpr_malloc(len(temporary_pem_root_certs) + 1)
 */
          __pyx_t_6 = PyObject_Length(__pyx_kp_s_cygrpc); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(22, 25, __pyx_L4_error)
          __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_pkg, 0, (-__pyx_t_6), NULL, NULL, NULL, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 25, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF_SET(__pyx_v_pkg, __pyx_t_1);
          __pyx_t_1 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":24
 *   with gil:
 *     pkg = __name__
 *     if pkg.endswith('.cygrpc'):             # <<<<<<<<<<<<<<
 *       pkg = pkg[:-len('.cygrpc')]
 *     temporary_pem_root_certs = pkgutil.get_data(pkg, '_credentials/roots.pem')
 */
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":26
 *     if pkg.endswith('.cygrpc'):
 *       pkg = pkg[:-len('.cygrpc')]
 *     temporary_pem_root_certs = pkgutil.get_data(pkg, '_credentials/roots.pem')             # <<<<<<<<<<<<<<
 *     pem_root_certs[0] = <char *>gpr_malloc(len(temporary_pem_root_certs) + 1)
 *     memcpy(
 */
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pkgutil); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 26, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 26, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = NULL;
        __pyx_t_4 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_2)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_2);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
            __pyx_t_4 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_pkg, __pyx_kp_s_credentials_roots_pem};
          __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 26, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
        __pyx_v_temporary_pem_root_certs = __pyx_t_1;
        __pyx_t_1 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":27
 *       pkg = pkg[:-len('.cygrpc')]
 *     temporary_pem_root_certs = pkgutil.get_data(pkg, '_credentials/roots.pem')
 *     pem_root_certs[0] = <char *>gpr_malloc(len(temporary_pem_root_certs) + 1)             # <<<<<<<<<<<<<<
 *     memcpy(
 *         pem_root_certs[0], <char *>temporary_pem_root_certs,
 */
        __pyx_t_6 = PyObject_Length(__pyx_v_temporary_pem_root_certs); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(22, 27, __pyx_L4_error)
        (__pyx_v_pem_root_certs[0]) = ((char *)gpr_malloc((__pyx_t_6 + 1)));

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":29
 *     pem_root_certs[0] = <char *>gpr_malloc(len(temporary_pem_root_certs) + 1)
 *     memcpy(
 *         pem_root_certs[0], <char *>temporary_pem_root_certs,             # <<<<<<<<<<<<<<
 *         len(temporary_pem_root_certs))
 *     pem_root_certs[0][len(temporary_pem_root_certs)] = '\0'
 */
        __pyx_t_7 = __Pyx_PyObject_AsWritableString(__pyx_v_temporary_pem_root_certs); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(22, 29, __pyx_L4_error)

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":30
 *     memcpy(
 *         pem_root_certs[0], <char *>temporary_pem_root_certs,
 *         len(temporary_pem_root_certs))             # <<<<<<<<<<<<<<
 *     pem_root_certs[0][len(temporary_pem_root_certs)] = '\0'
 * 
 */
        __pyx_t_6 = PyObject_Length(__pyx_v_temporary_pem_root_certs); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(22, 30, __pyx_L4_error)

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":28
 *     temporary_pem_root_certs = pkgutil.get_data(pkg, '_credentials/roots.pem')
 *     pem_root_certs[0] = <char *>gpr_malloc(len(temporary_pem_root_certs) + 1)
 *     memcpy(             # <<<<<<<<<<<<<<
 *         pem_root_certs[0], <char *>temporary_pem_root_certs,
 *         len(temporary_pem_root_certs))
 */
        (void)(memcpy((__pyx_v_pem_root_certs[0]), ((char *)__pyx_t_7), __pyx_t_6));

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":31
 *         pem_root_certs[0], <char *>temporary_pem_root_certs,
 *         len(temporary_pem_root_certs))
 *     pem_root_certs[0][len(temporary_pem_root_certs)] = '\0'             # <<<<<<<<<<<<<<
 * 
 *   return GRPC_SSL_ROOTS_OVERRIDE_OK
 */
        __pyx_t_6 = PyObject_Length(__pyx_v_temporary_pem_root_certs); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(22, 31, __pyx_L4_error)
        ((__pyx_v_pem_root_certs[0])[__pyx_t_6]) = '\x00';
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":22
 * cdef grpc_ssl_roots_override_result ssl_roots_override_callback(
 *     char **pem_root_certs) nogil:
 *   with gil:             # <<<<<<<<<<<<<<
 *     pkg = __name__
 *     if pkg.endswith('.cygrpc'):
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          #endif
          goto __pyx_L5;
        }
        __pyx_L4_error: {
          #ifdef WITH_THREAD
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          #endif
          goto __pyx_L1_error;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":33
 *     pem_root_certs[0][len(temporary_pem_root_certs)] = '\0'
 * 
 *   return GRPC_SSL_ROOTS_OVERRIDE_OK             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = GRPC_SSL_ROOTS_OVERRIDE_OK;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":20
 * 
 * 
 * cdef grpc_ssl_roots_override_result ssl_roots_override_callback(             # <<<<<<<<<<<<<<
 *     char **pem_root_certs) nogil:
 *   with gil:
 */

  /* function exit code */
  __pyx_L1_error:;
  #ifdef WITH_THREAD
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ssl_roots_override_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = (grpc_ssl_roots_override_result) 0;
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  __pyx_L0:;
  #ifdef WITH_THREAD
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_XDECREF(__pyx_v_pkg);
  __Pyx_XDECREF(__pyx_v_temporary_pem_root_certs);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":36
 * 
 * 
 * def peer_identities(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef grpc_auth_property_iterator properties
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_49peer_identities(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_49peer_identities = {"peer_identities", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_49peer_identities, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_49peer_identities(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer_identities (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_call,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(22, 36, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "peer_identities") < 0)) __PYX_ERR(22, 36, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("peer_identities", 1, 1, 1, __pyx_nargs); __PYX_ERR(22, 36, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.peer_identities", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call), __pyx_ptype_4grpc_7_cython_6cygrpc_Call, 1, "call", 0))) __PYX_ERR(22, 36, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_48peer_identities(__pyx_self, __pyx_v_call);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_48peer_identities(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call) {
  grpc_auth_context *__pyx_v_auth_context;
  grpc_auth_property_iterator __pyx_v_properties;
  grpc_auth_property const *__pyx_v_property;
  PyObject *__pyx_v_identities = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer_identities", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":41
 *   cdef const grpc_auth_property* property
 * 
 *   auth_context = grpc_call_auth_context(call.c_call)             # <<<<<<<<<<<<<<
 *   if auth_context == NULL:
 *     return None
 */
  __pyx_v_auth_context = grpc_call_auth_context(__pyx_v_call->c_call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":42
 * 
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:             # <<<<<<<<<<<<<<
 *     return None
 *   properties = grpc_auth_context_peer_identity(auth_context)
 */
  __pyx_t_1 = (__pyx_v_auth_context == NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":43
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:
 *     return None             # <<<<<<<<<<<<<<
 *   properties = grpc_auth_context_peer_identity(auth_context)
 *   identities = []
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":42
 * 
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:             # <<<<<<<<<<<<<<
 *     return None
 *   properties = grpc_auth_context_peer_identity(auth_context)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":44
 *   if auth_context == NULL:
 *     return None
 *   properties = grpc_auth_context_peer_identity(auth_context)             # <<<<<<<<<<<<<<
 *   identities = []
 *   while True:
 */
  __pyx_v_properties = grpc_auth_context_peer_identity(__pyx_v_auth_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":45
 *     return None
 *   properties = grpc_auth_context_peer_identity(auth_context)
 *   identities = []             # <<<<<<<<<<<<<<
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_identities = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":46
 *   properties = grpc_auth_context_peer_identity(auth_context)
 *   identities = []
 *   while True:             # <<<<<<<<<<<<<<
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:
 */
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":47
 *   identities = []
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)             # <<<<<<<<<<<<<<
 *     if property == NULL:
 *       break
 */
    __pyx_v_property = grpc_auth_property_iterator_next((&__pyx_v_properties));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":48
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:             # <<<<<<<<<<<<<<
 *       break
 *     if property.value != NULL:
 */
    __pyx_t_1 = (__pyx_v_property == NULL);
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":49
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:
 *       break             # <<<<<<<<<<<<<<
 *     if property.value != NULL:
 *       identities.append(<bytes>(property.value))
 */
      goto __pyx_L5_break;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":48
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:             # <<<<<<<<<<<<<<
 *       break
 *     if property.value != NULL:
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":50
 *     if property == NULL:
 *       break
 *     if property.value != NULL:             # <<<<<<<<<<<<<<
 *       identities.append(<bytes>(property.value))
 *   grpc_auth_context_release(auth_context)
 */
    __pyx_t_1 = (__pyx_v_property->value != NULL);
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":51
 *       break
 *     if property.value != NULL:
 *       identities.append(<bytes>(property.value))             # <<<<<<<<<<<<<<
 *   grpc_auth_context_release(auth_context)
 *   return identities if identities else None
 */
      __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_property->value); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 51, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_identities, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(22, 51, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":50
 *     if property == NULL:
 *       break
 *     if property.value != NULL:             # <<<<<<<<<<<<<<
 *       identities.append(<bytes>(property.value))
 *   grpc_auth_context_release(auth_context)
 */
    }
  }
  __pyx_L5_break:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":52
 *     if property.value != NULL:
 *       identities.append(<bytes>(property.value))
 *   grpc_auth_context_release(auth_context)             # <<<<<<<<<<<<<<
 *   return identities if identities else None
 * 
 */
  grpc_auth_context_release(__pyx_v_auth_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":53
 *       identities.append(<bytes>(property.value))
 *   grpc_auth_context_release(auth_context)
 *   return identities if identities else None             # <<<<<<<<<<<<<<
 * 
 * def peer_identity_key(Call call):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = (PyList_GET_SIZE(__pyx_v_identities) != 0);
  if (__pyx_t_1) {
    __Pyx_INCREF(__pyx_v_identities);
    __pyx_t_2 = __pyx_v_identities;
  } else {
    __Pyx_INCREF(Py_None);
    __pyx_t_2 = Py_None;
  }
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":36
 * 
 * 
 * def peer_identities(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef grpc_auth_property_iterator properties
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.peer_identities", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_identities);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":55
 *   return identities if identities else None
 * 
 * def peer_identity_key(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef const char* c_key
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_51peer_identity_key(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_51peer_identity_key = {"peer_identity_key", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_51peer_identity_key, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_51peer_identity_key(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer_identity_key (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_call,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(22, 55, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "peer_identity_key") < 0)) __PYX_ERR(22, 55, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("peer_identity_key", 1, 1, 1, __pyx_nargs); __PYX_ERR(22, 55, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.peer_identity_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call), __pyx_ptype_4grpc_7_cython_6cygrpc_Call, 1, "call", 0))) __PYX_ERR(22, 55, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_50peer_identity_key(__pyx_self, __pyx_v_call);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_50peer_identity_key(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call) {
  grpc_auth_context *__pyx_v_auth_context;
  char const *__pyx_v_c_key;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer_identity_key", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":58
 *   cdef grpc_auth_context* auth_context
 *   cdef const char* c_key
 *   auth_context = grpc_call_auth_context(call.c_call)             # <<<<<<<<<<<<<<
 *   if auth_context == NULL:
 *     return None
 */
  __pyx_v_auth_context = grpc_call_auth_context(__pyx_v_call->c_call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":59
 *   cdef const char* c_key
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:             # <<<<<<<<<<<<<<
 *     return None
 *   c_key = grpc_auth_context_peer_identity_property_name(auth_context)
 */
  __pyx_t_1 = (__pyx_v_auth_context == NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":60
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:
 *     return None             # <<<<<<<<<<<<<<
 *   c_key = grpc_auth_context_peer_identity_property_name(auth_context)
 *   if c_key == NULL:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":59
 *   cdef const char* c_key
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:             # <<<<<<<<<<<<<<
 *     return None
 *   c_key = grpc_auth_context_peer_identity_property_name(auth_context)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":61
 *   if auth_context == NULL:
 *     return None
 *   c_key = grpc_auth_context_peer_identity_property_name(auth_context)             # <<<<<<<<<<<<<<
 *   if c_key == NULL:
 *     key = None
 */
  __pyx_v_c_key = grpc_auth_context_peer_identity_property_name(__pyx_v_auth_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":62
 *     return None
 *   c_key = grpc_auth_context_peer_identity_property_name(auth_context)
 *   if c_key == NULL:             # <<<<<<<<<<<<<<
 *     key = None
 *   else:
 */
  __pyx_t_1 = (__pyx_v_c_key == NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":63
 *   c_key = grpc_auth_context_peer_identity_property_name(auth_context)
 *   if c_key == NULL:
 *     key = None             # <<<<<<<<<<<<<<
 *   else:
 *     key = <bytes> grpc_auth_context_peer_identity_property_name(auth_context)
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_key = ((PyObject*)Py_None);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":62
 *     return None
 *   c_key = grpc_auth_context_peer_identity_property_name(auth_context)
 *   if c_key == NULL:             # <<<<<<<<<<<<<<
 *     key = None
 *   else:
 */
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":65
 *     key = None
 *   else:
 *     key = <bytes> grpc_auth_context_peer_identity_property_name(auth_context)             # <<<<<<<<<<<<<<
 *   grpc_auth_context_release(auth_context)
 *   return key
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyBytes_FromString(grpc_auth_context_peer_identity_property_name(__pyx_v_auth_context)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __pyx_t_2;
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_key = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":66
 *   else:
 *     key = <bytes> grpc_auth_context_peer_identity_property_name(auth_context)
 *   grpc_auth_context_release(auth_context)             # <<<<<<<<<<<<<<
 *   return key
 * 
 */
  grpc_auth_context_release(__pyx_v_auth_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":67
 *     key = <bytes> grpc_auth_context_peer_identity_property_name(auth_context)
 *   grpc_auth_context_release(auth_context)
 *   return key             # <<<<<<<<<<<<<<
 * 
 * def auth_context(Call call):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_key);
  __pyx_r = __pyx_v_key;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":55
 *   return identities if identities else None
 * 
 * def peer_identity_key(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef const char* c_key
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.peer_identity_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":69
 *   return key
 * 
 * def auth_context(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef grpc_auth_property_iterator properties
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_53auth_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_53auth_context = {"auth_context", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_53auth_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_53auth_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("auth_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_call,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(22, 69, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "auth_context") < 0)) __PYX_ERR(22, 69, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("auth_context", 1, 1, 1, __pyx_nargs); __PYX_ERR(22, 69, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.auth_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call), __pyx_ptype_4grpc_7_cython_6cygrpc_Call, 1, "call", 0))) __PYX_ERR(22, 69, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_52auth_context(__pyx_self, __pyx_v_call);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_52auth_context(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call) {
  grpc_auth_context *__pyx_v_auth_context;
  grpc_auth_property_iterator __pyx_v_properties;
  grpc_auth_property const *__pyx_v_property;
  PyObject *__pyx_v_py_auth_context = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("auth_context", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":74
 *   cdef const grpc_auth_property* property
 * 
 *   auth_context = grpc_call_auth_context(call.c_call)             # <<<<<<<<<<<<<<
 *   if auth_context == NULL:
 *     return {}
 */
  __pyx_v_auth_context = grpc_call_auth_context(__pyx_v_call->c_call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":75
 * 
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:             # <<<<<<<<<<<<<<
 *     return {}
 *   properties = grpc_auth_context_property_iterator(auth_context)
 */
  __pyx_t_1 = (__pyx_v_auth_context == NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":76
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:
 *     return {}             # <<<<<<<<<<<<<<
 *   properties = grpc_auth_context_property_iterator(auth_context)
 *   py_auth_context = {}
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":75
 * 
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:             # <<<<<<<<<<<<<<
 *     return {}
 *   properties = grpc_auth_context_property_iterator(auth_context)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":77
 *   if auth_context == NULL:
 *     return {}
 *   properties = grpc_auth_context_property_iterator(auth_context)             # <<<<<<<<<<<<<<
 *   py_auth_context = {}
 *   while True:
 */
  __pyx_v_properties = grpc_auth_context_property_iterator(__pyx_v_auth_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":78
 *     return {}
 *   properties = grpc_auth_context_property_iterator(auth_context)
 *   py_auth_context = {}             # <<<<<<<<<<<<<<
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_py_auth_context = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":79
 *   properties = grpc_auth_context_property_iterator(auth_context)
 *   py_auth_context = {}
 *   while True:             # <<<<<<<<<<<<<<
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:
 */
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":80
 *   py_auth_context = {}
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)             # <<<<<<<<<<<<<<
 *     if property == NULL:
 *       break
 */
    __pyx_v_property = grpc_auth_property_iterator_next((&__pyx_v_properties));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":81
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:             # <<<<<<<<<<<<<<
 *       break
 *     if property.name != NULL and property.value != NULL:
 */
    __pyx_t_1 = (__pyx_v_property == NULL);
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":82
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:
 *       break             # <<<<<<<<<<<<<<
 *     if property.name != NULL and property.value != NULL:
 *       key = <bytes> property.name
 */
      goto __pyx_L5_break;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":81
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:             # <<<<<<<<<<<<<<
 *       break
 *     if property.name != NULL and property.value != NULL:
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":83
 *     if property == NULL:
 *       break
 *     if property.name != NULL and property.value != NULL:             # <<<<<<<<<<<<<<
 *       key = <bytes> property.name
 *       if key in py_auth_context:
 */
    __pyx_t_3 = (__pyx_v_property->name != NULL);
    if (__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_property->value != NULL);
    __pyx_t_1 = __pyx_t_3;
    __pyx_L8_bool_binop_done:;
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":84
 *       break
 *     if property.name != NULL and property.value != NULL:
 *       key = <bytes> property.name             # <<<<<<<<<<<<<<
 *       if key in py_auth_context:
 *         py_auth_context[key].append(<bytes>(property.value))
 */
      __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_property->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 84, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __pyx_t_2;
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF_SET(__pyx_v_key, ((PyObject*)__pyx_t_4));
      __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":85
 *     if property.name != NULL and property.value != NULL:
 *       key = <bytes> property.name
 *       if key in py_auth_context:             # <<<<<<<<<<<<<<
 *         py_auth_context[key].append(<bytes>(property.value))
 *       else:
 */
      __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_key, __pyx_v_py_auth_context, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(22, 85, __pyx_L1_error)
      if (__pyx_t_1) {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":86
 *       key = <bytes> property.name
 *       if key in py_auth_context:
 *         py_auth_context[key].append(<bytes>(property.value))             # <<<<<<<<<<<<<<
 *       else:
 *         py_auth_context[key] = [<bytes> property.value]
 */
        __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_py_auth_context, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 86, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_property->value); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 86, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_5 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_2); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(22, 86, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":85
 *     if property.name != NULL and property.value != NULL:
 *       key = <bytes> property.name
 *       if key in py_auth_context:             # <<<<<<<<<<<<<<
 *         py_auth_context[key].append(<bytes>(property.value))
 *       else:
 */
        goto __pyx_L10;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":88
 *         py_auth_context[key].append(<bytes>(property.value))
 *       else:
 *         py_auth_context[key] = [<bytes> property.value]             # <<<<<<<<<<<<<<
 *   grpc_auth_context_release(auth_context)
 *   return py_auth_context
 */
      /*else*/ {
        __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_property->value); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 88, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 88, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(((PyObject*)__pyx_t_2));
        __Pyx_GIVEREF(((PyObject*)__pyx_t_2));
        if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)) __PYX_ERR(22, 88, __pyx_L1_error);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely((PyDict_SetItem(__pyx_v_py_auth_context, __pyx_v_key, __pyx_t_4) < 0))) __PYX_ERR(22, 88, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __pyx_L10:;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":83
 *     if property == NULL:
 *       break
 *     if property.name != NULL and property.value != NULL:             # <<<<<<<<<<<<<<
 *       key = <bytes> property.name
 *       if key in py_auth_context:
 */
    }
  }
  __pyx_L5_break:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":89
 *       else:
 *         py_auth_context[key] = [<bytes> property.value]
 *   grpc_auth_context_release(auth_context)             # <<<<<<<<<<<<<<
 *   return py_auth_context
 * 
 */
  grpc_auth_context_release(__pyx_v_auth_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":90
 *         py_auth_context[key] = [<bytes> property.value]
 *   grpc_auth_context_release(auth_context)
 *   return py_auth_context             # <<<<<<<<<<<<<<
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_py_auth_context);
  __pyx_r = __pyx_v_py_auth_context;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":69
 *   return key
 * 
 * def auth_context(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef grpc_auth_property_iterator properties
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.auth_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_py_auth_context);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":18
 * cdef class RegisteredMethod:
 * 
 *   def __cinit__(self, bytes method, uintptr_t server):             # <<<<<<<<<<<<<<
 *     self.method = method
 *     cpython.Py_INCREF(self.method)
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_method = 0;
  __pyx_t_4grpc_7_cython_6cygrpc_uintptr_t __pyx_v_server;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_method,&__pyx_n_s_server,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 18, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_server)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 18, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(23, 18, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(23, 18, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_method = ((PyObject*)values[0]);
    __pyx_v_server = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_server == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(23, 18, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(23, 18, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.RegisteredMethod.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyBytes_Type), 1, "method", 1))) __PYX_ERR(23, 18, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)__pyx_v_self), __pyx_v_method, __pyx_v_server);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self, PyObject *__pyx_v_method, __pyx_t_4grpc_7_cython_6cygrpc_uintptr_t __pyx_v_server) {
  char const *__pyx_v_c_method;
  grpc_server *__pyx_v_c_server;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":19
 * 
 *   def __cinit__(self, bytes method, uintptr_t server):
 *     self.method = method             # <<<<<<<<<<<<<<
 *     cpython.Py_INCREF(self.method)
 *     cdef const char *c_method = <const char *>self.method
 */
  __Pyx_INCREF(__pyx_v_method);
  __Pyx_GIVEREF(__pyx_v_method);
  __Pyx_GOTREF(__pyx_v_self->method);
  __Pyx_DECREF(__pyx_v_self->method);
  __pyx_v_self->method = __pyx_v_method;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":20
 *   def __cinit__(self, bytes method, uintptr_t server):
 *     self.method = method
 *     cpython.Py_INCREF(self.method)             # <<<<<<<<<<<<<<
 *     cdef const char *c_method = <const char *>self.method
 *     cdef grpc_server *c_server = <grpc_server *>server
 */
  __pyx_t_1 = __pyx_v_self->method;
  __Pyx_INCREF(__pyx_t_1);
  Py_INCREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":21
 *     self.method = method
 *     cpython.Py_INCREF(self.method)
 *     cdef const char *c_method = <const char *>self.method             # <<<<<<<<<<<<<<
 *     cdef grpc_server *c_server = <grpc_server *>server
 *     # TODO(xuanwn): Consider use GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER for unary request
 */
  if (unlikely(__pyx_v_self->method == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(23, 21, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_self->method); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(23, 21, __pyx_L1_error)
  __pyx_v_c_method = ((char const *)__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":22
 *     cpython.Py_INCREF(self.method)
 *     cdef const char *c_method = <const char *>self.method
 *     cdef grpc_server *c_server = <grpc_server *>server             # <<<<<<<<<<<<<<
 *     # TODO(xuanwn): Consider use GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER for unary request
 *     # as optimization.
 */
  __pyx_v_c_server = ((grpc_server *)__pyx_v_server);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":26
 *     # as optimization.
 *     # Note that in stubs method is not bound to any host, thus we set host as NULL.
 *     with nogil:             # <<<<<<<<<<<<<<
 *       self.c_registered_method = grpc_server_register_method(c_server,
 *       c_method, NULL, GRPC_SRM_PAYLOAD_NONE, 0)
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":27
 *     # Note that in stubs method is not bound to any host, thus we set host as NULL.
 *     with nogil:
 *       self.c_registered_method = grpc_server_register_method(c_server,             # <<<<<<<<<<<<<<
 *       c_method, NULL, GRPC_SRM_PAYLOAD_NONE, 0)
 * 
 */
        __pyx_v_self->c_registered_method = grpc_server_register_method(__pyx_v_c_server, __pyx_v_c_method, NULL, GRPC_SRM_PAYLOAD_NONE, 0);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":26
 *     # as optimization.
 *     # Note that in stubs method is not bound to any host, thus we set host as NULL.
 *     with nogil:             # <<<<<<<<<<<<<<
 *       self.c_registered_method = grpc_server_register_method(c_server,
 *       c_method, NULL, GRPC_SRM_PAYLOAD_NONE, 0)
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":18
 * cdef class RegisteredMethod:
 * 
 *   def __cinit__(self, bytes method, uintptr_t server):             # <<<<<<<<<<<<<<
 *     self.method = method
 *     cpython.Py_INCREF(self.method)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RegisteredMethod.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":30
 *       c_method, NULL, GRPC_SRM_PAYLOAD_NONE, 0)
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     # c_registered_method should have the same lifetime as Cython Server since the method
 *     # maybe called at any time during the server's lifetime.
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__dealloc__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":35
 *     # Since all RegisteredMethod belongs to Cython Server, they'll be destructed at the same
 *     # time with Cython Server, at which point it's safe to assume core no longer holds any reference.
 *     cpython.Py_DECREF(self.method)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __pyx_v_self->method;
  __Pyx_INCREF(__pyx_t_1);
  Py_DECREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":30
 *       c_method, NULL, GRPC_SRM_PAYLOAD_NONE, 0)
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     # c_registered_method should have the same lifetime as Cython Server since the method
 *     # maybe called at any time during the server's lifetime.
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16RegisteredMethod_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.RegisteredMethod.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16RegisteredMethod_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.RegisteredMethod.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.RegisteredMethod.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":40
 * cdef class Server:
 * 
 *   def __cinit__(self, object arguments, bint xds):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self.references = []
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_6Server_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_6Server_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_arguments = 0;
  int __pyx_v_xds;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_arguments,&__pyx_n_s_xds,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_arguments)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 40, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_xds)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 40, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(23, 40, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(23, 40, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_arguments = values[0];
    __pyx_v_xds = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_xds == (int)-1) && PyErr_Occurred())) __PYX_ERR(23, 40, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(23, 40, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_arguments, __pyx_v_xds);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_6Server___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_arguments, int __pyx_v_xds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_channel_args = 0;
  grpc_server_xds_status_notifier __pyx_v_notifier;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  grpc_channel_args *__pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":41
 * 
 *   def __cinit__(self, object arguments, bint xds):
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     self.references = []
 *     self.registered_completion_queues = []
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 41, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":42
 *   def __cinit__(self, object arguments, bint xds):
 *     fork_handlers_and_grpc_init()
 *     self.references = []             # <<<<<<<<<<<<<<
 *     self.registered_completion_queues = []
 *     self.is_started = False
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->references);
  __Pyx_DECREF(__pyx_v_self->references);
  __pyx_v_self->references = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":43
 *     fork_handlers_and_grpc_init()
 *     self.references = []
 *     self.registered_completion_queues = []             # <<<<<<<<<<<<<<
 *     self.is_started = False
 *     self.is_shutting_down = False
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->registered_completion_queues);
  __Pyx_DECREF(__pyx_v_self->registered_completion_queues);
  __pyx_v_self->registered_completion_queues = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":44
 *     self.references = []
 *     self.registered_completion_queues = []
 *     self.is_started = False             # <<<<<<<<<<<<<<
 *     self.is_shutting_down = False
 *     self.is_shutdown = False
 */
  __pyx_v_self->is_started = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":45
 *     self.registered_completion_queues = []
 *     self.is_started = False
 *     self.is_shutting_down = False             # <<<<<<<<<<<<<<
 *     self.is_shutdown = False
 *     self.c_server = NULL
 */
  __pyx_v_self->is_shutting_down = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":46
 *     self.is_started = False
 *     self.is_shutting_down = False
 *     self.is_shutdown = False             # <<<<<<<<<<<<<<
 *     self.c_server = NULL
 *     self.registered_methods = {}  # Mapping[bytes, RegisteredMethod]
 */
  __pyx_v_self->is_shutdown = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":47
 *     self.is_shutting_down = False
 *     self.is_shutdown = False
 *     self.c_server = NULL             # <<<<<<<<<<<<<<
 *     self.registered_methods = {}  # Mapping[bytes, RegisteredMethod]
 *     cdef _ChannelArgs channel_args = _ChannelArgs(arguments)
 */
  __pyx_v_self->c_server = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":48
 *     self.is_shutdown = False
 *     self.c_server = NULL
 *     self.registered_methods = {}  # Mapping[bytes, RegisteredMethod]             # <<<<<<<<<<<<<<
 *     cdef _ChannelArgs channel_args = _ChannelArgs(arguments)
 *     self.c_server = grpc_server_create(channel_args.c_args(), NULL)
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->registered_methods);
  __Pyx_DECREF(__pyx_v_self->registered_methods);
  __pyx_v_self->registered_methods = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":49
 *     self.c_server = NULL
 *     self.registered_methods = {}  # Mapping[bytes, RegisteredMethod]
 *     cdef _ChannelArgs channel_args = _ChannelArgs(arguments)             # <<<<<<<<<<<<<<
 *     self.c_server = grpc_server_create(channel_args.c_args(), NULL)
 *     cdef grpc_server_xds_status_notifier notifier
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs), __pyx_v_arguments); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_channel_args = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":50
 *     self.registered_methods = {}  # Mapping[bytes, RegisteredMethod]
 *     cdef _ChannelArgs channel_args = _ChannelArgs(arguments)
 *     self.c_server = grpc_server_create(channel_args.c_args(), NULL)             # <<<<<<<<<<<<<<
 *     cdef grpc_server_xds_status_notifier notifier
 *     notifier.on_serving_status_update = NULL
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_channel_args->__pyx_vtab)->c_args(__pyx_v_channel_args); if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 50, __pyx_L1_error)
  __pyx_v_self->c_server = grpc_server_create(__pyx_t_5, NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":52
 *     self.c_server = grpc_server_create(channel_args.c_args(), NULL)
 *     cdef grpc_server_xds_status_notifier notifier
 *     notifier.on_serving_status_update = NULL             # <<<<<<<<<<<<<<
 *     notifier.user_data = NULL
 *     if xds:
 */
  __pyx_v_notifier.on_serving_status_update = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":53
 *     cdef grpc_server_xds_status_notifier notifier
 *     notifier.on_serving_status_update = NULL
 *     notifier.user_data = NULL             # <<<<<<<<<<<<<<
 *     if xds:
 *       grpc_server_set_config_fetcher(self.c_server,
 */
  __pyx_v_notifier.user_data = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":54
 *     notifier.on_serving_status_update = NULL
 *     notifier.user_data = NULL
 *     if xds:             # <<<<<<<<<<<<<<
 *       grpc_server_set_config_fetcher(self.c_server,
 *         grpc_server_config_fetcher_xds_create(notifier, channel_args.c_args()))
 */
  if (__pyx_v_xds) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":56
 *     if xds:
 *       grpc_server_set_config_fetcher(self.c_server,
 *         grpc_server_config_fetcher_xds_create(notifier, channel_args.c_args()))             # <<<<<<<<<<<<<<
 *     self.references.append(arguments)
 * 
 */
    __pyx_t_5 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_channel_args->__pyx_vtab)->c_args(__pyx_v_channel_args); if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 56, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":55
 *     notifier.user_data = NULL
 *     if xds:
 *       grpc_server_set_config_fetcher(self.c_server,             # <<<<<<<<<<<<<<
 *         grpc_server_config_fetcher_xds_create(notifier, channel_args.c_args()))
 *     self.references.append(arguments)
 */
    grpc_server_set_config_fetcher(__pyx_v_self->c_server, grpc_server_config_fetcher_xds_create(__pyx_v_notifier, __pyx_t_5));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":54
 *     notifier.on_serving_status_update = NULL
 *     notifier.user_data = NULL
 *     if xds:             # <<<<<<<<<<<<<<
 *       grpc_server_set_config_fetcher(self.c_server,
 *         grpc_server_config_fetcher_xds_create(notifier, channel_args.c_args()))
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":57
 *       grpc_server_set_config_fetcher(self.c_server,
 *         grpc_server_config_fetcher_xds_create(notifier, channel_args.c_args()))
 *     self.references.append(arguments)             # <<<<<<<<<<<<<<
 * 
 *   def request_call(
 */
  if (unlikely(__pyx_v_self->references == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(23, 57, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_self->references, __pyx_v_arguments); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(23, 57, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":40
 * cdef class Server:
 * 
 *   def __cinit__(self, object arguments, bint xds):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self.references = []
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_channel_args);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":59
 *     self.references.append(arguments)
 * 
 *   def request_call(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None, tag):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_3request_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_3request_call = {"request_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_3request_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_3request_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue = 0;
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("request_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_call_queue,&__pyx_n_s_server_queue,&__pyx_n_s_tag,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call_queue)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 59, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_server_queue)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 59, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("request_call", 1, 3, 3, 1); __PYX_ERR(23, 59, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 59, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("request_call", 1, 3, 3, 2); __PYX_ERR(23, 59, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "request_call") < 0)) __PYX_ERR(23, 59, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_call_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)values[0]);
    __pyx_v_server_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)values[1]);
    __pyx_v_tag = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("request_call", 1, 3, 3, __pyx_nargs); __PYX_ERR(23, 59, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.request_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_queue), __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, 0, "call_queue", 0))) __PYX_ERR(23, 60, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_server_queue), __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, 0, "server_queue", 0))) __PYX_ERR(23, 61, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_2request_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_call_queue, __pyx_v_server_queue, __pyx_v_tag);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_2request_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue, PyObject *__pyx_v_tag) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_request_call_tag = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("request_call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":62
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None, tag):
 *     if not self.is_started or self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:
 */
  __pyx_t_2 = (!__pyx_v_self->is_started);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_1 = __pyx_v_self->is_shutting_down;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":63
 *       CompletionQueue server_queue not None, tag):
 *     if not self.is_started or self.is_shutting_down:
 *       raise ValueError("server must be started and not shutting down")             # <<<<<<<<<<<<<<
 *     if server_queue not in self.registered_completion_queues:
 *       raise ValueError("server_queue must be a registered completion queue")
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 63, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(23, 63, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":62
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None, tag):
 *     if not self.is_started or self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":64
 *     if not self.is_started or self.is_shutting_down:
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:             # <<<<<<<<<<<<<<
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 */
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_v_server_queue), __pyx_v_self->registered_completion_queues, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(23, 64, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":65
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:
 *       raise ValueError("server_queue must be a registered completion queue")             # <<<<<<<<<<<<<<
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 *     return self._c_request_unregistered_call(request_call_tag, call_queue, server_queue)
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(23, 65, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":64
 *     if not self.is_started or self.is_shutting_down:
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:             # <<<<<<<<<<<<<<
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":66
 *     if server_queue not in self.registered_completion_queues:
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)             # <<<<<<<<<<<<<<
 *     return self._c_request_unregistered_call(request_call_tag, call_queue, server_queue)
 * 
 */
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag), __pyx_v_tag); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_request_call_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":67
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 *     return self._c_request_unregistered_call(request_call_tag, call_queue, server_queue)             # <<<<<<<<<<<<<<
 * 
 *   def request_registered_call(
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self->__pyx_vtab)->_c_request_unregistered_call(__pyx_v_self, __pyx_v_request_call_tag, __pyx_v_call_queue, __pyx_v_server_queue); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":59
 *     self.references.append(arguments)
 * 
 *   def request_call(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None, tag):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.request_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_request_call_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":69
 *     return self._c_request_unregistered_call(request_call_tag, call_queue, server_queue)
 * 
 *   def request_registered_call(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_5request_registered_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_5request_registered_call = {"request_registered_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_5request_registered_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_5request_registered_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue = 0;
  PyObject *__pyx_v_method = 0;
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("request_registered_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_call_queue,&__pyx_n_s_server_queue,&__pyx_n_s_method,&__pyx_n_s_tag,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call_queue)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 69, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_server_queue)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 69, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("request_registered_call", 1, 4, 4, 1); __PYX_ERR(23, 69, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 69, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("request_registered_call", 1, 4, 4, 2); __PYX_ERR(23, 69, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 69, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("request_registered_call", 1, 4, 4, 3); __PYX_ERR(23, 69, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "request_registered_call") < 0)) __PYX_ERR(23, 69, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_call_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)values[0]);
    __pyx_v_server_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)values[1]);
    __pyx_v_method = ((PyObject*)values[2]);
    __pyx_v_tag = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("request_registered_call", 1, 4, 4, __pyx_nargs); __PYX_ERR(23, 69, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.request_registered_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_queue), __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, 0, "call_queue", 0))) __PYX_ERR(23, 70, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_server_queue), __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, 0, "server_queue", 0))) __PYX_ERR(23, 71, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyString_Type), 0, "method", 1))) __PYX_ERR(23, 72, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_4request_registered_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_call_queue, __pyx_v_server_queue, __pyx_v_method, __pyx_v_tag);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_4request_registered_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue, PyObject *__pyx_v_method, PyObject *__pyx_v_tag) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_request_call_tag = 0;
  PyObject *__pyx_v_method_bytes = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("request_registered_call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":74
 *       str method not None,
 *       tag):
 *     if not self.is_started or self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:
 */
  __pyx_t_2 = (!__pyx_v_self->is_started);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_1 = __pyx_v_self->is_shutting_down;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":75
 *       tag):
 *     if not self.is_started or self.is_shutting_down:
 *       raise ValueError("server must be started and not shutting down")             # <<<<<<<<<<<<<<
 *     if server_queue not in self.registered_completion_queues:
 *       raise ValueError("server_queue must be a registered completion queue")
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(23, 75, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":74
 *       str method not None,
 *       tag):
 *     if not self.is_started or self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":76
 *     if not self.is_started or self.is_shutting_down:
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:             # <<<<<<<<<<<<<<
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 */
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_v_server_queue), __pyx_v_self->registered_completion_queues, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(23, 76, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":77
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:
 *       raise ValueError("server_queue must be a registered completion queue")             # <<<<<<<<<<<<<<
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 *     method_bytes = str_to_bytes(method)
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(23, 77, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":76
 *     if not self.is_started or self.is_shutting_down:
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:             # <<<<<<<<<<<<<<
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":78
 *     if server_queue not in self.registered_completion_queues:
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)             # <<<<<<<<<<<<<<
 *     method_bytes = str_to_bytes(method)
 *     return self._c_request_registered_call(request_call_tag, call_queue, server_queue, method_bytes)
 */
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag), __pyx_v_tag); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_request_call_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":79
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 *     method_bytes = str_to_bytes(method)             # <<<<<<<<<<<<<<
 *     return self._c_request_registered_call(request_call_tag, call_queue, server_queue, method_bytes)
 * 
 */
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_method); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_method_bytes = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":80
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 *     method_bytes = str_to_bytes(method)
 *     return self._c_request_registered_call(request_call_tag, call_queue, server_queue, method_bytes)             # <<<<<<<<<<<<<<
 * 
 *   cdef _c_request_registered_call(self,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self->__pyx_vtab)->_c_request_registered_call(__pyx_v_self, __pyx_v_request_call_tag, __pyx_v_call_queue, __pyx_v_server_queue, __pyx_v_method_bytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":69
 *     return self._c_request_unregistered_call(request_call_tag, call_queue, server_queue)
 * 
 *   def request_registered_call(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.request_registered_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_request_call_tag);
  __Pyx_XDECREF(__pyx_v_method_bytes);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":82
 *     return self._c_request_registered_call(request_call_tag, call_queue, server_queue, method_bytes)
 * 
 *   cdef _c_request_registered_call(self,             # <<<<<<<<<<<<<<
 *        _RequestCallTag request_call_tag,
 *        CompletionQueue call_queue,
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_request_registered_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_request_call_tag, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue, PyObject *__pyx_v_method) {
  PyObject *__pyx_v_c_request_call_tag;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_registered_method = 0;
  grpc_call_error __pyx_v_c_call_error;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  grpc_call_error __pyx_t_5;
  char const *__pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  unsigned int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_c_request_registered_call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":87
 *        CompletionQueue server_queue,
 *        bytes method):
 *     request_call_tag.prepare()             # <<<<<<<<<<<<<<
 *     cpython.Py_INCREF(request_call_tag)
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
 */
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_v_request_call_tag->__pyx_base.__pyx_vtab)->prepare(__pyx_v_request_call_tag); if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 87, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":88
 *        bytes method):
 *     request_call_tag.prepare()
 *     cpython.Py_INCREF(request_call_tag)             # <<<<<<<<<<<<<<
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
 *     cdef RegisteredMethod registered_method = self.registered_methods[method]
 */
  Py_INCREF(((PyObject *)__pyx_v_request_call_tag));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":89
 *     request_call_tag.prepare()
 *     cpython.Py_INCREF(request_call_tag)
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag             # <<<<<<<<<<<<<<
 *     cdef RegisteredMethod registered_method = self.registered_methods[method]
 *     # optional_payload is set to NULL because we use GRPC_SRM_PAYLOAD_NONE for all method.
 */
  __pyx_v_c_request_call_tag = ((PyObject *)__pyx_v_request_call_tag);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":90
 *     cpython.Py_INCREF(request_call_tag)
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
 *     cdef RegisteredMethod registered_method = self.registered_methods[method]             # <<<<<<<<<<<<<<
 *     # optional_payload is set to NULL because we use GRPC_SRM_PAYLOAD_NONE for all method.
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 */
  if (unlikely(__pyx_v_self->registered_methods == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(23, 90, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->registered_methods, __pyx_v_method); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod))))) __PYX_ERR(23, 90, __pyx_L1_error)
  __pyx_v_registered_method = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":92
 *     cdef RegisteredMethod registered_method = self.registered_methods[method]
 *     # optional_payload is set to NULL because we use GRPC_SRM_PAYLOAD_NONE for all method.
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK             # <<<<<<<<<<<<<<
 *     with nogil:
 *       c_call_error = grpc_server_request_registered_call(
 */
  __pyx_v_c_call_error = GRPC_CALL_OK;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":93
 *     # optional_payload is set to NULL because we use GRPC_SRM_PAYLOAD_NONE for all method.
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 *     with nogil:             # <<<<<<<<<<<<<<
 *       c_call_error = grpc_server_request_registered_call(
 *           self.c_server, registered_method.c_registered_method, &request_call_tag.call.c_call,
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":94
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 *     with nogil:
 *       c_call_error = grpc_server_request_registered_call(             # <<<<<<<<<<<<<<
 *           self.c_server, registered_method.c_registered_method, &request_call_tag.call.c_call,
 *           &request_call_tag.call_details.c_details.deadline,
 */
        __pyx_v_c_call_error = grpc_server_request_registered_call(__pyx_v_self->c_server, __pyx_v_registered_method->c_registered_method, (&__pyx_v_request_call_tag->call->c_call), (&__pyx_v_request_call_tag->call_details->c_details.deadline), (&__pyx_v_request_call_tag->c_invocation_metadata), NULL, __pyx_v_call_queue->c_completion_queue, __pyx_v_server_queue->c_completion_queue, __pyx_v_c_request_call_tag);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":93
 *     # optional_payload is set to NULL because we use GRPC_SRM_PAYLOAD_NONE for all method.
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 *     with nogil:             # <<<<<<<<<<<<<<
 *       c_call_error = grpc_server_request_registered_call(
 *           self.c_server, registered_method.c_registered_method, &request_call_tag.call.c_call,
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":101
 *           call_queue.c_completion_queue, server_queue.c_completion_queue,
 *           c_request_call_tag)
 *     if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *       raise InternalError("Error in grpc_server_request_registered_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())
 *     return c_call_error
 */
  __pyx_t_2 = (__pyx_v_c_call_error != GRPC_CALL_OK);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":102
 *           c_request_call_tag)
 *     if c_call_error != GRPC_CALL_OK:
 *       raise InternalError("Error in grpc_server_request_registered_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())             # <<<<<<<<<<<<<<
 *     return c_call_error
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_InternalError); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_c_call_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = ((grpc_call_error)__Pyx_PyInt_As_grpc_call_error(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 102, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = grpc_call_error_to_string(__pyx_t_5);
    __pyx_t_7 = __Pyx_ssize_strlen(__pyx_t_6); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(23, 102, __pyx_L1_error)
    __pyx_t_4 = __Pyx_decode_c_string(__pyx_t_6, 0, __pyx_t_7, NULL, NULL, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = __Pyx_PyString_Format(__pyx_kp_s_Error_in_grpc_server_request_reg, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_8};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 102, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(23, 102, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":101
 *           call_queue.c_completion_queue, server_queue.c_completion_queue,
 *           c_request_call_tag)
 *     if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *       raise InternalError("Error in grpc_server_request_registered_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())
 *     return c_call_error
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":103
 *     if c_call_error != GRPC_CALL_OK:
 *       raise InternalError("Error in grpc_server_request_registered_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())
 *     return c_call_error             # <<<<<<<<<<<<<<
 * 
 *   cdef _c_request_unregistered_call(self,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":82
 *     return self._c_request_registered_call(request_call_tag, call_queue, server_queue, method_bytes)
 * 
 *   cdef _c_request_registered_call(self,             # <<<<<<<<<<<<<<
 *        _RequestCallTag request_call_tag,
 *        CompletionQueue call_queue,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server._c_request_registered_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_registered_method);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":105
 *     return c_call_error
 * 
 *   cdef _c_request_unregistered_call(self,             # <<<<<<<<<<<<<<
 *        _RequestCallTag request_call_tag,
 *        CompletionQueue call_queue,
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_request_unregistered_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_request_call_tag, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue) {
  PyObject *__pyx_v_c_request_call_tag;
  grpc_call_error __pyx_v_c_call_error;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  grpc_call_error __pyx_t_5;
  char const *__pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  unsigned int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_c_request_unregistered_call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":109
 *        CompletionQueue call_queue,
 *        CompletionQueue server_queue):
 *     request_call_tag.prepare()             # <<<<<<<<<<<<<<
 *     cpython.Py_INCREF(request_call_tag)
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
 */
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_v_request_call_tag->__pyx_base.__pyx_vtab)->prepare(__pyx_v_request_call_tag); if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 109, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":110
 *        CompletionQueue server_queue):
 *     request_call_tag.prepare()
 *     cpython.Py_INCREF(request_call_tag)             # <<<<<<<<<<<<<<
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 */
  Py_INCREF(((PyObject *)__pyx_v_request_call_tag));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":111
 *     request_call_tag.prepare()
 *     cpython.Py_INCREF(request_call_tag)
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag             # <<<<<<<<<<<<<<
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 *     with nogil:
 */
  __pyx_v_c_request_call_tag = ((PyObject *)__pyx_v_request_call_tag);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":112
 *     cpython.Py_INCREF(request_call_tag)
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK             # <<<<<<<<<<<<<<
 *     with nogil:
 *       c_call_error = grpc_server_request_call(
 */
  __pyx_v_c_call_error = GRPC_CALL_OK;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":113
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 *     with nogil:             # <<<<<<<<<<<<<<
 *       c_call_error = grpc_server_request_call(
 *           self.c_server, &request_call_tag.call.c_call,
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":114
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 *     with nogil:
 *       c_call_error = grpc_server_request_call(             # <<<<<<<<<<<<<<
 *           self.c_server, &request_call_tag.call.c_call,
 *           &request_call_tag.call_details.c_details,
 */
        __pyx_v_c_call_error = grpc_server_request_call(__pyx_v_self->c_server, (&__pyx_v_request_call_tag->call->c_call), (&__pyx_v_request_call_tag->call_details->c_details), (&__pyx_v_request_call_tag->c_invocation_metadata), __pyx_v_call_queue->c_completion_queue, __pyx_v_server_queue->c_completion_queue, __pyx_v_c_request_call_tag);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":113
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 *     with nogil:             # <<<<<<<<<<<<<<
 *       c_call_error = grpc_server_request_call(
 *           self.c_server, &request_call_tag.call.c_call,
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":120
 *           call_queue.c_completion_queue, server_queue.c_completion_queue,
 *           c_request_call_tag)
 *     if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *       raise InternalError("Error in grpc_server_request_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())
 *     return c_call_error
 */
  __pyx_t_1 = (__pyx_v_c_call_error != GRPC_CALL_OK);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":121
 *           c_request_call_tag)
 *     if c_call_error != GRPC_CALL_OK:
 *       raise InternalError("Error in grpc_server_request_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())             # <<<<<<<<<<<<<<
 *     return c_call_error
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_InternalError); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_c_call_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = ((grpc_call_error)__Pyx_PyInt_As_grpc_call_error(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 121, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = grpc_call_error_to_string(__pyx_t_5);
    __pyx_t_7 = __Pyx_ssize_strlen(__pyx_t_6); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(23, 121, __pyx_L1_error)
    __pyx_t_4 = __Pyx_decode_c_string(__pyx_t_6, 0, __pyx_t_7, NULL, NULL, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = __Pyx_PyString_Format(__pyx_kp_s_Error_in_grpc_server_request_cal, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_8};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 121, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(23, 121, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":120
 *           call_queue.c_completion_queue, server_queue.c_completion_queue,
 *           c_request_call_tag)
 *     if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *       raise InternalError("Error in grpc_server_request_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())
 *     return c_call_error
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":122
 *     if c_call_error != GRPC_CALL_OK:
 *       raise InternalError("Error in grpc_server_request_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())
 *     return c_call_error             # <<<<<<<<<<<<<<
 * 
 *   def register_completion_queue(
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyInt_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":105
 *     return c_call_error
 * 
 *   cdef _c_request_unregistered_call(self,             # <<<<<<<<<<<<<<
 *        _RequestCallTag request_call_tag,
 *        CompletionQueue call_queue,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server._c_request_unregistered_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":124
 *     return c_call_error
 * 
 *   def register_completion_queue(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue queue not None):
 *     if self.is_started:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_7register_completion_queue(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_7register_completion_queue = {"register_completion_queue", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_7register_completion_queue, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_7register_completion_queue(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("register_completion_queue (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_queue,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_queue)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 124, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "register_completion_queue") < 0)) __PYX_ERR(23, 124, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("register_completion_queue", 1, 1, 1, __pyx_nargs); __PYX_ERR(23, 124, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.register_completion_queue", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_queue), __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, 0, "queue", 0))) __PYX_ERR(23, 125, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_6register_completion_queue(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_queue);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_6register_completion_queue(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("register_completion_queue", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":126
 *   def register_completion_queue(
 *       self, CompletionQueue queue not None):
 *     if self.is_started:             # <<<<<<<<<<<<<<
 *       raise ValueError("cannot register completion queues after start")
 *     with nogil:
 */
  if (unlikely(__pyx_v_self->is_started)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":127
 *       self, CompletionQueue queue not None):
 *     if self.is_started:
 *       raise ValueError("cannot register completion queues after start")             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_server_register_completion_queue(
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(23, 127, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":126
 *   def register_completion_queue(
 *       self, CompletionQueue queue not None):
 *     if self.is_started:             # <<<<<<<<<<<<<<
 *       raise ValueError("cannot register completion queues after start")
 *     with nogil:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":128
 *     if self.is_started:
 *       raise ValueError("cannot register completion queues after start")
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_server_register_completion_queue(
 *           self.c_server, queue.c_completion_queue, NULL)
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":129
 *       raise ValueError("cannot register completion queues after start")
 *     with nogil:
 *       grpc_server_register_completion_queue(             # <<<<<<<<<<<<<<
 *           self.c_server, queue.c_completion_queue, NULL)
 *     self.registered_completion_queues.append(queue)
 */
        grpc_server_register_completion_queue(__pyx_v_self->c_server, __pyx_v_queue->c_completion_queue, NULL);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":128
 *     if self.is_started:
 *       raise ValueError("cannot register completion queues after start")
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_server_register_completion_queue(
 *           self.c_server, queue.c_completion_queue, NULL)
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L6;
        }
        __pyx_L6:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":131
 *       grpc_server_register_completion_queue(
 *           self.c_server, queue.c_completion_queue, NULL)
 *     self.registered_completion_queues.append(queue)             # <<<<<<<<<<<<<<
 * 
 *   def register_method(self, str fully_qualified_method):
 */
  if (unlikely(__pyx_v_self->registered_completion_queues == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(23, 131, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_self->registered_completion_queues, ((PyObject *)__pyx_v_queue)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(23, 131, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":124
 *     return c_call_error
 * 
 *   def register_completion_queue(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue queue not None):
 *     if self.is_started:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.register_completion_queue", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":133
 *     self.registered_completion_queues.append(queue)
 * 
 *   def register_method(self, str fully_qualified_method):             # <<<<<<<<<<<<<<
 *     method_bytes = str_to_bytes(fully_qualified_method)
 *     if method_bytes in self.registered_methods.keys():
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_9register_method(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_9register_method = {"register_method", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_9register_method, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_9register_method(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_fully_qualified_method = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("register_method (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fully_qualified_method,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fully_qualified_method)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 133, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "register_method") < 0)) __PYX_ERR(23, 133, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_fully_qualified_method = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("register_method", 1, 1, 1, __pyx_nargs); __PYX_ERR(23, 133, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.register_method", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fully_qualified_method), (&PyString_Type), 1, "fully_qualified_method", 1))) __PYX_ERR(23, 133, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_8register_method(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_fully_qualified_method);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_8register_method(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_fully_qualified_method) {
  PyObject *__pyx_v_method_bytes = NULL;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_registered_method = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("register_method", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":134
 * 
 *   def register_method(self, str fully_qualified_method):
 *     method_bytes = str_to_bytes(fully_qualified_method)             # <<<<<<<<<<<<<<
 *     if method_bytes in self.registered_methods.keys():
 *       # Ignore already registered method
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_fully_qualified_method); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_method_bytes = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":135
 *   def register_method(self, str fully_qualified_method):
 *     method_bytes = str_to_bytes(fully_qualified_method)
 *     if method_bytes in self.registered_methods.keys():             # <<<<<<<<<<<<<<
 *       # Ignore already registered method
 *       return
 */
  if (unlikely(__pyx_v_self->registered_methods == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys");
    __PYX_ERR(23, 135, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_self->registered_methods); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_method_bytes, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(23, 135, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":137
 *     if method_bytes in self.registered_methods.keys():
 *       # Ignore already registered method
 *       return             # <<<<<<<<<<<<<<
 *     cdef RegisteredMethod registered_method = RegisteredMethod(method_bytes, <uintptr_t>self.c_server)
 *     self.registered_methods[method_bytes] = registered_method
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":135
 *   def register_method(self, str fully_qualified_method):
 *     method_bytes = str_to_bytes(fully_qualified_method)
 *     if method_bytes in self.registered_methods.keys():             # <<<<<<<<<<<<<<
 *       # Ignore already registered method
 *       return
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":138
 *       # Ignore already registered method
 *       return
 *     cdef RegisteredMethod registered_method = RegisteredMethod(method_bytes, <uintptr_t>self.c_server)             # <<<<<<<<<<<<<<
 *     self.registered_methods[method_bytes] = registered_method
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((__pyx_t_4grpc_7_cython_6cygrpc_uintptr_t)__pyx_v_self->c_server)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_method_bytes);
  __Pyx_GIVEREF(__pyx_v_method_bytes);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_method_bytes)) __PYX_ERR(23, 138, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(23, 138, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod), __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_registered_method = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":139
 *       return
 *     cdef RegisteredMethod registered_method = RegisteredMethod(method_bytes, <uintptr_t>self.c_server)
 *     self.registered_methods[method_bytes] = registered_method             # <<<<<<<<<<<<<<
 * 
 *   def start(self, backup_queue=True):
 */
  if (unlikely(__pyx_v_self->registered_methods == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(23, 139, __pyx_L1_error)
  }
  if (unlikely((PyDict_SetItem(__pyx_v_self->registered_methods, __pyx_v_method_bytes, ((PyObject *)__pyx_v_registered_method)) < 0))) __PYX_ERR(23, 139, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":133
 *     self.registered_completion_queues.append(queue)
 * 
 *   def register_method(self, str fully_qualified_method):             # <<<<<<<<<<<<<<
 *     method_bytes = str_to_bytes(fully_qualified_method)
 *     if method_bytes in self.registered_methods.keys():
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.register_method", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_method_bytes);
  __Pyx_XDECREF((PyObject *)__pyx_v_registered_method);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":141
 *     self.registered_methods[method_bytes] = registered_method
 * 
 *   def start(self, backup_queue=True):             # <<<<<<<<<<<<<<
 *     """Start the Cython gRPC Server.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_11start(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_6Server_10start, "Start the Cython gRPC Server.\n    \n    Args:\n      backup_queue: a bool indicates whether to spawn a backup completion\n        queue. In the case that no CQ is bound to the server, and the shutdown\n        of server becomes un-observable.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_11start = {"start", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_11start, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_6Server_10start};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_11start(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_backup_queue = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("start (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_backup_queue,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_True));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_backup_queue);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 141, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "start") < 0)) __PYX_ERR(23, 141, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_backup_queue = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("start", 0, 0, 1, __pyx_nargs); __PYX_ERR(23, 141, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_10start(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_backup_queue);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_10start(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_backup_queue) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("start", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":149
 *         of server becomes un-observable.
 *     """
 *     if self.is_started:             # <<<<<<<<<<<<<<
 *       raise ValueError("the server has already started")
 *     if backup_queue:
 */
  if (unlikely(__pyx_v_self->is_started)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":150
 *     """
 *     if self.is_started:
 *       raise ValueError("the server has already started")             # <<<<<<<<<<<<<<
 *     if backup_queue:
 *       self.backup_shutdown_queue = CompletionQueue(shutdown_cq=True)
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(23, 150, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":149
 *         of server becomes un-observable.
 *     """
 *     if self.is_started:             # <<<<<<<<<<<<<<
 *       raise ValueError("the server has already started")
 *     if backup_queue:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":151
 *     if self.is_started:
 *       raise ValueError("the server has already started")
 *     if backup_queue:             # <<<<<<<<<<<<<<
 *       self.backup_shutdown_queue = CompletionQueue(shutdown_cq=True)
 *       self.register_completion_queue(self.backup_shutdown_queue)
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_backup_queue); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(23, 151, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":152
 *       raise ValueError("the server has already started")
 *     if backup_queue:
 *       self.backup_shutdown_queue = CompletionQueue(shutdown_cq=True)             # <<<<<<<<<<<<<<
 *       self.register_completion_queue(self.backup_shutdown_queue)
 *     self.is_started = True
 */
    __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_shutdown_cq, Py_True) < 0) __PYX_ERR(23, 152, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF((PyObject *)__pyx_v_self->backup_shutdown_queue);
    __Pyx_DECREF((PyObject *)__pyx_v_self->backup_shutdown_queue);
    __pyx_v_self->backup_shutdown_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":153
 *     if backup_queue:
 *       self.backup_shutdown_queue = CompletionQueue(shutdown_cq=True)
 *       self.register_completion_queue(self.backup_shutdown_queue)             # <<<<<<<<<<<<<<
 *     self.is_started = True
 *     with nogil:
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_register_completion_queue); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 153, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_self->backup_shutdown_queue)};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 153, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":151
 *     if self.is_started:
 *       raise ValueError("the server has already started")
 *     if backup_queue:             # <<<<<<<<<<<<<<
 *       self.backup_shutdown_queue = CompletionQueue(shutdown_cq=True)
 *       self.register_completion_queue(self.backup_shutdown_queue)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":154
 *       self.backup_shutdown_queue = CompletionQueue(shutdown_cq=True)
 *       self.register_completion_queue(self.backup_shutdown_queue)
 *     self.is_started = True             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_server_start(self.c_server)
 */
  __pyx_v_self->is_started = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":155
 *       self.register_completion_queue(self.backup_shutdown_queue)
 *     self.is_started = True
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_server_start(self.c_server)
 *     if backup_queue:
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":156
 *     self.is_started = True
 *     with nogil:
 *       grpc_server_start(self.c_server)             # <<<<<<<<<<<<<<
 *     if backup_queue:
 *       # Ensure the core has gotten a chance to do the start-up work
 */
        grpc_server_start(__pyx_v_self->c_server);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":155
 *       self.register_completion_queue(self.backup_shutdown_queue)
 *     self.is_started = True
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_server_start(self.c_server)
 *     if backup_queue:
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L7;
        }
        __pyx_L7:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":157
 *     with nogil:
 *       grpc_server_start(self.c_server)
 *     if backup_queue:             # <<<<<<<<<<<<<<
 *       # Ensure the core has gotten a chance to do the start-up work
 *       self.backup_shutdown_queue.poll(deadline=time.time())
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_backup_queue); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(23, 157, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":159
 *     if backup_queue:
 *       # Ensure the core has gotten a chance to do the start-up work
 *       self.backup_shutdown_queue.poll(deadline=time.time())             # <<<<<<<<<<<<<<
 * 
 *   def add_http2_port(self, bytes address,
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->backup_shutdown_queue), __pyx_n_s_poll); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_time); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_time); if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 159, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_deadline, __pyx_t_4) < 0) __PYX_ERR(23, 159, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":157
 *     with nogil:
 *       grpc_server_start(self.c_server)
 *     if backup_queue:             # <<<<<<<<<<<<<<
 *       # Ensure the core has gotten a chance to do the start-up work
 *       self.backup_shutdown_queue.poll(deadline=time.time())
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":141
 *     self.registered_methods[method_bytes] = registered_method
 * 
 *   def start(self, backup_queue=True):             # <<<<<<<<<<<<<<
 *     """Start the Cython gRPC Server.
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":161
 *       self.backup_shutdown_queue.poll(deadline=time.time())
 * 
 *   def add_http2_port(self, bytes address,             # <<<<<<<<<<<<<<
 *                      ServerCredentials server_credentials=None):
 *     address = str_to_bytes(address)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_13add_http2_port(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_13add_http2_port = {"add_http2_port", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_13add_http2_port, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_13add_http2_port(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_address = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_server_credentials = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_http2_port (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_address,&__pyx_n_s_server_credentials,0};

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":162
 * 
 *   def add_http2_port(self, bytes address,
 *                      ServerCredentials server_credentials=None):             # <<<<<<<<<<<<<<
 *     address = str_to_bytes(address)
 *     self.references.append(address)
 */
    values[1] = __Pyx_Arg_NewRef_FASTCALL((PyObject *)((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_address)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 161, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_server_credentials);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 161, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "add_http2_port") < 0)) __PYX_ERR(23, 161, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_address = ((PyObject*)values[0]);
    __pyx_v_server_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_http2_port", 0, 1, 2, __pyx_nargs); __PYX_ERR(23, 161, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.add_http2_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_address), (&PyBytes_Type), 1, "address", 1))) __PYX_ERR(23, 161, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_server_credentials), __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials, 1, "server_credentials", 0))) __PYX_ERR(23, 162, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_12add_http2_port(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_address, __pyx_v_server_credentials);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":161
 *       self.backup_shutdown_queue.poll(deadline=time.time())
 * 
 *   def add_http2_port(self, bytes address,             # <<<<<<<<<<<<<<
 *                      ServerCredentials server_credentials=None):
 *     address = str_to_bytes(address)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_12add_http2_port(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_address, struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_server_credentials) {
  int __pyx_v_result;
  char *__pyx_v_address_c_string;
  grpc_server_credentials *__pyx_v_creds;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  char *__pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_http2_port", 0);
  __Pyx_INCREF(__pyx_v_address);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":163
 *   def add_http2_port(self, bytes address,
 *                      ServerCredentials server_credentials=None):
 *     address = str_to_bytes(address)             # <<<<<<<<<<<<<<
 *     self.references.append(address)
 *     cdef int result
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_address); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_address, ((PyObject*)__pyx_t_1));
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":164
 *                      ServerCredentials server_credentials=None):
 *     address = str_to_bytes(address)
 *     self.references.append(address)             # <<<<<<<<<<<<<<
 *     cdef int result
 *     cdef char *address_c_string = address
 */
  if (unlikely(__pyx_v_self->references == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(23, 164, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_self->references, __pyx_v_address); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(23, 164, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":166
 *     self.references.append(address)
 *     cdef int result
 *     cdef char *address_c_string = address             # <<<<<<<<<<<<<<
 *     if server_credentials is not None:
 *       self.references.append(server_credentials)
 */
  if (unlikely(__pyx_v_address == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(23, 166, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyBytes_AsWritableString(__pyx_v_address); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(23, 166, __pyx_L1_error)
  __pyx_v_address_c_string = __pyx_t_3;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":167
 *     cdef int result
 *     cdef char *address_c_string = address
 *     if server_credentials is not None:             # <<<<<<<<<<<<<<
 *       self.references.append(server_credentials)
 *       with nogil:
 */
  __pyx_t_4 = (((PyObject *)__pyx_v_server_credentials) != Py_None);
  if (__pyx_t_4) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":168
 *     cdef char *address_c_string = address
 *     if server_credentials is not None:
 *       self.references.append(server_credentials)             # <<<<<<<<<<<<<<
 *       with nogil:
 *         result = grpc_server_add_http2_port(
 */
    if (unlikely(__pyx_v_self->references == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
      __PYX_ERR(23, 168, __pyx_L1_error)
    }
    __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_self->references, ((PyObject *)__pyx_v_server_credentials)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(23, 168, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":169
 *     if server_credentials is not None:
 *       self.references.append(server_credentials)
 *       with nogil:             # <<<<<<<<<<<<<<
 *         result = grpc_server_add_http2_port(
 *             self.c_server, address_c_string, server_credentials.c_credentials)
 */
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        #endif
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":170
 *       self.references.append(server_credentials)
 *       with nogil:
 *         result = grpc_server_add_http2_port(             # <<<<<<<<<<<<<<
 *             self.c_server, address_c_string, server_credentials.c_credentials)
 *     else:
 */
          __pyx_v_result = grpc_server_add_http2_port(__pyx_v_self->c_server, __pyx_v_address_c_string, __pyx_v_server_credentials->c_credentials);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":169
 *     if server_credentials is not None:
 *       self.references.append(server_credentials)
 *       with nogil:             # <<<<<<<<<<<<<<
 *         result = grpc_server_add_http2_port(
 *             self.c_server, address_c_string, server_credentials.c_credentials)
 */
        /*finally:*/ {
          /*normal exit:*/{
            #ifdef WITH_THREAD
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L6;
          }
          __pyx_L6:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":167
 *     cdef int result
 *     cdef char *address_c_string = address
 *     if server_credentials is not None:             # <<<<<<<<<<<<<<
 *       self.references.append(server_credentials)
 *       with nogil:
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":173
 *             self.c_server, address_c_string, server_credentials.c_credentials)
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         creds = grpc_insecure_server_credentials_create()
 *         result = grpc_server_add_http2_port(self.c_server,
 */
  /*else*/ {
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        #endif
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":174
 *     else:
 *       with nogil:
 *         creds = grpc_insecure_server_credentials_create()             # <<<<<<<<<<<<<<
 *         result = grpc_server_add_http2_port(self.c_server,
 *                                             address_c_string, creds)
 */
          __pyx_v_creds = grpc_insecure_server_credentials_create();

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":175
 *       with nogil:
 *         creds = grpc_insecure_server_credentials_create()
 *         result = grpc_server_add_http2_port(self.c_server,             # <<<<<<<<<<<<<<
 *                                             address_c_string, creds)
 *         grpc_server_credentials_release(creds)
 */
          __pyx_v_result = grpc_server_add_http2_port(__pyx_v_self->c_server, __pyx_v_address_c_string, __pyx_v_creds);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":177
 *         result = grpc_server_add_http2_port(self.c_server,
 *                                             address_c_string, creds)
 *         grpc_server_credentials_release(creds)             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
          grpc_server_credentials_release(__pyx_v_creds);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":173
 *             self.c_server, address_c_string, server_credentials.c_credentials)
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         creds = grpc_insecure_server_credentials_create()
 *         result = grpc_server_add_http2_port(self.c_server,
 */
        /*finally:*/ {
          /*normal exit:*/{
            #ifdef WITH_THREAD
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L9;
          }
          __pyx_L9:;
        }
    }
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":178
 *                                             address_c_string, creds)
 *         grpc_server_credentials_release(creds)
 *     return result             # <<<<<<<<<<<<<<
 * 
 *   cdef _c_shutdown(self, CompletionQueue queue, tag):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_result); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":161
 *       self.backup_shutdown_queue.poll(deadline=time.time())
 * 
 *   def add_http2_port(self, bytes address,             # <<<<<<<<<<<<<<
 *                      ServerCredentials server_credentials=None):
 *     address = str_to_bytes(address)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.add_http2_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_address);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":180
 *     return result
 * 
 *   cdef _c_shutdown(self, CompletionQueue queue, tag):             # <<<<<<<<<<<<<<
 *     self.is_shutting_down = True
 *     cdef _ServerShutdownTag server_shutdown_tag = _ServerShutdownTag(tag, self)
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue, PyObject *__pyx_v_tag) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_server_shutdown_tag = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_c_shutdown", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":181
 * 
 *   cdef _c_shutdown(self, CompletionQueue queue, tag):
 *     self.is_shutting_down = True             # <<<<<<<<<<<<<<
 *     cdef _ServerShutdownTag server_shutdown_tag = _ServerShutdownTag(tag, self)
 *     cpython.Py_INCREF(server_shutdown_tag)
 */
  __pyx_v_self->is_shutting_down = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":182
 *   cdef _c_shutdown(self, CompletionQueue queue, tag):
 *     self.is_shutting_down = True
 *     cdef _ServerShutdownTag server_shutdown_tag = _ServerShutdownTag(tag, self)             # <<<<<<<<<<<<<<
 *     cpython.Py_INCREF(server_shutdown_tag)
 *     with nogil:
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_tag);
  __Pyx_GIVEREF(__pyx_v_tag);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_tag)) __PYX_ERR(23, 182, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self))) __PYX_ERR(23, 182, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_server_shutdown_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":183
 *     self.is_shutting_down = True
 *     cdef _ServerShutdownTag server_shutdown_tag = _ServerShutdownTag(tag, self)
 *     cpython.Py_INCREF(server_shutdown_tag)             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_server_shutdown_and_notify(
 */
  Py_INCREF(((PyObject *)__pyx_v_server_shutdown_tag));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":184
 *     cdef _ServerShutdownTag server_shutdown_tag = _ServerShutdownTag(tag, self)
 *     cpython.Py_INCREF(server_shutdown_tag)
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_server_shutdown_and_notify(
 *           self.c_server, queue.c_completion_queue,
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":185
 *     cpython.Py_INCREF(server_shutdown_tag)
 *     with nogil:
 *       grpc_server_shutdown_and_notify(             # <<<<<<<<<<<<<<
 *           self.c_server, queue.c_completion_queue,
 *           <cpython.PyObject *>server_shutdown_tag)
 */
        grpc_server_shutdown_and_notify(__pyx_v_self->c_server, __pyx_v_queue->c_completion_queue, ((PyObject *)__pyx_v_server_shutdown_tag));
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":184
 *     cdef _ServerShutdownTag server_shutdown_tag = _ServerShutdownTag(tag, self)
 *     cpython.Py_INCREF(server_shutdown_tag)
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_server_shutdown_and_notify(
 *           self.c_server, queue.c_completion_queue,
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":180
 *     return result
 * 
 *   cdef _c_shutdown(self, CompletionQueue queue, tag):             # <<<<<<<<<<<<<<
 *     self.is_shutting_down = True
 *     cdef _ServerShutdownTag server_shutdown_tag = _ServerShutdownTag(tag, self)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server._c_shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_server_shutdown_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":189
 *           <cpython.PyObject *>server_shutdown_tag)
 * 
 *   def shutdown(self, CompletionQueue queue not None, tag):             # <<<<<<<<<<<<<<
 *     if queue.is_shutting_down:
 *       raise ValueError("queue must be live")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_15shutdown(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_15shutdown = {"shutdown", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_15shutdown, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_15shutdown(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue = 0;
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_queue,&__pyx_n_s_tag,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_queue)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 189, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 189, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("shutdown", 1, 2, 2, 1); __PYX_ERR(23, 189, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "shutdown") < 0)) __PYX_ERR(23, 189, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)values[0]);
    __pyx_v_tag = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("shutdown", 1, 2, 2, __pyx_nargs); __PYX_ERR(23, 189, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_queue), __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, 0, "queue", 0))) __PYX_ERR(23, 189, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_14shutdown(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_queue, __pyx_v_tag);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_14shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue, PyObject *__pyx_v_tag) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("shutdown", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":190
 * 
 *   def shutdown(self, CompletionQueue queue not None, tag):
 *     if queue.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError("queue must be live")
 *     elif not self.is_started:
 */
  if (unlikely(__pyx_v_queue->is_shutting_down)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":191
 *   def shutdown(self, CompletionQueue queue not None, tag):
 *     if queue.is_shutting_down:
 *       raise ValueError("queue must be live")             # <<<<<<<<<<<<<<
 *     elif not self.is_started:
 *       raise ValueError("the server hasn't started yet")
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(23, 191, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":190
 * 
 *   def shutdown(self, CompletionQueue queue not None, tag):
 *     if queue.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError("queue must be live")
 *     elif not self.is_started:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":192
 *     if queue.is_shutting_down:
 *       raise ValueError("queue must be live")
 *     elif not self.is_started:             # <<<<<<<<<<<<<<
 *       raise ValueError("the server hasn't started yet")
 *     elif self.is_shutting_down:
 */
  __pyx_t_2 = (!__pyx_v_self->is_started);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":193
 *       raise ValueError("queue must be live")
 *     elif not self.is_started:
 *       raise ValueError("the server hasn't started yet")             # <<<<<<<<<<<<<<
 *     elif self.is_shutting_down:
 *       return
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(23, 193, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":192
 *     if queue.is_shutting_down:
 *       raise ValueError("queue must be live")
 *     elif not self.is_started:             # <<<<<<<<<<<<<<
 *       raise ValueError("the server hasn't started yet")
 *     elif self.is_shutting_down:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":194
 *     elif not self.is_started:
 *       raise ValueError("the server hasn't started yet")
 *     elif self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       return
 *     elif queue not in self.registered_completion_queues:
 */
  if (__pyx_v_self->is_shutting_down) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":195
 *       raise ValueError("the server hasn't started yet")
 *     elif self.is_shutting_down:
 *       return             # <<<<<<<<<<<<<<
 *     elif queue not in self.registered_completion_queues:
 *       raise ValueError("expected registered completion queue")
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":194
 *     elif not self.is_started:
 *       raise ValueError("the server hasn't started yet")
 *     elif self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       return
 *     elif queue not in self.registered_completion_queues:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":196
 *     elif self.is_shutting_down:
 *       return
 *     elif queue not in self.registered_completion_queues:             # <<<<<<<<<<<<<<
 *       raise ValueError("expected registered completion queue")
 *     else:
 */
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_v_queue), __pyx_v_self->registered_completion_queues, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(23, 196, __pyx_L1_error)
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":197
 *       return
 *     elif queue not in self.registered_completion_queues:
 *       raise ValueError("expected registered completion queue")             # <<<<<<<<<<<<<<
 *     else:
 *       self._c_shutdown(queue, tag)
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(23, 197, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":196
 *     elif self.is_shutting_down:
 *       return
 *     elif queue not in self.registered_completion_queues:             # <<<<<<<<<<<<<<
 *       raise ValueError("expected registered completion queue")
 *     else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":199
 *       raise ValueError("expected registered completion queue")
 *     else:
 *       self._c_shutdown(queue, tag)             # <<<<<<<<<<<<<<
 * 
 *   cdef notify_shutdown_complete(self):
 */
  /*else*/ {
    __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self->__pyx_vtab)->_c_shutdown(__pyx_v_self, __pyx_v_queue, __pyx_v_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 199, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":189
 *           <cpython.PyObject *>server_shutdown_tag)
 * 
 *   def shutdown(self, CompletionQueue queue not None, tag):             # <<<<<<<<<<<<<<
 *     if queue.is_shutting_down:
 *       raise ValueError("queue must be live")
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":201
 *       self._c_shutdown(queue, tag)
 * 
 *   cdef notify_shutdown_complete(self):             # <<<<<<<<<<<<<<
 *     # called only after our server shutdown tag has emerged from a completion
 *     # queue.
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server_notify_shutdown_complete(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("notify_shutdown_complete", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":204
 *     # called only after our server shutdown tag has emerged from a completion
 *     # queue.
 *     self.is_shutdown = True             # <<<<<<<<<<<<<<
 * 
 *   def cancel_all_calls(self):
 */
  __pyx_v_self->is_shutdown = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":201
 *       self._c_shutdown(queue, tag)
 * 
 *   cdef notify_shutdown_complete(self):             # <<<<<<<<<<<<<<
 *     # called only after our server shutdown tag has emerged from a completion
 *     # queue.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":206
 *     self.is_shutdown = True
 * 
 *   def cancel_all_calls(self):             # <<<<<<<<<<<<<<
 *     if not self.is_shutting_down:
 *       raise UsageError("the server must be shutting down to cancel all calls")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_17cancel_all_calls(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_17cancel_all_calls = {"cancel_all_calls", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_17cancel_all_calls, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_17cancel_all_calls(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancel_all_calls (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("cancel_all_calls", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "cancel_all_calls", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_16cancel_all_calls(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_16cancel_all_calls(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cancel_all_calls", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":207
 * 
 *   def cancel_all_calls(self):
 *     if not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise UsageError("the server must be shutting down to cancel all calls")
 *     elif self.is_shutdown:
 */
  __pyx_t_1 = (!__pyx_v_self->is_shutting_down);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":208
 *   def cancel_all_calls(self):
 *     if not self.is_shutting_down:
 *       raise UsageError("the server must be shutting down to cancel all calls")             # <<<<<<<<<<<<<<
 *     elif self.is_shutdown:
 *       return
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_UsageError); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_s_the_server_must_be_shutting_down};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 208, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(23, 208, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":207
 * 
 *   def cancel_all_calls(self):
 *     if not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise UsageError("the server must be shutting down to cancel all calls")
 *     elif self.is_shutdown:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":209
 *     if not self.is_shutting_down:
 *       raise UsageError("the server must be shutting down to cancel all calls")
 *     elif self.is_shutdown:             # <<<<<<<<<<<<<<
 *       return
 *     else:
 */
  if (__pyx_v_self->is_shutdown) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":210
 *       raise UsageError("the server must be shutting down to cancel all calls")
 *     elif self.is_shutdown:
 *       return             # <<<<<<<<<<<<<<
 *     else:
 *       with nogil:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":209
 *     if not self.is_shutting_down:
 *       raise UsageError("the server must be shutting down to cancel all calls")
 *     elif self.is_shutdown:             # <<<<<<<<<<<<<<
 *       return
 *     else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":212
 *       return
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         grpc_server_cancel_all_calls(self.c_server)
 * 
 */
  /*else*/ {
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        #endif
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":213
 *     else:
 *       with nogil:
 *         grpc_server_cancel_all_calls(self.c_server)             # <<<<<<<<<<<<<<
 * 
 *   # TODO(https://github.com/grpc/grpc/issues/17515) Determine what, if any,
 */
          grpc_server_cancel_all_calls(__pyx_v_self->c_server);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":212
 *       return
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         grpc_server_cancel_all_calls(self.c_server)
 * 
 */
        /*finally:*/ {
          /*normal exit:*/{
            #ifdef WITH_THREAD
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L6;
          }
          __pyx_L6:;
        }
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":206
 *     self.is_shutdown = True
 * 
 *   def cancel_all_calls(self):             # <<<<<<<<<<<<<<
 *     if not self.is_shutting_down:
 *       raise UsageError("the server must be shutting down to cancel all calls")
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.cancel_all_calls", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":218
 *   # portion of this is safe to call from __dealloc__, and potentially remove
 *   # backup_shutdown_queue.
 *   def destroy(self):             # <<<<<<<<<<<<<<
 *     if self.c_server != NULL:
 *       if not self.is_started:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_19destroy(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_19destroy = {"destroy", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_19destroy, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_19destroy(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("destroy (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_18destroy(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_18destroy(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("destroy", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":219
 *   # backup_shutdown_queue.
 *   def destroy(self):
 *     if self.c_server != NULL:             # <<<<<<<<<<<<<<
 *       if not self.is_started:
 *         pass
 */
  __pyx_t_1 = (__pyx_v_self->c_server != NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":220
 *   def destroy(self):
 *     if self.c_server != NULL:
 *       if not self.is_started:             # <<<<<<<<<<<<<<
 *         pass
 *       elif self.is_shutdown:
 */
    __pyx_t_1 = (!__pyx_v_self->is_started);
    if (__pyx_t_1) {
      goto __pyx_L4;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":222
 *       if not self.is_started:
 *         pass
 *       elif self.is_shutdown:             # <<<<<<<<<<<<<<
 *         pass
 *       elif not self.is_shutting_down:
 */
    if (__pyx_v_self->is_shutdown) {
      goto __pyx_L4;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":224
 *       elif self.is_shutdown:
 *         pass
 *       elif not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *         if self.backup_shutdown_queue is None:
 *           raise InternalError('Server shutdown failed: no completion queue.')
 */
    __pyx_t_1 = (!__pyx_v_self->is_shutting_down);
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":225
 *         pass
 *       elif not self.is_shutting_down:
 *         if self.backup_shutdown_queue is None:             # <<<<<<<<<<<<<<
 *           raise InternalError('Server shutdown failed: no completion queue.')
 *         else:
 */
      __pyx_t_1 = (((PyObject *)__pyx_v_self->backup_shutdown_queue) == Py_None);
      if (unlikely(__pyx_t_1)) {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":226
 *       elif not self.is_shutting_down:
 *         if self.backup_shutdown_queue is None:
 *           raise InternalError('Server shutdown failed: no completion queue.')             # <<<<<<<<<<<<<<
 *         else:
 *           # the user didn't call shutdown - use our backup queue
 */
        __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_InternalError); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 226, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = NULL;
        __pyx_t_5 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
            __pyx_t_5 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_s_Server_shutdown_failed_no_comple};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 226, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
        __Pyx_Raise(__pyx_t_2, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __PYX_ERR(23, 226, __pyx_L1_error)

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":225
 *         pass
 *       elif not self.is_shutting_down:
 *         if self.backup_shutdown_queue is None:             # <<<<<<<<<<<<<<
 *           raise InternalError('Server shutdown failed: no completion queue.')
 *         else:
 */
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":229
 *         else:
 *           # the user didn't call shutdown - use our backup queue
 *           self._c_shutdown(self.backup_shutdown_queue, None)             # <<<<<<<<<<<<<<
 *           # and now we wait
 *           while not self.is_shutdown:
 */
      /*else*/ {
        __pyx_t_2 = ((PyObject *)__pyx_v_self->backup_shutdown_queue);
        __Pyx_INCREF(__pyx_t_2);
        __pyx_t_3 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self->__pyx_vtab)->_c_shutdown(__pyx_v_self, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_t_2), Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 229, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":231
 *           self._c_shutdown(self.backup_shutdown_queue, None)
 *           # and now we wait
 *           while not self.is_shutdown:             # <<<<<<<<<<<<<<
 *             self.backup_shutdown_queue.poll()
 *       else:
 */
        while (1) {
          __pyx_t_1 = (!__pyx_v_self->is_shutdown);
          if (!__pyx_t_1) break;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":232
 *           # and now we wait
 *           while not self.is_shutdown:
 *             self.backup_shutdown_queue.poll()             # <<<<<<<<<<<<<<
 *       else:
 *         # We're in the process of shutting down, but have not shutdown; can't do
 */
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->backup_shutdown_queue), __pyx_n_s_poll); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 232, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_4 = NULL;
          __pyx_t_5 = 0;
          #if CYTHON_UNPACK_METHODS
          if (likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
              __pyx_t_5 = 1;
            }
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
            __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 232, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":224
 *       elif self.is_shutdown:
 *         pass
 *       elif not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *         if self.backup_shutdown_queue is None:
 *           raise InternalError('Server shutdown failed: no completion queue.')
 */
      goto __pyx_L4;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":236
 *         # We're in the process of shutting down, but have not shutdown; can't do
 *         # much but repeatedly release the GIL and wait
 *         while not self.is_shutdown:             # <<<<<<<<<<<<<<
 *           time.sleep(0)
 *       with nogil:
 */
    /*else*/ {
      while (1) {
        __pyx_t_1 = (!__pyx_v_self->is_shutdown);
        if (!__pyx_t_1) break;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":237
 *         # much but repeatedly release the GIL and wait
 *         while not self.is_shutdown:
 *           time.sleep(0)             # <<<<<<<<<<<<<<
 *       with nogil:
 *         grpc_server_destroy(self.c_server)
 */
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sleep); if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = NULL;
        __pyx_t_5 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_2)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_2);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_5 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_int_0};
          __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 237, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
    }
    __pyx_L4:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":238
 *         while not self.is_shutdown:
 *           time.sleep(0)
 *       with nogil:             # <<<<<<<<<<<<<<
 *         grpc_server_destroy(self.c_server)
 *         self.c_server = NULL
 */
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        #endif
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":239
 *           time.sleep(0)
 *       with nogil:
 *         grpc_server_destroy(self.c_server)             # <<<<<<<<<<<<<<
 *         self.c_server = NULL
 * 
 */
          grpc_server_destroy(__pyx_v_self->c_server);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":240
 *       with nogil:
 *         grpc_server_destroy(self.c_server)
 *         self.c_server = NULL             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
 */
          __pyx_v_self->c_server = NULL;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":238
 *         while not self.is_shutdown:
 *           time.sleep(0)
 *       with nogil:             # <<<<<<<<<<<<<<
 *         grpc_server_destroy(self.c_server)
 *         self.c_server = NULL
 */
        /*finally:*/ {
          /*normal exit:*/{
            #ifdef WITH_THREAD
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L12;
          }
          __pyx_L12:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":219
 *   # backup_shutdown_queue.
 *   def destroy(self):
 *     if self.c_server != NULL:             # <<<<<<<<<<<<<<
 *       if not self.is_started:
 *         pass
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":218
 *   # portion of this is safe to call from __dealloc__, and potentially remove
 *   # backup_shutdown_queue.
 *   def destroy(self):             # <<<<<<<<<<<<<<
 *     if self.c_server != NULL:
 *       if not self.is_started:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":242
 *         self.c_server = NULL
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self.c_server == NULL:
 *       grpc_shutdown()
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_6Server_21__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_6Server_21__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_6Server_20__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_6Server_20__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":243
 * 
 *   def __dealloc__(self):
 *     if self.c_server == NULL:             # <<<<<<<<<<<<<<
 *       grpc_shutdown()
 */
  __pyx_t_1 = (__pyx_v_self->c_server == NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":244
 *   def __dealloc__(self):
 *     if self.c_server == NULL:
 *       grpc_shutdown()             # <<<<<<<<<<<<<<
 */
    grpc_shutdown();

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":243
 * 
 *   def __dealloc__(self):
 *     if self.c_server == NULL:             # <<<<<<<<<<<<<<
 *       grpc_shutdown()
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":242
 *         self.c_server = NULL
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self.c_server == NULL:
 *       grpc_shutdown()
 */

  /* function exit code */
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_23__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_23__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_23__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_23__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_22__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_22__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_25__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_25__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_25__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_25__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_24__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_24__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":18
 * cdef class _Tag:
 * 
 *   cdef BaseEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
 */

static struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *__pyx_f_4grpc_7_cython_6cygrpc_4_Tag_event(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v_self, CYTHON_UNUSED grpc_event __pyx_v_c_event) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("event", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":19
 * 
 *   cdef BaseEvent event(self, grpc_event c_event):
 *     raise NotImplementedError()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(24, 19, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":18
 * cdef class _Tag:
 * 
 *   cdef BaseEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._Tag.event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4_Tag_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4_Tag___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_Tag___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __Pyx_INCREF(__pyx_empty_tuple);
  __pyx_v_state = __pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict)) __PYX_ERR(10, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle__Tag); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_238750788)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle__Tag__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle__Tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_238750788)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._Tag.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle__Tag__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4_Tag_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._Tag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4_Tag_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_Tag_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle__Tag__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle__Tag__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle__Tag__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._Tag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":24
 * cdef class _ConnectivityTag(_Tag):
 * 
 *   def __cinit__(self, user_tag):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 * 
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_user_tag = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_user_tag,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_user_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(24, 24, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(24, 24, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_user_tag = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(24, 24, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConnectivityTag.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)__pyx_v_self), __pyx_v_user_tag);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, PyObject *__pyx_v_user_tag) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":25
 * 
 *   def __cinit__(self, user_tag):
 *     self._user_tag = user_tag             # <<<<<<<<<<<<<<
 * 
 *   cdef ConnectivityEvent event(self, grpc_event c_event):
 */
  __Pyx_INCREF(__pyx_v_user_tag);
  __Pyx_GIVEREF(__pyx_v_user_tag);
  __Pyx_GOTREF(__pyx_v_self->_user_tag);
  __Pyx_DECREF(__pyx_v_self->_user_tag);
  __pyx_v_self->_user_tag = __pyx_v_user_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":24
 * cdef class _ConnectivityTag(_Tag):
 * 
 *   def __cinit__(self, user_tag):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":27
 *     self._user_tag = user_tag
 * 
 *   cdef ConnectivityEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     return ConnectivityEvent(c_event.type, c_event.success, self._user_tag)
 * 
 */

struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_f_4grpc_7_cython_6cygrpc_16_ConnectivityTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("event", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":28
 * 
 *   cdef ConnectivityEvent event(self, grpc_event c_event):
 *     return ConnectivityEvent(c_event.type, c_event.success, self._user_tag)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_completion_type(__pyx_v_c_event.type); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_c_event.success); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(24, 28, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(24, 28, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_user_tag);
  __Pyx_GIVEREF(__pyx_v_self->_user_tag);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->_user_tag)) __PYX_ERR(24, 28, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":27
 *     self._user_tag = user_tag
 * 
 *   cdef ConnectivityEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     return ConnectivityEvent(c_event.type, c_event.success, self._user_tag)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConnectivityTag.event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_f_4grpc_7_cython_6cygrpc_16_ConnectivityTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  return __pyx_f_4grpc_7_cython_6cygrpc_16_ConnectivityTag_event(__pyx_v_self, __pyx_v_c_event);
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":23
 * cdef class _ConnectivityTag(_Tag):
 * 
 *   cdef readonly object _user_tag             # <<<<<<<<<<<<<<
 * 
 *   cdef ConnectivityEvent event(self, grpc_event c_event)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_9_user_tag_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_9_user_tag_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_9_user_tag___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_9_user_tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_user_tag);
  __pyx_r = __pyx_v_self->_user_tag;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ConnectivityTag_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConnectivityTag.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ConnectivityTag_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConnectivityTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConnectivityTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":33
 * cdef class _RequestCallTag(_Tag):
 * 
 *   def __cinit__(self, user_tag):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 *     self.call = None
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_user_tag = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_user_tag,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_user_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(24, 33, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(24, 33, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_user_tag = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(24, 33, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._RequestCallTag.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_v_self), __pyx_v_user_tag);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, PyObject *__pyx_v_user_tag) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":34
 * 
 *   def __cinit__(self, user_tag):
 *     self._user_tag = user_tag             # <<<<<<<<<<<<<<
 *     self.call = None
 *     self.call_details = None
 */
  __Pyx_INCREF(__pyx_v_user_tag);
  __Pyx_GIVEREF(__pyx_v_user_tag);
  __Pyx_GOTREF(__pyx_v_self->_user_tag);
  __Pyx_DECREF(__pyx_v_self->_user_tag);
  __pyx_v_self->_user_tag = __pyx_v_user_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":35
 *   def __cinit__(self, user_tag):
 *     self._user_tag = user_tag
 *     self.call = None             # <<<<<<<<<<<<<<
 *     self.call_details = None
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->call);
  __Pyx_DECREF((PyObject *)__pyx_v_self->call);
  __pyx_v_self->call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)Py_None);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":36
 *     self._user_tag = user_tag
 *     self.call = None
 *     self.call_details = None             # <<<<<<<<<<<<<<
 * 
 *   cdef void prepare(self) except *:
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->call_details);
  __Pyx_DECREF((PyObject *)__pyx_v_self->call_details);
  __pyx_v_self->call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)Py_None);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":33
 * cdef class _RequestCallTag(_Tag):
 * 
 *   def __cinit__(self, user_tag):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 *     self.call = None
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":38
 *     self.call_details = None
 * 
 *   cdef void prepare(self) except *:             # <<<<<<<<<<<<<<
 *     self.call = Call()
 *     self.call_details = CallDetails()
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_prepare(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("prepare", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":39
 * 
 *   cdef void prepare(self) except *:
 *     self.call = Call()             # <<<<<<<<<<<<<<
 *     self.call_details = CallDetails()
 *     grpc_metadata_array_init(&self.c_invocation_metadata)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Call)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->call);
  __Pyx_DECREF((PyObject *)__pyx_v_self->call);
  __pyx_v_self->call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":40
 *   cdef void prepare(self) except *:
 *     self.call = Call()
 *     self.call_details = CallDetails()             # <<<<<<<<<<<<<<
 *     grpc_metadata_array_init(&self.c_invocation_metadata)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->call_details);
  __Pyx_DECREF((PyObject *)__pyx_v_self->call_details);
  __pyx_v_self->call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":41
 *     self.call = Call()
 *     self.call_details = CallDetails()
 *     grpc_metadata_array_init(&self.c_invocation_metadata)             # <<<<<<<<<<<<<<
 * 
 *   cdef RequestCallEvent event(self, grpc_event c_event):
 */
  grpc_metadata_array_init((&__pyx_v_self->c_invocation_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":38
 *     self.call_details = None
 * 
 *   cdef void prepare(self) except *:             # <<<<<<<<<<<<<<
 *     self.call = Call()
 *     self.call_details = CallDetails()
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._RequestCallTag.prepare", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":43
 *     grpc_metadata_array_init(&self.c_invocation_metadata)
 * 
 *   cdef RequestCallEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     cdef tuple invocation_metadata = _metadata(&self.c_invocation_metadata)
 *     grpc_metadata_array_destroy(&self.c_invocation_metadata)
 */

struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  PyObject *__pyx_v_invocation_metadata = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("event", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":44
 * 
 *   cdef RequestCallEvent event(self, grpc_event c_event):
 *     cdef tuple invocation_metadata = _metadata(&self.c_invocation_metadata)             # <<<<<<<<<<<<<<
 *     grpc_metadata_array_destroy(&self.c_invocation_metadata)
 *     return RequestCallEvent(
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__metadata((&__pyx_v_self->c_invocation_metadata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_invocation_metadata = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":45
 *   cdef RequestCallEvent event(self, grpc_event c_event):
 *     cdef tuple invocation_metadata = _metadata(&self.c_invocation_metadata)
 *     grpc_metadata_array_destroy(&self.c_invocation_metadata)             # <<<<<<<<<<<<<<
 *     return RequestCallEvent(
 *         c_event.type, c_event.success, self._user_tag, self.call,
 */
  grpc_metadata_array_destroy((&__pyx_v_self->c_invocation_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":46
 *     cdef tuple invocation_metadata = _metadata(&self.c_invocation_metadata)
 *     grpc_metadata_array_destroy(&self.c_invocation_metadata)
 *     return RequestCallEvent(             # <<<<<<<<<<<<<<
 *         c_event.type, c_event.success, self._user_tag, self.call,
 *         self.call_details, invocation_metadata)
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":47
 *     grpc_metadata_array_destroy(&self.c_invocation_metadata)
 *     return RequestCallEvent(
 *         c_event.type, c_event.success, self._user_tag, self.call,             # <<<<<<<<<<<<<<
 *         self.call_details, invocation_metadata)
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_grpc_completion_type(__pyx_v_c_event.type); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_c_event.success); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":46
 *     cdef tuple invocation_metadata = _metadata(&self.c_invocation_metadata)
 *     grpc_metadata_array_destroy(&self.c_invocation_metadata)
 *     return RequestCallEvent(             # <<<<<<<<<<<<<<
 *         c_event.type, c_event.success, self._user_tag, self.call,
 *         self.call_details, invocation_metadata)
 */
  __pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(24, 46, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(24, 46, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_user_tag);
  __Pyx_GIVEREF(__pyx_v_self->_user_tag);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->_user_tag)) __PYX_ERR(24, 46, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->call);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->call);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, ((PyObject *)__pyx_v_self->call))) __PYX_ERR(24, 46, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->call_details);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->call_details);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 4, ((PyObject *)__pyx_v_self->call_details))) __PYX_ERR(24, 46, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_invocation_metadata);
  __Pyx_GIVEREF(__pyx_v_invocation_metadata);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_invocation_metadata)) __PYX_ERR(24, 46, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":43
 *     grpc_metadata_array_init(&self.c_invocation_metadata)
 * 
 *   cdef RequestCallEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     cdef tuple invocation_metadata = _metadata(&self.c_invocation_metadata)
 *     grpc_metadata_array_destroy(&self.c_invocation_metadata)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._RequestCallTag.event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_invocation_metadata);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  return __pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_event(__pyx_v_self, __pyx_v_c_event);
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":30
 * cdef class _RequestCallTag(_Tag):
 * 
 *   cdef readonly object _user_tag             # <<<<<<<<<<<<<<
 *   cdef Call call
 *   cdef CallDetails call_details
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_9_user_tag_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_9_user_tag_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_9_user_tag___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_9_user_tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_user_tag);
  __pyx_r = __pyx_v_self->_user_tag;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15_RequestCallTag_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._RequestCallTag.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15_RequestCallTag_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._RequestCallTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._RequestCallTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":53
 * cdef class _BatchOperationTag:
 * 
 *   def __cinit__(self, user_tag, operations, call):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 *     self._operations = operations
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_user_tag = 0;
  PyObject *__pyx_v_operations = 0;
  PyObject *__pyx_v_call = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_user_tag,&__pyx_n_s_operations,&__pyx_n_s_call,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_user_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(24, 53, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_operations)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(24, 53, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 1); __PYX_ERR(24, 53, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(24, 53, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 2); __PYX_ERR(24, 53, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(24, 53, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
    }
    __pyx_v_user_tag = values[0];
    __pyx_v_operations = values[1];
    __pyx_v_call = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(24, 53, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._BatchOperationTag.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_self), __pyx_v_user_tag, __pyx_v_operations, __pyx_v_call);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, PyObject *__pyx_v_user_tag, PyObject *__pyx_v_operations, PyObject *__pyx_v_call) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":54
 * 
 *   def __cinit__(self, user_tag, operations, call):
 *     self._user_tag = user_tag             # <<<<<<<<<<<<<<
 *     self._operations = operations
 *     self._retained_call = call
 */
  __Pyx_INCREF(__pyx_v_user_tag);
  __Pyx_GIVEREF(__pyx_v_user_tag);
  __Pyx_GOTREF(__pyx_v_self->_user_tag);
  __Pyx_DECREF(__pyx_v_self->_user_tag);
  __pyx_v_self->_user_tag = __pyx_v_user_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":55
 *   def __cinit__(self, user_tag, operations, call):
 *     self._user_tag = user_tag
 *     self._operations = operations             # <<<<<<<<<<<<<<
 *     self._retained_call = call
 * 
 */
  __Pyx_INCREF(__pyx_v_operations);
  __Pyx_GIVEREF(__pyx_v_operations);
  __Pyx_GOTREF(__pyx_v_self->_operations);
  __Pyx_DECREF(__pyx_v_self->_operations);
  __pyx_v_self->_operations = __pyx_v_operations;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":56
 *     self._user_tag = user_tag
 *     self._operations = operations
 *     self._retained_call = call             # <<<<<<<<<<<<<<
 * 
 *   cdef void prepare(self) except *:
 */
  __Pyx_INCREF(__pyx_v_call);
  __Pyx_GIVEREF(__pyx_v_call);
  __Pyx_GOTREF(__pyx_v_self->_retained_call);
  __Pyx_DECREF(__pyx_v_self->_retained_call);
  __pyx_v_self->_retained_call = __pyx_v_call;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":53
 * cdef class _BatchOperationTag:
 * 
 *   def __cinit__(self, user_tag, operations, call):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 *     self._operations = operations
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":58
 *     self._retained_call = call
 * 
 *   cdef void prepare(self) except *:             # <<<<<<<<<<<<<<
 *     cdef Operation operation
 *     self.c_nops = 0 if self._operations is None else len(self._operations)
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_prepare(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_operation = 0;
  PyObject *__pyx_v_index = NULL;
  __Pyx_RefNannyDeclarations
  size_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  grpc_op __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("prepare", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":60
 *   cdef void prepare(self) except *:
 *     cdef Operation operation
 *     self.c_nops = 0 if self._operations is None else len(self._operations)             # <<<<<<<<<<<<<<
 *     if 0 < self.c_nops:
 *       self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)
 */
  __pyx_t_2 = (__pyx_v_self->_operations == Py_None);
  if (__pyx_t_2) {
    __pyx_t_1 = 0;
  } else {
    __pyx_t_3 = __pyx_v_self->_operations;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(24, 60, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_1 = __pyx_t_4;
  }
  __pyx_v_self->c_nops = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":61
 *     cdef Operation operation
 *     self.c_nops = 0 if self._operations is None else len(self._operations)
 *     if 0 < self.c_nops:             # <<<<<<<<<<<<<<
 *       self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)
 *       for index, operation in enumerate(self._operations):
 */
  __pyx_t_2 = (0 < __pyx_v_self->c_nops);
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":62
 *     self.c_nops = 0 if self._operations is None else len(self._operations)
 *     if 0 < self.c_nops:
 *       self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)             # <<<<<<<<<<<<<<
 *       for index, operation in enumerate(self._operations):
 *         operation.c()
 */
    __pyx_v_self->c_ops = ((grpc_op *)gpr_malloc(((sizeof(grpc_op)) * __pyx_v_self->c_nops)));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":63
 *     if 0 < self.c_nops:
 *       self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)
 *       for index, operation in enumerate(self._operations):             # <<<<<<<<<<<<<<
 *         operation.c()
 *         self.c_ops[index] = operation.c_op
 */
    __Pyx_INCREF(__pyx_int_0);
    __pyx_t_3 = __pyx_int_0;
    if (likely(PyList_CheckExact(__pyx_v_self->_operations)) || PyTuple_CheckExact(__pyx_v_self->_operations)) {
      __pyx_t_5 = __pyx_v_self->_operations; __Pyx_INCREF(__pyx_t_5);
      __pyx_t_4 = 0;
      __pyx_t_6 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_self->_operations); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 63, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 63, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_6)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_MACROS
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(24, 63, __pyx_L1_error)
            #endif
            if (__pyx_t_4 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(24, 63, __pyx_L1_error)
          #else
          __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 63, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_MACROS
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(24, 63, __pyx_L1_error)
            #endif
            if (__pyx_t_4 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(24, 63, __pyx_L1_error)
          #else
          __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 63, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        }
      } else {
        __pyx_t_7 = __pyx_t_6(__pyx_t_5);
        if (unlikely(!__pyx_t_7)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(24, 63, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_7);
      }
      if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4grpc_7_cython_6cygrpc_Operation))))) __PYX_ERR(24, 63, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_operation, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_t_7));
      __pyx_t_7 = 0;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_3);
      __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 63, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3);
      __pyx_t_3 = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":64
 *       self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)
 *       for index, operation in enumerate(self._operations):
 *         operation.c()             # <<<<<<<<<<<<<<
 *         self.c_ops[index] = operation.c_op
 * 
 */
      ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation *)__pyx_v_operation->__pyx_vtab)->c(__pyx_v_operation); if (unlikely(PyErr_Occurred())) __PYX_ERR(24, 64, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":65
 *       for index, operation in enumerate(self._operations):
 *         operation.c()
 *         self.c_ops[index] = operation.c_op             # <<<<<<<<<<<<<<
 * 
 *   cdef BatchOperationEvent event(self, grpc_event c_event):
 */
      __pyx_t_8 = __pyx_v_operation->c_op;
      __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(24, 65, __pyx_L1_error)
      (__pyx_v_self->c_ops[__pyx_t_9]) = __pyx_t_8;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":63
 *     if 0 < self.c_nops:
 *       self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)
 *       for index, operation in enumerate(self._operations):             # <<<<<<<<<<<<<<
 *         operation.c()
 *         self.c_ops[index] = operation.c_op
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":61
 *     cdef Operation operation
 *     self.c_nops = 0 if self._operations is None else len(self._operations)
 *     if 0 < self.c_nops:             # <<<<<<<<<<<<<<
 *       self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)
 *       for index, operation in enumerate(self._operations):
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":58
 *     self._retained_call = call
 * 
 *   cdef void prepare(self) except *:             # <<<<<<<<<<<<<<
 *     cdef Operation operation
 *     self.c_nops = 0 if self._operations is None else len(self._operations)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc._BatchOperationTag.prepare", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_operation);
  __Pyx_XDECREF(__pyx_v_index);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":67
 *         self.c_ops[index] = operation.c_op
 * 
 *   cdef BatchOperationEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     cdef Operation operation
 *     if 0 < self.c_nops:
 */

struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_operation = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("event", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":69
 *   cdef BatchOperationEvent event(self, grpc_event c_event):
 *     cdef Operation operation
 *     if 0 < self.c_nops:             # <<<<<<<<<<<<<<
 *       for operation in self._operations:
 *         operation.un_c()
 */
  __pyx_t_1 = (0 < __pyx_v_self->c_nops);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":70
 *     cdef Operation operation
 *     if 0 < self.c_nops:
 *       for operation in self._operations:             # <<<<<<<<<<<<<<
 *         operation.un_c()
 *       gpr_free(self.c_ops)
 */
    if (likely(PyList_CheckExact(__pyx_v_self->_operations)) || PyTuple_CheckExact(__pyx_v_self->_operations)) {
      __pyx_t_2 = __pyx_v_self->_operations; __Pyx_INCREF(__pyx_t_2);
      __pyx_t_3 = 0;
      __pyx_t_4 = NULL;
    } else {
      __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_self->_operations); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 70, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_4)) {
        if (likely(PyList_CheckExact(__pyx_t_2))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
            #if !CYTHON_ASSUME_SAFE_MACROS
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(24, 70, __pyx_L1_error)
            #endif
            if (__pyx_t_3 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(24, 70, __pyx_L1_error)
          #else
          __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
            #if !CYTHON_ASSUME_SAFE_MACROS
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(24, 70, __pyx_L1_error)
            #endif
            if (__pyx_t_3 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(24, 70, __pyx_L1_error)
          #else
          __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_4(__pyx_t_2);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(24, 70, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4grpc_7_cython_6cygrpc_Operation))))) __PYX_ERR(24, 70, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_operation, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_t_5));
      __pyx_t_5 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":71
 *     if 0 < self.c_nops:
 *       for operation in self._operations:
 *         operation.un_c()             # <<<<<<<<<<<<<<
 *       gpr_free(self.c_ops)
 *       return BatchOperationEvent(
 */
      ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation *)__pyx_v_operation->__pyx_vtab)->un_c(__pyx_v_operation); if (unlikely(PyErr_Occurred())) __PYX_ERR(24, 71, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":70
 *     cdef Operation operation
 *     if 0 < self.c_nops:
 *       for operation in self._operations:             # <<<<<<<<<<<<<<
 *         operation.un_c()
 *       gpr_free(self.c_ops)
 */
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":72
 *       for operation in self._operations:
 *         operation.un_c()
 *       gpr_free(self.c_ops)             # <<<<<<<<<<<<<<
 *       return BatchOperationEvent(
 *           c_event.type, c_event.success, self._user_tag, self._operations)
 */
    gpr_free(__pyx_v_self->c_ops);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":73
 *         operation.un_c()
 *       gpr_free(self.c_ops)
 *       return BatchOperationEvent(             # <<<<<<<<<<<<<<
 *           c_event.type, c_event.success, self._user_tag, self._operations)
 *     else:
 */
    __Pyx_XDECREF((PyObject *)__pyx_r);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":74
 *       gpr_free(self.c_ops)
 *       return BatchOperationEvent(
 *           c_event.type, c_event.success, self._user_tag, self._operations)             # <<<<<<<<<<<<<<
 *     else:
 *       return BatchOperationEvent(
 */
    __pyx_t_2 = __Pyx_PyInt_From_grpc_completion_type(__pyx_v_c_event.type); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_c_event.success); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":73
 *         operation.un_c()
 *       gpr_free(self.c_ops)
 *       return BatchOperationEvent(             # <<<<<<<<<<<<<<
 *           c_event.type, c_event.success, self._user_tag, self._operations)
 *     else:
 */
    __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2)) __PYX_ERR(24, 73, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5)) __PYX_ERR(24, 73, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_self->_user_tag);
    __Pyx_GIVEREF(__pyx_v_self->_user_tag);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_self->_user_tag)) __PYX_ERR(24, 73, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_self->_operations);
    __Pyx_GIVEREF(__pyx_v_self->_operations);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_v_self->_operations)) __PYX_ERR(24, 73, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent), __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_t_5);
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":69
 *   cdef BatchOperationEvent event(self, grpc_event c_event):
 *     cdef Operation operation
 *     if 0 < self.c_nops:             # <<<<<<<<<<<<<<
 *       for operation in self._operations:
 *         operation.un_c()
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":76
 *           c_event.type, c_event.success, self._user_tag, self._operations)
 *     else:
 *       return BatchOperationEvent(             # <<<<<<<<<<<<<<
 *           c_event.type, c_event.success, self._user_tag, ())
 * 
 */
  /*else*/ {
    __Pyx_XDECREF((PyObject *)__pyx_r);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":77
 *     else:
 *       return BatchOperationEvent(
 *           c_event.type, c_event.success, self._user_tag, ())             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_5 = __Pyx_PyInt_From_grpc_completion_type(__pyx_v_c_event.type); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_c_event.success); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":76
 *           c_event.type, c_event.success, self._user_tag, self._operations)
 *     else:
 *       return BatchOperationEvent(             # <<<<<<<<<<<<<<
 *           c_event.type, c_event.success, self._user_tag, ())
 * 
 */
    __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5)) __PYX_ERR(24, 76, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6)) __PYX_ERR(24, 76, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_self->_user_tag);
    __Pyx_GIVEREF(__pyx_v_self->_user_tag);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->_user_tag)) __PYX_ERR(24, 76, __pyx_L1_error);
    __Pyx_INCREF(__pyx_empty_tuple);
    __Pyx_GIVEREF(__pyx_empty_tuple);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_empty_tuple)) __PYX_ERR(24, 76, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent), __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":67
 *         self.c_ops[index] = operation.c_op
 * 
 *   cdef BatchOperationEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     cdef Operation operation
 *     if 0 < self.c_nops:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc._BatchOperationTag.event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_operation);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  return __pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_event(__pyx_v_self, __pyx_v_c_event);
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":42
 * 
 *   cdef object _user_tag
 *   cdef readonly object _operations             # <<<<<<<<<<<<<<
 *   cdef readonly object _retained_call
 *   cdef grpc_op *c_ops
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_11_operations_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_11_operations_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_11_operations___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_11_operations___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_operations);
  __pyx_r = __pyx_v_self->_operations;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":43
 *   cdef object _user_tag
 *   cdef readonly object _operations
 *   cdef readonly object _retained_call             # <<<<<<<<<<<<<<
 *   cdef grpc_op *c_ops
 *   cdef size_t c_nops
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_14_retained_call_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_14_retained_call_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_14_retained_call___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_14_retained_call___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_retained_call);
  __pyx_r = __pyx_v_self->_retained_call;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_BatchOperationTag_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._BatchOperationTag.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_BatchOperationTag_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._BatchOperationTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._BatchOperationTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":82
 * cdef class _ServerShutdownTag(_Tag):
 * 
 *   def __cinit__(self, user_tag, shutting_down_server):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 *     self._shutting_down_server = shutting_down_server
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_user_tag = 0;
  PyObject *__pyx_v_shutting_down_server = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_user_tag,&__pyx_n_s_shutting_down_server,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_user_tag)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(24, 82, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_shutting_down_server)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(24, 82, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(24, 82, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(24, 82, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_user_tag = values[0];
    __pyx_v_shutting_down_server = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(24, 82, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServerShutdownTag.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)__pyx_v_self), __pyx_v_user_tag, __pyx_v_shutting_down_server);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, PyObject *__pyx_v_user_tag, PyObject *__pyx_v_shutting_down_server) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":83
 * 
 *   def __cinit__(self, user_tag, shutting_down_server):
 *     self._user_tag = user_tag             # <<<<<<<<<<<<<<
 *     self._shutting_down_server = shutting_down_server
 * 
 */
  __Pyx_INCREF(__pyx_v_user_tag);
  __Pyx_GIVEREF(__pyx_v_user_tag);
  __Pyx_GOTREF(__pyx_v_self->_user_tag);
  __Pyx_DECREF(__pyx_v_self->_user_tag);
  __pyx_v_self->_user_tag = __pyx_v_user_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":84
 *   def __cinit__(self, user_tag, shutting_down_server):
 *     self._user_tag = user_tag
 *     self._shutting_down_server = shutting_down_server             # <<<<<<<<<<<<<<
 * 
 *   cdef ServerShutdownEvent event(self, grpc_event c_event):
 */
  if (!(likely(((__pyx_v_shutting_down_server) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_shutting_down_server, __pyx_ptype_4grpc_7_cython_6cygrpc_Server))))) __PYX_ERR(24, 84, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_shutting_down_server;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_shutting_down_server);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_shutting_down_server);
  __pyx_v_self->_shutting_down_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":82
 * cdef class _ServerShutdownTag(_Tag):
 * 
 *   def __cinit__(self, user_tag, shutting_down_server):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 *     self._shutting_down_server = shutting_down_server
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServerShutdownTag.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":86
 *     self._shutting_down_server = shutting_down_server
 * 
 *   cdef ServerShutdownEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     self._shutting_down_server.notify_shutdown_complete()
 *     return ServerShutdownEvent(c_event.type, c_event.success, self._user_tag)
 */

struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("event", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":87
 * 
 *   cdef ServerShutdownEvent event(self, grpc_event c_event):
 *     self._shutting_down_server.notify_shutdown_complete()             # <<<<<<<<<<<<<<
 *     return ServerShutdownEvent(c_event.type, c_event.success, self._user_tag)
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self->_shutting_down_server->__pyx_vtab)->notify_shutdown_complete(__pyx_v_self->_shutting_down_server); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":88
 *   cdef ServerShutdownEvent event(self, grpc_event c_event):
 *     self._shutting_down_server.notify_shutdown_complete()
 *     return ServerShutdownEvent(c_event.type, c_event.success, self._user_tag)             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_completion_type(__pyx_v_c_event.type); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_c_event.success); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(24, 88, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(24, 88, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_user_tag);
  __Pyx_GIVEREF(__pyx_v_self->_user_tag);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->_user_tag)) __PYX_ERR(24, 88, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":86
 *     self._shutting_down_server = shutting_down_server
 * 
 *   cdef ServerShutdownEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     self._shutting_down_server.notify_shutdown_complete()
 *     return ServerShutdownEvent(c_event.type, c_event.success, self._user_tag)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServerShutdownTag.event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  return __pyx_f_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_event(__pyx_v_self, __pyx_v_c_event);
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":53
 * cdef class _ServerShutdownTag(_Tag):
 * 
 *   cdef readonly object _user_tag             # <<<<<<<<<<<<<<
 *   # This allows CompletionQueue to notify the Python Server object that the
 *   # underlying GRPC core server has shutdown
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_9_user_tag_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_9_user_tag_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_9_user_tag___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_9_user_tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_user_tag);
  __pyx_r = __pyx_v_self->_user_tag;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":56
 *   # This allows CompletionQueue to notify the Python Server object that the
 *   # underlying GRPC core server has shutdown
 *   cdef readonly Server _shutting_down_server             # <<<<<<<<<<<<<<
 * 
 *   cdef ServerShutdownEvent event(self, grpc_event c_event)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_21_shutting_down_server_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_21_shutting_down_server_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_21_shutting_down_server___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_21_shutting_down_server___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_shutting_down_server);
  __pyx_r = ((PyObject *)__pyx_v_self->_shutting_down_server);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServerShutdownTag.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServerShutdownTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServerShutdownTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":16
 * 
 * 
 * cdef gpr_timespec _timespec_from_time(object time) except *:             # <<<<<<<<<<<<<<
 *   if time is None:
 *     return gpr_inf_future(GPR_CLOCK_REALTIME)
 */

static gpr_timespec __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(PyObject *__pyx_v_time) {
  gpr_timespec __pyx_r;
  int __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":17
 * 
 * cdef gpr_timespec _timespec_from_time(object time) except *:
 *   if time is None:             # <<<<<<<<<<<<<<
 *     return gpr_inf_future(GPR_CLOCK_REALTIME)
 *   else:
 */
  __pyx_t_1 = (__pyx_v_time == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":18
 * cdef gpr_timespec _timespec_from_time(object time) except *:
 *   if time is None:
 *     return gpr_inf_future(GPR_CLOCK_REALTIME)             # <<<<<<<<<<<<<<
 *   else:
 *     return gpr_time_from_nanos(
 */
    __pyx_r = gpr_inf_future(GPR_CLOCK_REALTIME);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":17
 * 
 * cdef gpr_timespec _timespec_from_time(object time) except *:
 *   if time is None:             # <<<<<<<<<<<<<<
 *     return gpr_inf_future(GPR_CLOCK_REALTIME)
 *   else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":20
 *     return gpr_inf_future(GPR_CLOCK_REALTIME)
 *   else:
 *     return gpr_time_from_nanos(             # <<<<<<<<<<<<<<
 *       <int64_t>(<double>time * GPR_NS_PER_SEC),
 *       GPR_CLOCK_REALTIME,
 */
  /*else*/ {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":21
 *   else:
 *     return gpr_time_from_nanos(
 *       <int64_t>(<double>time * GPR_NS_PER_SEC),             # <<<<<<<<<<<<<<
 *       GPR_CLOCK_REALTIME,
 *     )
 */
    __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_time); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(25, 21, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":20
 *     return gpr_inf_future(GPR_CLOCK_REALTIME)
 *   else:
 *     return gpr_time_from_nanos(             # <<<<<<<<<<<<<<
 *       <int64_t>(<double>time * GPR_NS_PER_SEC),
 *       GPR_CLOCK_REALTIME,
 */
    __pyx_r = gpr_time_from_nanos(((__pyx_t_4grpc_7_cython_6cygrpc_int64_t)(((double)__pyx_t_2) * GPR_NS_PER_SEC)), GPR_CLOCK_REALTIME);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":16
 * 
 * 
 * cdef gpr_timespec _timespec_from_time(object time) except *:             # <<<<<<<<<<<<<<
 *   if time is None:
 *     return gpr_inf_future(GPR_CLOCK_REALTIME)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._timespec_from_time", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":26
 * 
 * 
 * cdef double _time_from_timespec(gpr_timespec timespec) except *:             # <<<<<<<<<<<<<<
 *   cdef gpr_timespec real_timespec = gpr_convert_clock_type(
 *       timespec, GPR_CLOCK_REALTIME)
 */

static double __pyx_f_4grpc_7_cython_6cygrpc__time_from_timespec(gpr_timespec __pyx_v_timespec) {
  gpr_timespec __pyx_v_real_timespec;
  double __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":27
 * 
 * cdef double _time_from_timespec(gpr_timespec timespec) except *:
 *   cdef gpr_timespec real_timespec = gpr_convert_clock_type(             # <<<<<<<<<<<<<<
 *       timespec, GPR_CLOCK_REALTIME)
 *   return gpr_timespec_to_micros(real_timespec) / GPR_US_PER_SEC
 */
  __pyx_v_real_timespec = gpr_convert_clock_type(__pyx_v_timespec, GPR_CLOCK_REALTIME);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":29
 *   cdef gpr_timespec real_timespec = gpr_convert_clock_type(
 *       timespec, GPR_CLOCK_REALTIME)
 *   return gpr_timespec_to_micros(real_timespec) / GPR_US_PER_SEC             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = gpr_timespec_to_micros(__pyx_v_real_timespec);
  if (unlikely(GPR_US_PER_SEC == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(25, 29, __pyx_L1_error)
  }
  __pyx_r = (__pyx_t_1 / ((double)GPR_US_PER_SEC));
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":26
 * 
 * 
 * cdef double _time_from_timespec(gpr_timespec timespec) except *:             # <<<<<<<<<<<<<<
 *   cdef gpr_timespec real_timespec = gpr_convert_clock_type(
 *       timespec, GPR_CLOCK_REALTIME)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._time_from_timespec", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":16
 * 
 * # TODO(https://github.com/grpc/grpc/issues/15662): Reform this.
 * cdef void* _copy_pointer(void* pointer) noexcept:             # <<<<<<<<<<<<<<
 *   return pointer
 * 
 */

static void *__pyx_f_4grpc_7_cython_6cygrpc__copy_pointer(void *__pyx_v_pointer) {
  void *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":17
 * # TODO(https://github.com/grpc/grpc/issues/15662): Reform this.
 * cdef void* _copy_pointer(void* pointer) noexcept:
 *   return pointer             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_pointer;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":16
 * 
 * # TODO(https://github.com/grpc/grpc/issues/15662): Reform this.
 * cdef void* _copy_pointer(void* pointer) noexcept:             # <<<<<<<<<<<<<<
 *   return pointer
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":21
 * 
 * # TODO(https://github.com/grpc/grpc/issues/15662): Reform this.
 * cdef void _destroy_pointer(void* pointer) noexcept:             # <<<<<<<<<<<<<<
 *   pass
 * 
 */

static void __pyx_f_4grpc_7_cython_6cygrpc__destroy_pointer(CYTHON_UNUSED void *__pyx_v_pointer) {

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":25
 * 
 * 
 * cdef int _compare_pointer(void* first_pointer, void* second_pointer) noexcept:             # <<<<<<<<<<<<<<
 *   if first_pointer < second_pointer:
 *     return -1
 */

static int __pyx_f_4grpc_7_cython_6cygrpc__compare_pointer(void *__pyx_v_first_pointer, void *__pyx_v_second_pointer) {
  int __pyx_r;
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":26
 * 
 * cdef int _compare_pointer(void* first_pointer, void* second_pointer) noexcept:
 *   if first_pointer < second_pointer:             # <<<<<<<<<<<<<<
 *     return -1
 *   elif first_pointer > second_pointer:
 */
  __pyx_t_1 = (__pyx_v_first_pointer < __pyx_v_second_pointer);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":27
 * cdef int _compare_pointer(void* first_pointer, void* second_pointer) noexcept:
 *   if first_pointer < second_pointer:
 *     return -1             # <<<<<<<<<<<<<<
 *   elif first_pointer > second_pointer:
 *     return 1
 */
    __pyx_r = -1;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":26
 * 
 * cdef int _compare_pointer(void* first_pointer, void* second_pointer) noexcept:
 *   if first_pointer < second_pointer:             # <<<<<<<<<<<<<<
 *     return -1
 *   elif first_pointer > second_pointer:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":28
 *   if first_pointer < second_pointer:
 *     return -1
 *   elif first_pointer > second_pointer:             # <<<<<<<<<<<<<<
 *     return 1
 *   else:
 */
  __pyx_t_1 = (__pyx_v_first_pointer > __pyx_v_second_pointer);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":29
 *     return -1
 *   elif first_pointer > second_pointer:
 *     return 1             # <<<<<<<<<<<<<<
 *   else:
 *     return 0
 */
    __pyx_r = 1;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":28
 *   if first_pointer < second_pointer:
 *     return -1
 *   elif first_pointer > second_pointer:             # <<<<<<<<<<<<<<
 *     return 1
 *   else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":31
 *     return 1
 *   else:
 *     return 0             # <<<<<<<<<<<<<<
 * 
 * cdef grpc_arg_pointer_vtable default_vtable
 */
  /*else*/ {
    __pyx_r = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":25
 * 
 * 
 * cdef int _compare_pointer(void* first_pointer, void* second_pointer) noexcept:             # <<<<<<<<<<<<<<
 *   if first_pointer < second_pointer:
 *     return -1
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":16
 * 
 * 
 * cdef object _custom_op_on_c_call(int op, grpc_call *call):             # <<<<<<<<<<<<<<
 *   raise NotImplementedError("No custom hooks are implemented")
 * 
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__custom_op_on_c_call(CYTHON_UNUSED int __pyx_v_op, CYTHON_UNUSED grpc_call *__pyx_v_call) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_custom_op_on_c_call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":17
 * 
 * cdef object _custom_op_on_c_call(int op, grpc_call *call):
 *   raise NotImplementedError("No custom hooks are implemented")             # <<<<<<<<<<<<<<
 * 
 * def install_context_from_request_call_event(RequestCallEvent event):
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(26, 17, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":16
 * 
 * 
 * cdef object _custom_op_on_c_call(int op, grpc_call *call):             # <<<<<<<<<<<<<<
 *   raise NotImplementedError("No custom hooks are implemented")
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._custom_op_on_c_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":19
 *   raise NotImplementedError("No custom hooks are implemented")
 * 
 * def install_context_from_request_call_event(RequestCallEvent event):             # <<<<<<<<<<<<<<
 *   maybe_save_server_trace_context(event)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_55install_context_from_request_call_event(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_55install_context_from_request_call_event = {"install_context_from_request_call_event", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_55install_context_from_request_call_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_55install_context_from_request_call_event(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_event = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("install_context_from_request_call_event (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_event,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_event)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(26, 19, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "install_context_from_request_call_event") < 0)) __PYX_ERR(26, 19, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_event = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("install_context_from_request_call_event", 1, 1, 1, __pyx_nargs); __PYX_ERR(26, 19, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.install_context_from_request_call_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), __pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent, 1, "event", 0))) __PYX_ERR(26, 19, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_54install_context_from_request_call_event(__pyx_self, __pyx_v_event);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_54install_context_from_request_call_event(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_event) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("install_context_from_request_call_event", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":20
 * 
 * def install_context_from_request_call_event(RequestCallEvent event):
 *   maybe_save_server_trace_context(event)             # <<<<<<<<<<<<<<
 * 
 * def install_context_from_request_call_event_aio(GrpcCallWrapper event):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_maybe_save_server_trace_context); if (unlikely(!__pyx_t_2)) __PYX_ERR(26, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_event)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":19
 *   raise NotImplementedError("No custom hooks are implemented")
 * 
 * def install_context_from_request_call_event(RequestCallEvent event):             # <<<<<<<<<<<<<<
 *   maybe_save_server_trace_context(event)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.install_context_from_request_call_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":22
 *   maybe_save_server_trace_context(event)
 * 
 * def install_context_from_request_call_event_aio(GrpcCallWrapper event):             # <<<<<<<<<<<<<<
 *   pass
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_57install_context_from_request_call_event_aio(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_57install_context_from_request_call_event_aio = {"install_context_from_request_call_event_aio", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_57install_context_from_request_call_event_aio, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_57install_context_from_request_call_event_aio(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_event = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("install_context_from_request_call_event_aio (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_event,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_event)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(26, 22, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "install_context_from_request_call_event_aio") < 0)) __PYX_ERR(26, 22, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_event = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("install_context_from_request_call_event_aio", 1, 1, 1, __pyx_nargs); __PYX_ERR(26, 22, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.install_context_from_request_call_event_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "event", 0))) __PYX_ERR(26, 22, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_56install_context_from_request_call_event_aio(__pyx_self, __pyx_v_event);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_56install_context_from_request_call_event_aio(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_event) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("install_context_from_request_call_event_aio", 1);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":25
 *   pass
 * 
 * def uninstall_context():             # <<<<<<<<<<<<<<
 *   pass
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_59uninstall_context(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_59uninstall_context = {"uninstall_context", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_59uninstall_context, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_59uninstall_context(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("uninstall_context (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_58uninstall_context(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_58uninstall_context(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("uninstall_context", 1);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":28
 *   pass
 * 
 * def build_census_context():             # <<<<<<<<<<<<<<
 *   pass
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_61build_census_context(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_61build_census_context = {"build_census_context", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_61build_census_context, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_61build_census_context(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("build_census_context (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_60build_census_context(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_60build_census_context(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("build_census_context", 1);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_13CensusContext_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_13CensusContext___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13CensusContext___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __Pyx_INCREF(__pyx_empty_tuple);
  __pyx_v_state = __pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict)) __PYX_ERR(10, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_CensusContext); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_238750788)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_CensusContext__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_CensusContext); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_238750788)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CensusContext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_CensusContext__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_13CensusContext_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CensusContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_13CensusContext_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13CensusContext_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_CensusContext__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_CensusContext__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_CensusContext__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CensusContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":34
 *   pass
 * 
 * def set_census_context_on_call(_CallState call_state, CensusContext census_ctx):             # <<<<<<<<<<<<<<
 *   pass
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_63set_census_context_on_call(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_63set_census_context_on_call = {"set_census_context_on_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_63set_census_context_on_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_63set_census_context_on_call(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state = 0;
  CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_census_ctx = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_census_context_on_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_call_state,&__pyx_n_s_census_ctx,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(26, 34, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_census_ctx)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(26, 34, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("set_census_context_on_call", 1, 2, 2, 1); __PYX_ERR(26, 34, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_census_context_on_call") < 0)) __PYX_ERR(26, 34, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)values[0]);
    __pyx_v_census_ctx = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_census_context_on_call", 1, 2, 2, __pyx_nargs); __PYX_ERR(26, 34, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.set_census_context_on_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_state), __pyx_ptype_4grpc_7_cython_6cygrpc__CallState, 1, "call_state", 0))) __PYX_ERR(26, 34, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_census_ctx), __pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext, 1, "census_ctx", 0))) __PYX_ERR(26, 34, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_62set_census_context_on_call(__pyx_self, __pyx_v_call_state, __pyx_v_census_ctx);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_62set_census_context_on_call(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_census_ctx) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_census_context_on_call", 1);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":37
 *   pass
 * 
 * def set_instrumentation_context_on_call_aio(GrpcCallWrapper call_state, CensusContext census_ctx):             # <<<<<<<<<<<<<<
 *   pass
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_65set_instrumentation_context_on_call_aio(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_65set_instrumentation_context_on_call_aio = {"set_instrumentation_context_on_call_aio", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_65set_instrumentation_context_on_call_aio, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_65set_instrumentation_context_on_call_aio(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_call_state = 0;
  CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_census_ctx = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_instrumentation_context_on_call_aio (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_call_state,&__pyx_n_s_census_ctx,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(26, 37, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_census_ctx)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(26, 37, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("set_instrumentation_context_on_call_aio", 1, 2, 2, 1); __PYX_ERR(26, 37, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_instrumentation_context_on_call_aio") < 0)) __PYX_ERR(26, 37, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
    __pyx_v_census_ctx = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_instrumentation_context_on_call_aio", 1, 2, 2, __pyx_nargs); __PYX_ERR(26, 37, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.set_instrumentation_context_on_call_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_state), __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "call_state", 0))) __PYX_ERR(26, 37, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_census_ctx), __pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext, 1, "census_ctx", 0))) __PYX_ERR(26, 37, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_64set_instrumentation_context_on_call_aio(__pyx_self, __pyx_v_call_state, __pyx_v_census_ctx);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_64set_instrumentation_context_on_call_aio(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_call_state, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_census_ctx) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_instrumentation_context_on_call_aio", 1);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":40
 *   pass
 * 
 * def get_deadline_from_context():             # <<<<<<<<<<<<<<
 *   return None
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_67get_deadline_from_context(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_67get_deadline_from_context = {"get_deadline_from_context", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_67get_deadline_from_context, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_67get_deadline_from_context(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_deadline_from_context (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_66get_deadline_from_context(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_66get_deadline_from_context(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_deadline_from_context", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":41
 * 
 * def get_deadline_from_context():
 *   return None             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":40
 *   pass
 * 
 * def get_deadline_from_context():             # <<<<<<<<<<<<<<
 *   return None
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":26
 * 
 * 
 * def get_server_call_tracer_factory_address(object observability_plugin, bint xds) -> Optional[int]:             # <<<<<<<<<<<<<<
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)
 *   if capsule:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_69get_server_call_tracer_factory_address(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_69get_server_call_tracer_factory_address = {"get_server_call_tracer_factory_address", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_69get_server_call_tracer_factory_address, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_69get_server_call_tracer_factory_address(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_observability_plugin = 0;
  int __pyx_v_xds;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_server_call_tracer_factory_address (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_observability_plugin,&__pyx_n_s_xds,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_observability_plugin)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(27, 26, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_xds)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(27, 26, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("get_server_call_tracer_factory_address", 1, 2, 2, 1); __PYX_ERR(27, 26, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_server_call_tracer_factory_address") < 0)) __PYX_ERR(27, 26, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_observability_plugin = values[0];
    __pyx_v_xds = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_xds == (int)-1) && PyErr_Occurred())) __PYX_ERR(27, 26, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_server_call_tracer_factory_address", 1, 2, 2, __pyx_nargs); __PYX_ERR(27, 26, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.get_server_call_tracer_factory_address", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_68get_server_call_tracer_factory_address(__pyx_self, __pyx_v_observability_plugin, __pyx_v_xds);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_68get_server_call_tracer_factory_address(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_observability_plugin, int __pyx_v_xds) {
  PyObject *__pyx_v_capsule = NULL;
  void *__pyx_v_capsule_ptr;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  void *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_server_call_tracer_factory_address", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":27
 * 
 * def get_server_call_tracer_factory_address(object observability_plugin, bint xds) -> Optional[int]:
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)             # <<<<<<<<<<<<<<
 *   if capsule:
 *     capsule_ptr = cpython.PyCapsule_GetPointer(capsule, SERVER_CALL_TRACER_FACTORY)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_observability_plugin, __pyx_n_s_create_server_call_tracer_factor); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_xds); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_xds, __pyx_t_3) < 0) __PYX_ERR(27, 27, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_capsule = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":28
 * def get_server_call_tracer_factory_address(object observability_plugin, bint xds) -> Optional[int]:
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)
 *   if capsule:             # <<<<<<<<<<<<<<
 *     capsule_ptr = cpython.PyCapsule_GetPointer(capsule, SERVER_CALL_TRACER_FACTORY)
 *     return int(<uintptr_t>capsule_ptr)
 */
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_capsule); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(27, 28, __pyx_L1_error)
  if (__pyx_t_4) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":29
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)
 *   if capsule:
 *     capsule_ptr = cpython.PyCapsule_GetPointer(capsule, SERVER_CALL_TRACER_FACTORY)             # <<<<<<<<<<<<<<
 *     return int(<uintptr_t>capsule_ptr)
 *   else:
 */
    __pyx_t_5 = PyCapsule_GetPointer(__pyx_v_capsule, __pyx_v_4grpc_7_cython_6cygrpc_SERVER_CALL_TRACER_FACTORY); if (unlikely(__pyx_t_5 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(27, 29, __pyx_L1_error)
    __pyx_v_capsule_ptr = __pyx_t_5;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":30
 *   if capsule:
 *     capsule_ptr = cpython.PyCapsule_GetPointer(capsule, SERVER_CALL_TRACER_FACTORY)
 *     return int(<uintptr_t>capsule_ptr)             # <<<<<<<<<<<<<<
 *   else:
 *     return None
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyInt_FromSize_t(((__pyx_t_4grpc_7_cython_6cygrpc_uintptr_t)__pyx_v_capsule_ptr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 30, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyInt_Type)), __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 30, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_t_2))) __PYX_ERR(27, 30, __pyx_L1_error)
    __pyx_r = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":28
 * def get_server_call_tracer_factory_address(object observability_plugin, bint xds) -> Optional[int]:
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)
 *   if capsule:             # <<<<<<<<<<<<<<
 *     capsule_ptr = cpython.PyCapsule_GetPointer(capsule, SERVER_CALL_TRACER_FACTORY)
 *     return int(<uintptr_t>capsule_ptr)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":32
 *     return int(<uintptr_t>capsule_ptr)
 *   else:
 *     return None             # <<<<<<<<<<<<<<
 * 
 * def clear_server_call_tracer_factory() -> None:
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":26
 * 
 * 
 * def get_server_call_tracer_factory_address(object observability_plugin, bint xds) -> Optional[int]:             # <<<<<<<<<<<<<<
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)
 *   if capsule:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.get_server_call_tracer_factory_address", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_capsule);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":34
 *     return None
 * 
 * def clear_server_call_tracer_factory() -> None:             # <<<<<<<<<<<<<<
 *   _register_server_call_tracer_factory(NULL)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_71clear_server_call_tracer_factory(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_71clear_server_call_tracer_factory = {"clear_server_call_tracer_factory", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_71clear_server_call_tracer_factory, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_71clear_server_call_tracer_factory(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("clear_server_call_tracer_factory (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_70clear_server_call_tracer_factory(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_70clear_server_call_tracer_factory(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("clear_server_call_tracer_factory", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":35
 * 
 * def clear_server_call_tracer_factory() -> None:
 *   _register_server_call_tracer_factory(NULL)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_f_4grpc_7_cython_6cygrpc__register_server_call_tracer_factory(NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(27, 35, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":34
 *     return None
 * 
 * def clear_server_call_tracer_factory() -> None:             # <<<<<<<<<<<<<<
 *   _register_server_call_tracer_factory(NULL)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.clear_server_call_tracer_factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":38
 * 
 * 
 * def maybe_save_server_trace_context(RequestCallEvent event) -> None:             # <<<<<<<<<<<<<<
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_73maybe_save_server_trace_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_73maybe_save_server_trace_context = {"maybe_save_server_trace_context", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_73maybe_save_server_trace_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_73maybe_save_server_trace_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_event = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("maybe_save_server_trace_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_event,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_event)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(27, 38, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "maybe_save_server_trace_context") < 0)) __PYX_ERR(27, 38, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_event = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("maybe_save_server_trace_context", 1, 1, 1, __pyx_nargs); __PYX_ERR(27, 38, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.maybe_save_server_trace_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), __pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent, 1, "event", 0))) __PYX_ERR(27, 38, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_72maybe_save_server_trace_context(__pyx_self, __pyx_v_event);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_72maybe_save_server_trace_context(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_event) {
  grpc_core::ServerCallTracer *__pyx_v_server_call_tracer;
  PyObject *__pyx_v_plugin = NULL;
  PyObject *__pyx_v_trace_id = NULL;
  PyObject *__pyx_v_span_id = NULL;
  int __pyx_v_is_sampled;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_t_11;
  void *__pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("maybe_save_server_trace_context", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":40
 * def maybe_save_server_trace_context(RequestCallEvent event) -> None:
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:             # <<<<<<<<<<<<<<
 *     if not (plugin and plugin.tracing_enabled):
 *       return
 */
  /*with:*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_observability); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get_plugin); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 40, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 40, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 40, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = __pyx_t_3;
    __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {
          __pyx_v_plugin = __pyx_t_2;
          __pyx_t_2 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":41
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:
 *     if not (plugin and plugin.tracing_enabled):             # <<<<<<<<<<<<<<
 *       return
 *     server_call_tracer = static_cast['ServerCallTracer*'](_get_call_tracer(event.call.c_call))
 */
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v_plugin); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(27, 41, __pyx_L7_error)
          if (__pyx_t_11) {
          } else {
            __pyx_t_10 = __pyx_t_11;
            goto __pyx_L14_bool_binop_done;
          }
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_n_s_tracing_enabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 41, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(27, 41, __pyx_L7_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_10 = __pyx_t_11;
          __pyx_L14_bool_binop_done:;
          __pyx_t_11 = (!__pyx_t_10);
          if (__pyx_t_11) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":42
 *   with _observability.get_plugin() as plugin:
 *     if not (plugin and plugin.tracing_enabled):
 *       return             # <<<<<<<<<<<<<<
 *     server_call_tracer = static_cast['ServerCallTracer*'](_get_call_tracer(event.call.c_call))
 *     # TraceId and SpanId is hex string, need to convert to str
 */
            __Pyx_XDECREF(__pyx_r);
            __pyx_r = Py_None; __Pyx_INCREF(Py_None);
            goto __pyx_L11_try_return;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":41
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:
 *     if not (plugin and plugin.tracing_enabled):             # <<<<<<<<<<<<<<
 *       return
 *     server_call_tracer = static_cast['ServerCallTracer*'](_get_call_tracer(event.call.c_call))
 */
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":43
 *     if not (plugin and plugin.tracing_enabled):
 *       return
 *     server_call_tracer = static_cast['ServerCallTracer*'](_get_call_tracer(event.call.c_call))             # <<<<<<<<<<<<<<
 *     # TraceId and SpanId is hex string, need to convert to str
 *     trace_id = _decode(codecs.decode(server_call_tracer.TraceId(), 'hex_codec'))
 */
          __pyx_t_12 = __pyx_f_4grpc_7_cython_6cygrpc__get_call_tracer(__pyx_v_event->call->c_call); if (unlikely(__pyx_t_12 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(27, 43, __pyx_L7_error)
          __pyx_v_server_call_tracer = static_cast<grpc_core::ServerCallTracer *>(__pyx_t_12);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":45
 *     server_call_tracer = static_cast['ServerCallTracer*'](_get_call_tracer(event.call.c_call))
 *     # TraceId and SpanId is hex string, need to convert to str
 *     trace_id = _decode(codecs.decode(server_call_tracer.TraceId(), 'hex_codec'))             # <<<<<<<<<<<<<<
 *     span_id = _decode(codecs.decode(server_call_tracer.SpanId(), 'hex_codec'))
 *     is_sampled = server_call_tracer.IsSampled()
 */
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_codecs); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 45, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_decode); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 45, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_server_call_tracer->TraceId()); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 45, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_6 = NULL;
          __pyx_t_4 = 0;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_6)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_6);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_4 = 1;
            }
          }
          #endif
          {
            PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_1, __pyx_n_s_hex_codec};
            __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 45, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          if (!(likely(PyBytes_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_2))) __PYX_ERR(27, 45, __pyx_L7_error)
          __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 45, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_v_trace_id = __pyx_t_3;
          __pyx_t_3 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":46
 *     # TraceId and SpanId is hex string, need to convert to str
 *     trace_id = _decode(codecs.decode(server_call_tracer.TraceId(), 'hex_codec'))
 *     span_id = _decode(codecs.decode(server_call_tracer.SpanId(), 'hex_codec'))             # <<<<<<<<<<<<<<
 *     is_sampled = server_call_tracer.IsSampled()
 *     plugin.save_trace_context(trace_id, span_id, is_sampled)
 */
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_codecs); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 46, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_decode); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 46, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_server_call_tracer->SpanId()); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 46, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_6 = NULL;
          __pyx_t_4 = 0;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_6)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_6);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
              __pyx_t_4 = 1;
            }
          }
          #endif
          {
            PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_2, __pyx_n_s_hex_codec};
            __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 46, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          }
          if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_3))) __PYX_ERR(27, 46, __pyx_L7_error)
          __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 46, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_v_span_id = __pyx_t_1;
          __pyx_t_1 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":47
 *     trace_id = _decode(codecs.decode(server_call_tracer.TraceId(), 'hex_codec'))
 *     span_id = _decode(codecs.decode(server_call_tracer.SpanId(), 'hex_codec'))
 *     is_sampled = server_call_tracer.IsSampled()             # <<<<<<<<<<<<<<
 *     plugin.save_trace_context(trace_id, span_id, is_sampled)
 * 
 */
          __pyx_v_is_sampled = __pyx_v_server_call_tracer->IsSampled();

          /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":48
 *     span_id = _decode(codecs.decode(server_call_tracer.SpanId(), 'hex_codec'))
 *     is_sampled = server_call_tracer.IsSampled()
 *     plugin.save_trace_context(trace_id, span_id, is_sampled)             # <<<<<<<<<<<<<<
 * 
 * 
 */
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_n_s_save_trace_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 48, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_is_sampled); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 48, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_6 = NULL;
          __pyx_t_4 = 0;
          #if CYTHON_UNPACK_METHODS
          if (likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_6)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_6);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_4 = 1;
            }
          }
          #endif
          {
            PyObject *__pyx_callargs[4] = {__pyx_t_6, __pyx_v_trace_id, __pyx_v_span_id, __pyx_t_2};
            __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 48, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":40
 * def maybe_save_server_trace_context(RequestCallEvent event) -> None:
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:             # <<<<<<<<<<<<<<
 *     if not (plugin and plugin.tracing_enabled):
 *       return
 */
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc.maybe_save_server_trace_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_2) < 0) __PYX_ERR(27, 40, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_6 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(27, 40, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(27, 40, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_11 < 0) __PYX_ERR(27, 40, __pyx_L9_except_error)
          __pyx_t_10 = (!__pyx_t_11);
          if (unlikely(__pyx_t_10)) {
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_2);
            __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_3, __pyx_t_2);
            __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_2 = 0; 
            __PYX_ERR(27, 40, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L11_try_return:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L4_return;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_5) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(27, 40, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L4_return: {
        __pyx_t_9 = __pyx_r;
        __pyx_r = 0;
        if (__pyx_t_5) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(27, 40, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __pyx_r = __pyx_t_9;
        __pyx_t_9 = 0;
        goto __pyx_L0;
      }
      __pyx_L6:;
    }
    goto __pyx_L19;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L1_error;
    __pyx_L19:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":38
 * 
 * 
 * def maybe_save_server_trace_context(RequestCallEvent event) -> None:             # <<<<<<<<<<<<<<
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.maybe_save_server_trace_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_plugin);
  __Pyx_XDECREF(__pyx_v_trace_id);
  __Pyx_XDECREF(__pyx_v_span_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":51
 * 
 * 
 * cdef void _set_call_tracer(grpc_call* call, void* capsule_ptr):             # <<<<<<<<<<<<<<
 *   cdef ClientCallTracer* call_tracer = <ClientCallTracer*>capsule_ptr
 *   grpc_call_tracer_set_and_manage(call, call_tracer)
 */

static void __pyx_f_4grpc_7_cython_6cygrpc__set_call_tracer(grpc_call *__pyx_v_call, void *__pyx_v_capsule_ptr) {
  grpc_core::ClientCallTracer *__pyx_v_call_tracer;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":52
 * 
 * cdef void _set_call_tracer(grpc_call* call, void* capsule_ptr):
 *   cdef ClientCallTracer* call_tracer = <ClientCallTracer*>capsule_ptr             # <<<<<<<<<<<<<<
 *   grpc_call_tracer_set_and_manage(call, call_tracer)
 * 
 */
  __pyx_v_call_tracer = ((grpc_core::ClientCallTracer *)__pyx_v_capsule_ptr);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":53
 * cdef void _set_call_tracer(grpc_call* call, void* capsule_ptr):
 *   cdef ClientCallTracer* call_tracer = <ClientCallTracer*>capsule_ptr
 *   grpc_call_tracer_set_and_manage(call, call_tracer)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  grpc_call_tracer_set_and_manage(__pyx_v_call, __pyx_v_call_tracer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":51
 * 
 * 
 * cdef void _set_call_tracer(grpc_call* call, void* capsule_ptr):             # <<<<<<<<<<<<<<
 *   cdef ClientCallTracer* call_tracer = <ClientCallTracer*>capsule_ptr
 *   grpc_call_tracer_set_and_manage(call, call_tracer)
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":56
 * 
 * 
 * cdef void* _get_call_tracer(grpc_call* call):             # <<<<<<<<<<<<<<
 *   cdef void* call_tracer = grpc_call_tracer_get(call)
 *   return call_tracer
 */

static void *__pyx_f_4grpc_7_cython_6cygrpc__get_call_tracer(grpc_call *__pyx_v_call) {
  void *__pyx_v_call_tracer;
  void *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":57
 * 
 * cdef void* _get_call_tracer(grpc_call* call):
 *   cdef void* call_tracer = grpc_call_tracer_get(call)             # <<<<<<<<<<<<<<
 *   return call_tracer
 * 
 */
  __pyx_v_call_tracer = grpc_call_tracer_get(__pyx_v_call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":58
 * cdef void* _get_call_tracer(grpc_call* call):
 *   cdef void* call_tracer = grpc_call_tracer_get(call)
 *   return call_tracer             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_call_tracer;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":56
 * 
 * 
 * cdef void* _get_call_tracer(grpc_call* call):             # <<<<<<<<<<<<<<
 *   cdef void* call_tracer = grpc_call_tracer_get(call)
 *   return call_tracer
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":61
 * 
 * 
 * cdef void _register_server_call_tracer_factory(void* capsule_ptr):             # <<<<<<<<<<<<<<
 *   cdef ServerCallTracerFactory* call_tracer_factory = <ServerCallTracerFactory*>capsule_ptr
 *   ServerCallTracerFactory.RegisterGlobal(call_tracer_factory)
 */

static void __pyx_f_4grpc_7_cython_6cygrpc__register_server_call_tracer_factory(void *__pyx_v_capsule_ptr) {
  grpc_core::ServerCallTracerFactory *__pyx_v_call_tracer_factory;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":62
 * 
 * cdef void _register_server_call_tracer_factory(void* capsule_ptr):
 *   cdef ServerCallTracerFactory* call_tracer_factory = <ServerCallTracerFactory*>capsule_ptr             # <<<<<<<<<<<<<<
 *   ServerCallTracerFactory.RegisterGlobal(call_tracer_factory)
 */
  __pyx_v_call_tracer_factory = ((grpc_core::ServerCallTracerFactory *)__pyx_v_capsule_ptr);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":63
 * cdef void _register_server_call_tracer_factory(void* capsule_ptr):
 *   cdef ServerCallTracerFactory* call_tracer_factory = <ServerCallTracerFactory*>capsule_ptr
 *   ServerCallTracerFactory.RegisterGlobal(call_tracer_factory)             # <<<<<<<<<<<<<<
 */
  grpc_core::ServerCallTracerFactory::RegisterGlobal(__pyx_v_call_tracer_factory);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":61
 * 
 * 
 * cdef void _register_server_call_tracer_factory(void* capsule_ptr):             # <<<<<<<<<<<<<<
 *   cdef ServerCallTracerFactory* call_tracer_factory = <ServerCallTracerFactory*>capsule_ptr
 *   ServerCallTracerFactory.RegisterGlobal(call_tracer_factory)
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":38
 * 
 * 
 * cdef _submit_to_greenlet_queue(object cb, tuple args):             # <<<<<<<<<<<<<<
 *   cdef tuple to_call = (cb,) + args
 *   cdef unique_lock[mutex]* lk
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__submit_to_greenlet_queue(PyObject *__pyx_v_cb, PyObject *__pyx_v_args) {
  PyObject *__pyx_v_to_call = 0;
  std::unique_lock<std::mutex>  *__pyx_v_lk;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_submit_to_greenlet_queue", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":39
 * 
 * cdef _submit_to_greenlet_queue(object cb, tuple args):
 *   cdef tuple to_call = (cb,) + args             # <<<<<<<<<<<<<<
 *   cdef unique_lock[mutex]* lk
 *   Py_INCREF(to_call)
 */
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_cb);
  __Pyx_GIVEREF(__pyx_v_cb);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_cb)) __PYX_ERR(28, 39, __pyx_L1_error);
  __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_to_call = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":41
 *   cdef tuple to_call = (cb,) + args
 *   cdef unique_lock[mutex]* lk
 *   Py_INCREF(to_call)             # <<<<<<<<<<<<<<
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 */
  Py_INCREF(__pyx_v_to_call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":42
 *   cdef unique_lock[mutex]* lk
 *   Py_INCREF(to_call)
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_greenlets_to_run.push(<void*>(to_call))
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":43
 *   Py_INCREF(to_call)
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)             # <<<<<<<<<<<<<<
 *     g_greenlets_to_run.push(<void*>(to_call))
 *     del lk
 */
        __pyx_v_lk = new std::unique_lock<std::mutex> (__pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_mu);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":44
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_greenlets_to_run.push(<void*>(to_call))             # <<<<<<<<<<<<<<
 *     del lk
 *     g_greenlets_cv.notify_all()
 */
        __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_to_run.push(((void *)__pyx_v_to_call));

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":45
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_greenlets_to_run.push(<void*>(to_call))
 *     del lk             # <<<<<<<<<<<<<<
 *     g_greenlets_cv.notify_all()
 * 
 */
        delete __pyx_v_lk;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":46
 *     g_greenlets_to_run.push(<void*>(to_call))
 *     del lk
 *     g_greenlets_cv.notify_all()             # <<<<<<<<<<<<<<
 * 
 * 
 */
        __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_cv.notify_all();
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":42
 *   cdef unique_lock[mutex]* lk
 *   Py_INCREF(to_call)
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_greenlets_to_run.push(<void*>(to_call))
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":38
 * 
 * 
 * cdef _submit_to_greenlet_queue(object cb, tuple args):             # <<<<<<<<<<<<<<
 *   cdef tuple to_call = (cb,) + args
 *   cdef unique_lock[mutex]* lk
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._submit_to_greenlet_queue", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_to_call);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":49
 * 
 * 
 * cpdef void gevent_increment_channel_count():             # <<<<<<<<<<<<<<
 *   global g_channel_count
 *   cdef int old_channel_count
 */

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_75gevent_increment_channel_count(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_gevent_increment_channel_count(CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_v_old_channel_count;
  std::unique_lock<std::mutex>  *__pyx_v_lk;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gevent_increment_channel_count", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":52
 *   global g_channel_count
 *   cdef int old_channel_count
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     old_channel_count = g_channel_count
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":53
 *   cdef int old_channel_count
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)             # <<<<<<<<<<<<<<
 *     old_channel_count = g_channel_count
 *     g_channel_count += 1
 */
        __pyx_v_lk = new std::unique_lock<std::mutex> (__pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_mu);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":54
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     old_channel_count = g_channel_count             # <<<<<<<<<<<<<<
 *     g_channel_count += 1
 *     del lk
 */
        __pyx_v_old_channel_count = __pyx_v_4grpc_7_cython_6cygrpc_g_channel_count;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":55
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     old_channel_count = g_channel_count
 *     g_channel_count += 1             # <<<<<<<<<<<<<<
 *     del lk
 *   if old_channel_count == 0:
 */
        __pyx_v_4grpc_7_cython_6cygrpc_g_channel_count = (__pyx_v_4grpc_7_cython_6cygrpc_g_channel_count + 1);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":56
 *     old_channel_count = g_channel_count
 *     g_channel_count += 1
 *     del lk             # <<<<<<<<<<<<<<
 *   if old_channel_count == 0:
 *     run_spawn_greenlets()
 */
        delete __pyx_v_lk;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":52
 *   global g_channel_count
 *   cdef int old_channel_count
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     old_channel_count = g_channel_count
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":57
 *     g_channel_count += 1
 *     del lk
 *   if old_channel_count == 0:             # <<<<<<<<<<<<<<
 *     run_spawn_greenlets()
 * 
 */
  __pyx_t_1 = (__pyx_v_old_channel_count == 0);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":58
 *     del lk
 *   if old_channel_count == 0:
 *     run_spawn_greenlets()             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_run_spawn_greenlets); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 58, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 58, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":57
 *     g_channel_count += 1
 *     del lk
 *   if old_channel_count == 0:             # <<<<<<<<<<<<<<
 *     run_spawn_greenlets()
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":49
 * 
 * 
 * cpdef void gevent_increment_channel_count():             # <<<<<<<<<<<<<<
 *   global g_channel_count
 *   cdef int old_channel_count
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.gevent_increment_channel_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_75gevent_increment_channel_count(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_75gevent_increment_channel_count = {"gevent_increment_channel_count", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_75gevent_increment_channel_count, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_75gevent_increment_channel_count(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gevent_increment_channel_count (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_74gevent_increment_channel_count(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_74gevent_increment_channel_count(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gevent_increment_channel_count", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_f_4grpc_7_cython_6cygrpc_gevent_increment_channel_count(0); if (unlikely(PyErr_Occurred())) __PYX_ERR(28, 49, __pyx_L1_error)
  __pyx_t_1 = __Pyx_void_to_None(NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.gevent_increment_channel_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":61
 * 
 * 
 * cpdef void gevent_decrement_channel_count():             # <<<<<<<<<<<<<<
 *   global g_channel_count
 *   with nogil:
 */

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_77gevent_decrement_channel_count(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_gevent_decrement_channel_count(CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::unique_lock<std::mutex>  *__pyx_v_lk;
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":63
 * cpdef void gevent_decrement_channel_count():
 *   global g_channel_count
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_channel_count -= 1
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":64
 *   global g_channel_count
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)             # <<<<<<<<<<<<<<
 *     g_channel_count -= 1
 *     if g_channel_count == 0:
 */
        __pyx_v_lk = new std::unique_lock<std::mutex> (__pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_mu);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":65
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_channel_count -= 1             # <<<<<<<<<<<<<<
 *     if g_channel_count == 0:
 *       g_greenlets_cv.notify_all()
 */
        __pyx_v_4grpc_7_cython_6cygrpc_g_channel_count = (__pyx_v_4grpc_7_cython_6cygrpc_g_channel_count - 1);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":66
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_channel_count -= 1
 *     if g_channel_count == 0:             # <<<<<<<<<<<<<<
 *       g_greenlets_cv.notify_all()
 *     del lk
 */
        __pyx_t_1 = (__pyx_v_4grpc_7_cython_6cygrpc_g_channel_count == 0);
        if (__pyx_t_1) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":67
 *     g_channel_count -= 1
 *     if g_channel_count == 0:
 *       g_greenlets_cv.notify_all()             # <<<<<<<<<<<<<<
 *     del lk
 * 
 */
          __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_cv.notify_all();

          /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":66
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_channel_count -= 1
 *     if g_channel_count == 0:             # <<<<<<<<<<<<<<
 *       g_greenlets_cv.notify_all()
 *     del lk
 */
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":68
 *     if g_channel_count == 0:
 *       g_greenlets_cv.notify_all()
 *     del lk             # <<<<<<<<<<<<<<
 * 
 * 
 */
        delete __pyx_v_lk;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":63
 * cpdef void gevent_decrement_channel_count():
 *   global g_channel_count
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_channel_count -= 1
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":61
 * 
 * 
 * cpdef void gevent_decrement_channel_count():             # <<<<<<<<<<<<<<
 *   global g_channel_count
 *   with nogil:
 */

  /* function exit code */
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_77gevent_decrement_channel_count(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_77gevent_decrement_channel_count = {"gevent_decrement_channel_count", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_77gevent_decrement_channel_count, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_77gevent_decrement_channel_count(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gevent_decrement_channel_count (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_76gevent_decrement_channel_count(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_76gevent_decrement_channel_count(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gevent_decrement_channel_count", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_f_4grpc_7_cython_6cygrpc_gevent_decrement_channel_count(0); if (unlikely(PyErr_Occurred())) __PYX_ERR(28, 61, __pyx_L1_error)
  __pyx_t_1 = __Pyx_void_to_None(NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.gevent_decrement_channel_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":71
 * 
 * 
 * cdef object await_next_greenlet():             # <<<<<<<<<<<<<<
 *   cdef unique_lock[mutex]* lk
 *   with nogil:
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_await_next_greenlet(void) {
  std::unique_lock<std::mutex>  *__pyx_v_lk;
  PyObject *__pyx_v_to_call = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  void *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("await_next_greenlet", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":73
 * cdef object await_next_greenlet():
 *   cdef unique_lock[mutex]* lk
 *   with nogil:             # <<<<<<<<<<<<<<
 *     # Cython doesn't allow us to do proper stack allocations, so we can't take
 *     # advantage of RAII.
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":76
 *     # Cython doesn't allow us to do proper stack allocations, so we can't take
 *     # advantage of RAII.
 *     lk = new unique_lock[mutex](g_greenlets_mu)             # <<<<<<<<<<<<<<
 *     while not g_shutdown_greenlets_to_run_queue and g_channel_count != 0:
 *       if not g_greenlets_to_run.empty():
 */
        __pyx_v_lk = new std::unique_lock<std::mutex> (__pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_mu);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":77
 *     # advantage of RAII.
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     while not g_shutdown_greenlets_to_run_queue and g_channel_count != 0:             # <<<<<<<<<<<<<<
 *       if not g_greenlets_to_run.empty():
 *         break
 */
        while (1) {
          __pyx_t_2 = (!__pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_greenlets_to_run_queue);
          if (__pyx_t_2) {
          } else {
            __pyx_t_1 = __pyx_t_2;
            goto __pyx_L8_bool_binop_done;
          }
          __pyx_t_2 = (__pyx_v_4grpc_7_cython_6cygrpc_g_channel_count != 0);
          __pyx_t_1 = __pyx_t_2;
          __pyx_L8_bool_binop_done:;
          if (!__pyx_t_1) break;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":78
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     while not g_shutdown_greenlets_to_run_queue and g_channel_count != 0:
 *       if not g_greenlets_to_run.empty():             # <<<<<<<<<<<<<<
 *         break
 *       g_greenlets_cv.wait(dereference(lk))
 */
          __pyx_t_1 = (!__pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_to_run.empty());
          if (__pyx_t_1) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":79
 *     while not g_shutdown_greenlets_to_run_queue and g_channel_count != 0:
 *       if not g_greenlets_to_run.empty():
 *         break             # <<<<<<<<<<<<<<
 *       g_greenlets_cv.wait(dereference(lk))
 *   if g_channel_count == 0:
 */
            goto __pyx_L7_break;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":78
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     while not g_shutdown_greenlets_to_run_queue and g_channel_count != 0:
 *       if not g_greenlets_to_run.empty():             # <<<<<<<<<<<<<<
 *         break
 *       g_greenlets_cv.wait(dereference(lk))
 */
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":80
 *       if not g_greenlets_to_run.empty():
 *         break
 *       g_greenlets_cv.wait(dereference(lk))             # <<<<<<<<<<<<<<
 *   if g_channel_count == 0:
 *     del lk
 */
          __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_cv.wait((*__pyx_v_lk));
        }
        __pyx_L7_break:;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":73
 * cdef object await_next_greenlet():
 *   cdef unique_lock[mutex]* lk
 *   with nogil:             # <<<<<<<<<<<<<<
 *     # Cython doesn't allow us to do proper stack allocations, so we can't take
 *     # advantage of RAII.
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":81
 *         break
 *       g_greenlets_cv.wait(dereference(lk))
 *   if g_channel_count == 0:             # <<<<<<<<<<<<<<
 *     del lk
 *     return None
 */
  __pyx_t_1 = (__pyx_v_4grpc_7_cython_6cygrpc_g_channel_count == 0);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":82
 *       g_greenlets_cv.wait(dereference(lk))
 *   if g_channel_count == 0:
 *     del lk             # <<<<<<<<<<<<<<
 *     return None
 *   if g_shutdown_greenlets_to_run_queue:
 */
    delete __pyx_v_lk;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":83
 *   if g_channel_count == 0:
 *     del lk
 *     return None             # <<<<<<<<<<<<<<
 *   if g_shutdown_greenlets_to_run_queue:
 *     del lk
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":81
 *         break
 *       g_greenlets_cv.wait(dereference(lk))
 *   if g_channel_count == 0:             # <<<<<<<<<<<<<<
 *     del lk
 *     return None
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":84
 *     del lk
 *     return None
 *   if g_shutdown_greenlets_to_run_queue:             # <<<<<<<<<<<<<<
 *     del lk
 *     return None
 */
  if (__pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_greenlets_to_run_queue) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":85
 *     return None
 *   if g_shutdown_greenlets_to_run_queue:
 *     del lk             # <<<<<<<<<<<<<<
 *     return None
 *   cdef object to_call = <object>g_greenlets_to_run.front()
 */
    delete __pyx_v_lk;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":86
 *   if g_shutdown_greenlets_to_run_queue:
 *     del lk
 *     return None             # <<<<<<<<<<<<<<
 *   cdef object to_call = <object>g_greenlets_to_run.front()
 *   Py_DECREF(to_call)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":84
 *     del lk
 *     return None
 *   if g_shutdown_greenlets_to_run_queue:             # <<<<<<<<<<<<<<
 *     del lk
 *     return None
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":87
 *     del lk
 *     return None
 *   cdef object to_call = <object>g_greenlets_to_run.front()             # <<<<<<<<<<<<<<
 *   Py_DECREF(to_call)
 *   g_greenlets_to_run.pop()
 */
  __pyx_t_3 = __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_to_run.front();
  __pyx_t_4 = ((PyObject *)__pyx_t_3);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_v_to_call = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":88
 *     return None
 *   cdef object to_call = <object>g_greenlets_to_run.front()
 *   Py_DECREF(to_call)             # <<<<<<<<<<<<<<
 *   g_greenlets_to_run.pop()
 *   del lk
 */
  Py_DECREF(__pyx_v_to_call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":89
 *   cdef object to_call = <object>g_greenlets_to_run.front()
 *   Py_DECREF(to_call)
 *   g_greenlets_to_run.pop()             # <<<<<<<<<<<<<<
 *   del lk
 *   return to_call
 */
  __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_to_run.pop();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":90
 *   Py_DECREF(to_call)
 *   g_greenlets_to_run.pop()
 *   del lk             # <<<<<<<<<<<<<<
 *   return to_call
 * 
 */
  delete __pyx_v_lk;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":91
 *   g_greenlets_to_run.pop()
 *   del lk
 *   return to_call             # <<<<<<<<<<<<<<
 * 
 * def spawn_greenlets():
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_to_call);
  __pyx_r = __pyx_v_to_call;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":71
 * 
 * 
 * cdef object await_next_greenlet():             # <<<<<<<<<<<<<<
 *   cdef unique_lock[mutex]* lk
 *   with nogil:
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_to_call);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":93
 *   return to_call
 * 
 * def spawn_greenlets():             # <<<<<<<<<<<<<<
 *   while True:
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_79spawn_greenlets(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_79spawn_greenlets = {"spawn_greenlets", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_79spawn_greenlets, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_79spawn_greenlets(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("spawn_greenlets (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_78spawn_greenlets(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_78spawn_greenlets(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_v_to_call = NULL;
  PyObject *__pyx_v_fn = NULL;
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("spawn_greenlets", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":94
 * 
 * def spawn_greenlets():
 *   while True:             # <<<<<<<<<<<<<<
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
 *     if to_call is None:
 */
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":95
 * def spawn_greenlets():
 *   while True:
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())             # <<<<<<<<<<<<<<
 *     if to_call is None:
 *       break
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_g_gevent_threadpool); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_apply); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(__pyx_f_4grpc_7_cython_6cygrpc_await_next_greenlet); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_2, __pyx_empty_tuple};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 95, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_XDECREF_SET(__pyx_v_to_call, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":96
 *   while True:
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
 *     if to_call is None:             # <<<<<<<<<<<<<<
 *       break
 *     fn = to_call[0]
 */
    __pyx_t_6 = (__pyx_v_to_call == Py_None);
    if (__pyx_t_6) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":97
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
 *     if to_call is None:
 *       break             # <<<<<<<<<<<<<<
 *     fn = to_call[0]
 *     args = to_call[1:]
 */
      goto __pyx_L4_break;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":96
 *   while True:
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
 *     if to_call is None:             # <<<<<<<<<<<<<<
 *       break
 *     fn = to_call[0]
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":98
 *     if to_call is None:
 *       break
 *     fn = to_call[0]             # <<<<<<<<<<<<<<
 *     args = to_call[1:]
 *     fn(*args)
 */
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_to_call, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 98, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_fn, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":99
 *       break
 *     fn = to_call[0]
 *     args = to_call[1:]             # <<<<<<<<<<<<<<
 *     fn(*args)
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_to_call, 1, 0, NULL, NULL, &__pyx_slice__37, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_args, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":100
 *     fn = to_call[0]
 *     args = to_call[1:]
 *     fn(*args)             # <<<<<<<<<<<<<<
 * 
 * def run_spawn_greenlets():
 */
    __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_fn, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L4_break:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":93
 *   return to_call
 * 
 * def spawn_greenlets():             # <<<<<<<<<<<<<<
 *   while True:
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.spawn_greenlets", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_to_call);
  __Pyx_XDECREF(__pyx_v_fn);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":102
 *     fn(*args)
 * 
 * def run_spawn_greenlets():             # <<<<<<<<<<<<<<
 *   g_gevent_pool.spawn(spawn_greenlets)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_81run_spawn_greenlets(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_81run_spawn_greenlets = {"run_spawn_greenlets", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_81run_spawn_greenlets, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_81run_spawn_greenlets(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("run_spawn_greenlets (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_80run_spawn_greenlets(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_80run_spawn_greenlets(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("run_spawn_greenlets", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":103
 * 
 * def run_spawn_greenlets():
 *   g_gevent_pool.spawn(spawn_greenlets)             # <<<<<<<<<<<<<<
 * 
 * def shutdown_await_next_greenlet():
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_g_gevent_pool); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_spawn); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_spawn_greenlets); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 103, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":102
 *     fn(*args)
 * 
 * def run_spawn_greenlets():             # <<<<<<<<<<<<<<
 *   g_gevent_pool.spawn(spawn_greenlets)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.run_spawn_greenlets", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":105
 *   g_gevent_pool.spawn(spawn_greenlets)
 * 
 * def shutdown_await_next_greenlet():             # <<<<<<<<<<<<<<
 *   global g_shutdown_greenlets_to_run_queue
 *   cdef unique_lock[mutex]* lk
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_83shutdown_await_next_greenlet(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_83shutdown_await_next_greenlet = {"shutdown_await_next_greenlet", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_83shutdown_await_next_greenlet, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_83shutdown_await_next_greenlet(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown_await_next_greenlet (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_82shutdown_await_next_greenlet(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_82shutdown_await_next_greenlet(CYTHON_UNUSED PyObject *__pyx_self) {
  std::unique_lock<std::mutex>  *__pyx_v_lk;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown_await_next_greenlet", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":108
 *   global g_shutdown_greenlets_to_run_queue
 *   cdef unique_lock[mutex]* lk
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_shutdown_greenlets_to_run_queue = True
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":109
 *   cdef unique_lock[mutex]* lk
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)             # <<<<<<<<<<<<<<
 *     g_shutdown_greenlets_to_run_queue = True
 *   del lk
 */
        __pyx_v_lk = new std::unique_lock<std::mutex> (__pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_mu);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":110
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_shutdown_greenlets_to_run_queue = True             # <<<<<<<<<<<<<<
 *   del lk
 *   g_greenlets_cv.notify_all()
 */
        __pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_greenlets_to_run_queue = 1;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":108
 *   global g_shutdown_greenlets_to_run_queue
 *   cdef unique_lock[mutex]* lk
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_shutdown_greenlets_to_run_queue = True
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":111
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_shutdown_greenlets_to_run_queue = True
 *   del lk             # <<<<<<<<<<<<<<
 *   g_greenlets_cv.notify_all()
 * 
 */
  delete __pyx_v_lk;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":112
 *     g_shutdown_greenlets_to_run_queue = True
 *   del lk
 *   g_greenlets_cv.notify_all()             # <<<<<<<<<<<<<<
 * 
 * def init_grpc_gevent():
 */
  __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_cv.notify_all();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":105
 *   g_gevent_pool.spawn(spawn_greenlets)
 * 
 * def shutdown_await_next_greenlet():             # <<<<<<<<<<<<<<
 *   global g_shutdown_greenlets_to_run_queue
 *   cdef unique_lock[mutex]* lk
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":114
 *   g_greenlets_cv.notify_all()
 * 
 * def init_grpc_gevent():             # <<<<<<<<<<<<<<
 *   # Lazily import gevent
 *   global gevent_hub
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_85init_grpc_gevent(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_85init_grpc_gevent = {"init_grpc_gevent", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_85init_grpc_gevent, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_85init_grpc_gevent(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("init_grpc_gevent (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_84init_grpc_gevent(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_84init_grpc_gevent(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_v_gevent = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("init_grpc_gevent", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":122
 *   global g_gevent_pool
 * 
 *   import gevent             # <<<<<<<<<<<<<<
 *   import gevent.pool
 * 
 */
  __pyx_t_1 = __Pyx_ImportDottedModule(__pyx_n_s_gevent, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_gevent = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":123
 * 
 *   import gevent
 *   import gevent.pool             # <<<<<<<<<<<<<<
 * 
 *   gevent_hub = gevent.hub
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_gevent_pool, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_gevent, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":125
 *   import gevent.pool
 * 
 *   gevent_hub = gevent.hub             # <<<<<<<<<<<<<<
 *   g_gevent_threadpool = gevent_hub.get_hub().threadpool
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_gevent, __pyx_n_s_hub); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_gevent_hub, __pyx_t_1) < 0) __PYX_ERR(28, 125, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":126
 * 
 *   gevent_hub = gevent.hub
 *   g_gevent_threadpool = gevent_hub.get_hub().threadpool             # <<<<<<<<<<<<<<
 * 
 *   g_gevent_activated = True
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_gevent_hub); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get_hub); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 126, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_threadpool); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_g_gevent_threadpool, __pyx_t_3) < 0) __PYX_ERR(28, 126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":128
 *   g_gevent_threadpool = gevent_hub.get_hub().threadpool
 * 
 *   g_gevent_activated = True             # <<<<<<<<<<<<<<
 *   g_interrupt_check_period_ms = 2000
 * 
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_g_gevent_activated, Py_True) < 0) __PYX_ERR(28, 128, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":129
 * 
 *   g_gevent_activated = True
 *   g_interrupt_check_period_ms = 2000             # <<<<<<<<<<<<<<
 * 
 *   g_gevent_pool = gevent.pool.Group()
 */
  __pyx_v_4grpc_7_cython_6cygrpc_g_interrupt_check_period_ms = 0x7D0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":131
 *   g_interrupt_check_period_ms = 2000
 * 
 *   g_gevent_pool = gevent.pool.Group()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_gevent, __pyx_n_s_pool); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Group); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_g_gevent_pool, __pyx_t_3) < 0) __PYX_ERR(28, 131, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":134
 * 
 * 
 *   set_async_callback_func(_submit_to_greenlet_queue)             # <<<<<<<<<<<<<<
 * 
 *   # TODO: Document how this all works.
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_set_async_callback_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(__pyx_f_4grpc_7_cython_6cygrpc__submit_to_greenlet_queue); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_1};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":137
 * 
 *   # TODO: Document how this all works.
 *   atexit.register(shutdown_await_next_greenlet)             # <<<<<<<<<<<<<<
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_atexit); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_register); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_shutdown_await_next_greenlet); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_2};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":114
 *   g_greenlets_cv.notify_all()
 * 
 * def init_grpc_gevent():             # <<<<<<<<<<<<<<
 *   # Lazily import gevent
 *   global gevent_hub
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.init_grpc_gevent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_gevent);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":15
 * # limitations under the License.
 * 
 * def _contextvars_supported():             # <<<<<<<<<<<<<<
 *     """Determines if the contextvars module is supported.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_87_contextvars_supported(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_86_contextvars_supported, "Determines if the contextvars module is supported.\n\n    We use a 'try it and see if it works approach' here rather than predicting\n    based on interpreter version in order to support older interpreters that\n    may have a backported module based on, e.g. `threading.local`.\n\n    Returns:\n      A bool indicating whether `contextvars` are supported in the current\n      environment.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_87_contextvars_supported = {"_contextvars_supported", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_87_contextvars_supported, METH_NOARGS, __pyx_doc_4grpc_7_cython_6cygrpc_86_contextvars_supported};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_87_contextvars_supported(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_contextvars_supported (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_86_contextvars_supported(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_86_contextvars_supported(CYTHON_UNUSED PyObject *__pyx_self) {
  CYTHON_UNUSED PyObject *__pyx_v_contextvars = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_contextvars_supported", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":26
 *       environment.
 *     """
 *     try:             # <<<<<<<<<<<<<<
 *         import contextvars
 *         return True
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":27
 *     """
 *     try:
 *         import contextvars             # <<<<<<<<<<<<<<
 *         return True
 *     except ImportError:
 */
      __pyx_t_4 = __Pyx_ImportDottedModule(__pyx_n_s_contextvars, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(29, 27, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_contextvars = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":28
 *     try:
 *         import contextvars
 *         return True             # <<<<<<<<<<<<<<
 *     except ImportError:
 *         return False
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_True);
      __pyx_r = Py_True;
      goto __pyx_L7_try_return;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":26
 *       environment.
 *     """
 *     try:             # <<<<<<<<<<<<<<
 *         import contextvars
 *         return True
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":29
 *         import contextvars
 *         return True
 *     except ImportError:             # <<<<<<<<<<<<<<
 *         return False
 * 
 */
    __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError);
    if (__pyx_t_5) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._contextvars_supported", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(29, 29, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":30
 *         return True
 *     except ImportError:
 *         return False             # <<<<<<<<<<<<<<
 * 
 * 
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":26
 *       environment.
 *     """
 *     try:             # <<<<<<<<<<<<<<
 *         import contextvars
 *         return True
 */
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":15
 * # limitations under the License.
 * 
 * def _contextvars_supported():             # <<<<<<<<<<<<<<
 *     """Determines if the contextvars module is supported.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc._contextvars_supported", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_contextvars);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":33
 * 
 * 
 * def _run_with_context(target):             # <<<<<<<<<<<<<<
 *     """Runs a callable with contextvars propagated.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_89_run_with_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_88_run_with_context, "Runs a callable with contextvars propagated.\n\n    If contextvars are supported, the calling thread's context will be copied\n    and propagated. If they are not supported, this function is equivalent\n    to the identity function.\n\n    Args:\n      target: A callable object to wrap.\n    Returns:\n      A callable object with the same signature as `target` but with\n        contextvars propagated.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_89_run_with_context = {"_run_with_context", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_89_run_with_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_88_run_with_context};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_89_run_with_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_target = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run_with_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_target,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_target)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(29, 33, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_run_with_context") < 0)) __PYX_ERR(29, 33, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_target = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_run_with_context", 1, 1, 1, __pyx_nargs); __PYX_ERR(29, 33, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_with_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_88_run_with_context(__pyx_self, __pyx_v_target);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_88_run_with_context(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_target) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run_with_context", 1);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":50
 * if _contextvars_supported():
 *     import contextvars
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         ctx = contextvars.copy_context()
 *         def _run(*args):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_91_run_with_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_91_run_with_context = {"_run_with_context", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_91_run_with_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_91_run_with_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_target = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run_with_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_target,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_target)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(29, 50, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_run_with_context") < 0)) __PYX_ERR(29, 50, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_target = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_run_with_context", 1, 1, 1, __pyx_nargs); __PYX_ERR(29, 50, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_with_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_90_run_with_context(__pyx_self, __pyx_v_target);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":52
 *     def _run_with_context(target):
 *         ctx = contextvars.copy_context()
 *         def _run(*args):             # <<<<<<<<<<<<<<
 *             ctx.run(target, *args)
 *         return _run
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17_run_with_context_1_run(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17_run_with_context_1_run = {"_run", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17_run_with_context_1_run, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17_run_with_context_1_run(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_run", 0))) return NULL;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17_run_with_context__run(__pyx_self, __pyx_v_args);

  /* function exit code */
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17_run_with_context__run(PyObject *__pyx_self, PyObject *__pyx_v_args) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_run", 1);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":53
 *         ctx = contextvars.copy_context()
 *         def _run(*args):
 *             ctx.run(target, *args)             # <<<<<<<<<<<<<<
 *         return _run
 * else:
 */
  if (unlikely(!__pyx_cur_scope->__pyx_v_ctx)) { __Pyx_RaiseClosureNameError("ctx"); __PYX_ERR(29, 53, __pyx_L1_error) }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_ctx, __pyx_n_s_run); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(!__pyx_cur_scope->__pyx_v_target)) { __Pyx_RaiseClosureNameError("target"); __PYX_ERR(29, 53, __pyx_L1_error) }
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_target);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_target);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_target)) __PYX_ERR(29, 53, __pyx_L1_error);
  __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(29, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":52
 *     def _run_with_context(target):
 *         ctx = contextvars.copy_context()
 *         def _run(*args):             # <<<<<<<<<<<<<<
 *             ctx.run(target, *args)
 *         return _run
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_with_context._run", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":50
 * if _contextvars_supported():
 *     import contextvars
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         ctx = contextvars.copy_context()
 *         def _run(*args):
 */

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_90_run_with_context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_target) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *__pyx_cur_scope;
  PyObject *__pyx_v__run = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_run_with_context", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(29, 50, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_target = __pyx_v_target;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_target);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_target);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":51
 *     import contextvars
 *     def _run_with_context(target):
 *         ctx = contextvars.copy_context()             # <<<<<<<<<<<<<<
 *         def _run(*args):
 *             ctx.run(target, *args)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_contextvars); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_copy_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(29, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":52
 *     def _run_with_context(target):
 *         ctx = contextvars.copy_context()
 *         def _run(*args):             # <<<<<<<<<<<<<<
 *             ctx.run(target, *args)
 *         return _run
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17_run_with_context_1_run, 0, __pyx_n_s_run_with_context_locals__run, ((PyObject*)__pyx_cur_scope), __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__run = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":54
 *         def _run(*args):
 *             ctx.run(target, *args)
 *         return _run             # <<<<<<<<<<<<<<
 * else:
 *     def _run_with_context(target):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v__run);
  __pyx_r = __pyx_v__run;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":50
 * if _contextvars_supported():
 *     import contextvars
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         ctx = contextvars.copy_context()
 *         def _run(*args):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_with_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__run);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":56
 *         return _run
 * else:
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         def _run(*args):
 *             target(*args)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_93_run_with_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_93_run_with_context = {"_run_with_context", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_93_run_with_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_93_run_with_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_target = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run_with_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_target,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_target)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(29, 56, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_run_with_context") < 0)) __PYX_ERR(29, 56, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_target = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_run_with_context", 1, 1, 1, __pyx_nargs); __PYX_ERR(29, 56, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_with_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_92_run_with_context(__pyx_self, __pyx_v_target);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":57
 * else:
 *     def _run_with_context(target):
 *         def _run(*args):             # <<<<<<<<<<<<<<
 *             target(*args)
 *         return _run
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17_run_with_context_3_run(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17_run_with_context_3_run = {"_run", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17_run_with_context_3_run, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17_run_with_context_3_run(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_run", 0))) return NULL;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17_run_with_context_2_run(__pyx_self, __pyx_v_args);

  /* function exit code */
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17_run_with_context_2_run(PyObject *__pyx_self, PyObject *__pyx_v_args) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_run", 1);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":58
 *     def _run_with_context(target):
 *         def _run(*args):
 *             target(*args)             # <<<<<<<<<<<<<<
 *         return _run
 */
  if (unlikely(!__pyx_cur_scope->__pyx_v_target)) { __Pyx_RaiseClosureNameError("target"); __PYX_ERR(29, 58, __pyx_L1_error) }
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_target, __pyx_v_args, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":57
 * else:
 *     def _run_with_context(target):
 *         def _run(*args):             # <<<<<<<<<<<<<<
 *             target(*args)
 *         return _run
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_with_context._run", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":56
 *         return _run
 * else:
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         def _run(*args):
 *             target(*args)
 */

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_92_run_with_context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_target) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *__pyx_cur_scope;
  PyObject *__pyx_v__run = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_run_with_context", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(29, 56, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_target = __pyx_v_target;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_target);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_target);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":57
 * else:
 *     def _run_with_context(target):
 *         def _run(*args):             # <<<<<<<<<<<<<<
 *             target(*args)
 *         return _run
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17_run_with_context_3_run, 0, __pyx_n_s_run_with_context_locals__run, ((PyObject*)__pyx_cur_scope), __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__run = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":59
 *         def _run(*args):
 *             target(*args)
 *         return _run             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v__run);
  __pyx_r = __pyx_v__run;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":56
 *         return _run
 * else:
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         def _run(*args):
 *             target(*args)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_with_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__run);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":38
 * _fork_handler_failed = False
 * 
 * cdef void __prefork() noexcept nogil:             # <<<<<<<<<<<<<<
 *     with gil:
 *         global _fork_handler_failed
 */

static void __pyx_f_4grpc_7_cython_6cygrpc___prefork(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save;
  #endif
  __Pyx_RefNannySetupContext("__prefork", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":39
 * 
 * cdef void __prefork() noexcept nogil:
 *     with gil:             # <<<<<<<<<<<<<<
 *         global _fork_handler_failed
 *         _fork_handler_failed = False
 */
  {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":41
 *     with gil:
 *         global _fork_handler_failed
 *         _fork_handler_failed = False             # <<<<<<<<<<<<<<
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = True
 */
        if (PyDict_SetItem(__pyx_d, __pyx_n_s_fork_handler_failed, Py_False) < 0) __PYX_ERR(1, 41, __pyx_L4_error)

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":42
 *         global _fork_handler_failed
 *         _fork_handler_failed = False
 *         with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *             _fork_state.fork_in_progress = True
 *         if not _fork_state.active_thread_count.await_zero_threads(
 */
        /*with:*/ {
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 42, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_fork_in_progress_condition); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 42, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 42, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 42, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_5 = NULL;
          __pyx_t_6 = 0;
          #if CYTHON_UNPACK_METHODS
          if (likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_6 = 1;
            }
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
            __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 42, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          /*try:*/ {
            {
              __Pyx_PyThreadState_declare
              __Pyx_PyThreadState_assign
              __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
              __Pyx_XGOTREF(__pyx_t_7);
              __Pyx_XGOTREF(__pyx_t_8);
              __Pyx_XGOTREF(__pyx_t_9);
              /*try:*/ {

                /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":43
 *         _fork_handler_failed = False
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = True             # <<<<<<<<<<<<<<
 *         if not _fork_state.active_thread_count.await_zero_threads(
 *                 _AWAIT_THREADS_TIMEOUT_SECONDS):
 */
                __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 43, __pyx_L10_error)
                __Pyx_GOTREF(__pyx_t_2);
                if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_fork_in_progress, Py_True) < 0) __PYX_ERR(1, 43, __pyx_L10_error)
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":42
 *         global _fork_handler_failed
 *         _fork_handler_failed = False
 *         with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *             _fork_state.fork_in_progress = True
 *         if not _fork_state.active_thread_count.await_zero_threads(
 */
              }
              __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
              goto __pyx_L15_try_end;
              __pyx_L10_error:;
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
              /*except:*/ {
                __Pyx_AddTraceback("grpc._cython.cygrpc.__prefork", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_4) < 0) __PYX_ERR(1, 42, __pyx_L12_except_error)
                __Pyx_XGOTREF(__pyx_t_2);
                __Pyx_XGOTREF(__pyx_t_1);
                __Pyx_XGOTREF(__pyx_t_4);
                __pyx_t_5 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 42, __pyx_L12_except_error)
                __Pyx_GOTREF(__pyx_t_5);
                __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
                if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 42, __pyx_L12_except_error)
                __Pyx_GOTREF(__pyx_t_10);
                __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_10);
                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                if (__pyx_t_11 < 0) __PYX_ERR(1, 42, __pyx_L12_except_error)
                __pyx_t_12 = (!__pyx_t_11);
                if (unlikely(__pyx_t_12)) {
                  __Pyx_GIVEREF(__pyx_t_2);
                  __Pyx_GIVEREF(__pyx_t_1);
                  __Pyx_XGIVEREF(__pyx_t_4);
                  __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_4);
                  __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_4 = 0; 
                  __PYX_ERR(1, 42, __pyx_L12_except_error)
                }
                __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                goto __pyx_L11_exception_handled;
              }
              __pyx_L12_except_error:;
              __Pyx_XGIVEREF(__pyx_t_7);
              __Pyx_XGIVEREF(__pyx_t_8);
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
              goto __pyx_L4_error;
              __pyx_L11_exception_handled:;
              __Pyx_XGIVEREF(__pyx_t_7);
              __Pyx_XGIVEREF(__pyx_t_8);
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
              __pyx_L15_try_end:;
            }
          }
          /*finally:*/ {
            /*normal exit:*/{
              if (__pyx_t_3) {
                __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__11, NULL);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 42, __pyx_L4_error)
                __Pyx_GOTREF(__pyx_t_9);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              }
              goto __pyx_L9;
            }
            __pyx_L9:;
          }
          goto __pyx_L19;
          __pyx_L6_error:;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L4_error;
          __pyx_L19:;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":44
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = True
 *         if not _fork_state.active_thread_count.await_zero_threads(             # <<<<<<<<<<<<<<
 *                 _AWAIT_THREADS_TIMEOUT_SECONDS):
 *             _LOGGER.error(
 */
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 44, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_active_thread_count); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 44, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_await_zero_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 44, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":45
 *             _fork_state.fork_in_progress = True
 *         if not _fork_state.active_thread_count.await_zero_threads(
 *                 _AWAIT_THREADS_TIMEOUT_SECONDS):             # <<<<<<<<<<<<<<
 *             _LOGGER.error(
 *                 'Failed to shutdown gRPC Python threads prior to fork. '
 */
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_AWAIT_THREADS_TIMEOUT_SECONDS); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 45, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_1, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_2};
          __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 44, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":44
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = True
 *         if not _fork_state.active_thread_count.await_zero_threads(             # <<<<<<<<<<<<<<
 *                 _AWAIT_THREADS_TIMEOUT_SECONDS):
 *             _LOGGER.error(
 */
        __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(1, 44, __pyx_L4_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_11 = (!__pyx_t_12);
        if (__pyx_t_11) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":46
 *         if not _fork_state.active_thread_count.await_zero_threads(
 *                 _AWAIT_THREADS_TIMEOUT_SECONDS):
 *             _LOGGER.error(             # <<<<<<<<<<<<<<
 *                 'Failed to shutdown gRPC Python threads prior to fork. '
 *                 'Behavior after fork will be undefined.')
 */
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 46, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 46, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = NULL;
          __pyx_t_6 = 0;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_1)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_1);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
              __pyx_t_6 = 1;
            }
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_kp_s_Failed_to_shutdown_gRPC_Python_t};
            __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 46, __pyx_L4_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":49
 *                 'Failed to shutdown gRPC Python threads prior to fork. '
 *                 'Behavior after fork will be undefined.')
 *             _fork_handler_failed = True             # <<<<<<<<<<<<<<
 * 
 * 
 */
          if (PyDict_SetItem(__pyx_d, __pyx_n_s_fork_handler_failed, Py_True) < 0) __PYX_ERR(1, 49, __pyx_L4_error)

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":44
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = True
 *         if not _fork_state.active_thread_count.await_zero_threads(             # <<<<<<<<<<<<<<
 *                 _AWAIT_THREADS_TIMEOUT_SECONDS):
 *             _LOGGER.error(
 */
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":39
 * 
 * cdef void __prefork() noexcept nogil:
 *     with gil:             # <<<<<<<<<<<<<<
 *         global _fork_handler_failed
 *         _fork_handler_failed = False
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          #endif
          goto __pyx_L5;
        }
        __pyx_L4_error: {
          #ifdef WITH_THREAD
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          #endif
          goto __pyx_L1_error;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":38
 * _fork_handler_failed = False
 * 
 * cdef void __prefork() noexcept nogil:             # <<<<<<<<<<<<<<
 *     with gil:
 *         global _fork_handler_failed
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  #ifdef WITH_THREAD
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.__prefork", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  __pyx_L0:;
  __Pyx_RefNannyFinishContextNogil()
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":52
 * 
 * 
 * cdef void __postfork_parent() noexcept nogil:             # <<<<<<<<<<<<<<
 *     with gil:
 *         with _fork_state.fork_in_progress_condition:
 */

static void __pyx_f_4grpc_7_cython_6cygrpc___postfork_parent(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save;
  #endif
  __Pyx_RefNannySetupContext("__postfork_parent", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":53
 * 
 * cdef void __postfork_parent() noexcept nogil:
 *     with gil:             # <<<<<<<<<<<<<<
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = False
 */
  {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":54
 * cdef void __postfork_parent() noexcept nogil:
 *     with gil:
 *         with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *             _fork_state.fork_in_progress = False
 *             _fork_state.fork_in_progress_condition.notify_all()
 */
        /*with:*/ {
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 54, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_fork_in_progress_condition); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 54, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 54, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 54, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_5 = NULL;
          __pyx_t_6 = 0;
          #if CYTHON_UNPACK_METHODS
          if (likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_6 = 1;
            }
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
            __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 54, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          /*try:*/ {
            {
              __Pyx_PyThreadState_declare
              __Pyx_PyThreadState_assign
              __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
              __Pyx_XGOTREF(__pyx_t_7);
              __Pyx_XGOTREF(__pyx_t_8);
              __Pyx_XGOTREF(__pyx_t_9);
              /*try:*/ {

                /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":55
 *     with gil:
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = False             # <<<<<<<<<<<<<<
 *             _fork_state.fork_in_progress_condition.notify_all()
 * 
 */
                __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 55, __pyx_L10_error)
                __Pyx_GOTREF(__pyx_t_2);
                if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_fork_in_progress, Py_False) < 0) __PYX_ERR(1, 55, __pyx_L10_error)
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":56
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = False
 *             _fork_state.fork_in_progress_condition.notify_all()             # <<<<<<<<<<<<<<
 * 
 * 
 */
                __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 56, __pyx_L10_error)
                __Pyx_GOTREF(__pyx_t_1);
                __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_fork_in_progress_condition); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 56, __pyx_L10_error)
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_notify_all); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 56, __pyx_L10_error)
                __Pyx_GOTREF(__pyx_t_1);
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                __pyx_t_4 = NULL;
                __pyx_t_6 = 0;
                #if CYTHON_UNPACK_METHODS
                if (likely(PyMethod_Check(__pyx_t_1))) {
                  __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
                  if (likely(__pyx_t_4)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                    __Pyx_INCREF(__pyx_t_4);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_1, function);
                    __pyx_t_6 = 1;
                  }
                }
                #endif
                {
                  PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
                  __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
                  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                  if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 56, __pyx_L10_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                }
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":54
 * cdef void __postfork_parent() noexcept nogil:
 *     with gil:
 *         with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *             _fork_state.fork_in_progress = False
 *             _fork_state.fork_in_progress_condition.notify_all()
 */
              }
              __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
              goto __pyx_L15_try_end;
              __pyx_L10_error:;
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
              /*except:*/ {
                __Pyx_AddTraceback("grpc._cython.cygrpc.__postfork_parent", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_4) < 0) __PYX_ERR(1, 54, __pyx_L12_except_error)
                __Pyx_XGOTREF(__pyx_t_2);
                __Pyx_XGOTREF(__pyx_t_1);
                __Pyx_XGOTREF(__pyx_t_4);
                __pyx_t_5 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 54, __pyx_L12_except_error)
                __Pyx_GOTREF(__pyx_t_5);
                __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
                if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 54, __pyx_L12_except_error)
                __Pyx_GOTREF(__pyx_t_10);
                __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_10);
                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                if (__pyx_t_11 < 0) __PYX_ERR(1, 54, __pyx_L12_except_error)
                __pyx_t_12 = (!__pyx_t_11);
                if (unlikely(__pyx_t_12)) {
                  __Pyx_GIVEREF(__pyx_t_2);
                  __Pyx_GIVEREF(__pyx_t_1);
                  __Pyx_XGIVEREF(__pyx_t_4);
                  __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_4);
                  __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_4 = 0; 
                  __PYX_ERR(1, 54, __pyx_L12_except_error)
                }
                __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                goto __pyx_L11_exception_handled;
              }
              __pyx_L12_except_error:;
              __Pyx_XGIVEREF(__pyx_t_7);
              __Pyx_XGIVEREF(__pyx_t_8);
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
              goto __pyx_L4_error;
              __pyx_L11_exception_handled:;
              __Pyx_XGIVEREF(__pyx_t_7);
              __Pyx_XGIVEREF(__pyx_t_8);
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
              __pyx_L15_try_end:;
            }
          }
          /*finally:*/ {
            /*normal exit:*/{
              if (__pyx_t_3) {
                __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__11, NULL);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 54, __pyx_L4_error)
                __Pyx_GOTREF(__pyx_t_9);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              }
              goto __pyx_L9;
            }
            __pyx_L9:;
          }
          goto __pyx_L19;
          __pyx_L6_error:;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L4_error;
          __pyx_L19:;
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":53
 * 
 * cdef void __postfork_parent() noexcept nogil:
 *     with gil:             # <<<<<<<<<<<<<<
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = False
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          #endif
          goto __pyx_L5;
        }
        __pyx_L4_error: {
          #ifdef WITH_THREAD
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          #endif
          goto __pyx_L1_error;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":52
 * 
 * 
 * cdef void __postfork_parent() noexcept nogil:             # <<<<<<<<<<<<<<
 *     with gil:
 *         with _fork_state.fork_in_progress_condition:
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  #ifdef WITH_THREAD
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.__postfork_parent", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  __pyx_L0:;
  __Pyx_RefNannyFinishContextNogil()
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":59
 * 
 * 
 * cdef void __postfork_child() noexcept nogil:             # <<<<<<<<<<<<<<
 *     with gil:
 *         try:
 */

static void __pyx_f_4grpc_7_cython_6cygrpc___postfork_child(void) {
  PyObject *__pyx_v_state_to_reset = NULL;
  PyObject *__pyx_v_channel = NULL;
  PyObject *__pyx_v_wait_ms = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  unsigned int __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save;
  #endif
  __Pyx_RefNannySetupContext("__postfork_child", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":60
 * 
 * cdef void __postfork_child() noexcept nogil:
 *     with gil:             # <<<<<<<<<<<<<<
 *         try:
 *             if _fork_handler_failed:
 */
  {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":61
 * cdef void __postfork_child() noexcept nogil:
 *     with gil:
 *         try:             # <<<<<<<<<<<<<<
 *             if _fork_handler_failed:
 *                 return
 */
        {
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_3);
          /*try:*/ {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":62
 *     with gil:
 *         try:
 *             if _fork_handler_failed:             # <<<<<<<<<<<<<<
 *                 return
 *             # Thread could be holding the fork_in_progress_condition inside of
 */
            __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fork_handler_failed); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 62, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(1, 62, __pyx_L6_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (__pyx_t_5) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":63
 *         try:
 *             if _fork_handler_failed:
 *                 return             # <<<<<<<<<<<<<<
 *             # Thread could be holding the fork_in_progress_condition inside of
 *             # block_if_fork_in_progress() when fork occurs. Reset the lock here.
 */
              goto __pyx_L10_try_return;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":62
 *     with gil:
 *         try:
 *             if _fork_handler_failed:             # <<<<<<<<<<<<<<
 *                 return
 *             # Thread could be holding the fork_in_progress_condition inside of
 */
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":66
 *             # Thread could be holding the fork_in_progress_condition inside of
 *             # block_if_fork_in_progress() when fork occurs. Reset the lock here.
 *             _fork_state.fork_in_progress_condition = threading.Condition()             # <<<<<<<<<<<<<<
 *             # A thread in return_from_user_request_generator() may hold this lock
 *             # when fork occurs.
 */
            __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_threading); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 66, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_Condition); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 66, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = NULL;
            __pyx_t_8 = 0;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_7))) {
              __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
              if (likely(__pyx_t_6)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
                __Pyx_INCREF(__pyx_t_6);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_7, function);
                __pyx_t_8 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
              __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 66, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            }
            __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 66, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_7);
            if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_fork_in_progress_condition, __pyx_t_4) < 0) __PYX_ERR(1, 66, __pyx_L6_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":69
 *             # A thread in return_from_user_request_generator() may hold this lock
 *             # when fork occurs.
 *             _fork_state.active_thread_count = _ActiveThreadCount()             # <<<<<<<<<<<<<<
 *             for state_to_reset in _fork_state.postfork_states_to_reset:
 *                 state_to_reset.reset_postfork_child()
 */
            __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ActiveThreadCount); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 69, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_6 = NULL;
            __pyx_t_8 = 0;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_4))) {
              __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
              if (likely(__pyx_t_6)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
                __Pyx_INCREF(__pyx_t_6);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_4, function);
                __pyx_t_8 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
              __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 69, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
            __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 69, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (__Pyx_PyObject_SetAttrStr(__pyx_t_4, __pyx_n_s_active_thread_count, __pyx_t_7) < 0) __PYX_ERR(1, 69, __pyx_L6_error)
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":70
 *             # when fork occurs.
 *             _fork_state.active_thread_count = _ActiveThreadCount()
 *             for state_to_reset in _fork_state.postfork_states_to_reset:             # <<<<<<<<<<<<<<
 *                 state_to_reset.reset_postfork_child()
 *             _fork_state.postfork_states_to_reset = []
 */
            __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 70, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_postfork_states_to_reset); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 70, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
              __pyx_t_4 = __pyx_t_7; __Pyx_INCREF(__pyx_t_4);
              __pyx_t_9 = 0;
              __pyx_t_10 = NULL;
            } else {
              __pyx_t_9 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 70, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_4);
              __pyx_t_10 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 70, __pyx_L6_error)
            }
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            for (;;) {
              if (likely(!__pyx_t_10)) {
                if (likely(PyList_CheckExact(__pyx_t_4))) {
                  {
                    Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
                    #if !CYTHON_ASSUME_SAFE_MACROS
                    if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 70, __pyx_L6_error)
                    #endif
                    if (__pyx_t_9 >= __pyx_temp) break;
                  }
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely((0 < 0))) __PYX_ERR(1, 70, __pyx_L6_error)
                  #else
                  __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 70, __pyx_L6_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  #endif
                } else {
                  {
                    Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
                    #if !CYTHON_ASSUME_SAFE_MACROS
                    if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 70, __pyx_L6_error)
                    #endif
                    if (__pyx_t_9 >= __pyx_temp) break;
                  }
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely((0 < 0))) __PYX_ERR(1, 70, __pyx_L6_error)
                  #else
                  __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 70, __pyx_L6_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  #endif
                }
              } else {
                __pyx_t_7 = __pyx_t_10(__pyx_t_4);
                if (unlikely(!__pyx_t_7)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(1, 70, __pyx_L6_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_7);
              }
              __Pyx_XDECREF_SET(__pyx_v_state_to_reset, __pyx_t_7);
              __pyx_t_7 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":71
 *             _fork_state.active_thread_count = _ActiveThreadCount()
 *             for state_to_reset in _fork_state.postfork_states_to_reset:
 *                 state_to_reset.reset_postfork_child()             # <<<<<<<<<<<<<<
 *             _fork_state.postfork_states_to_reset = []
 *             _fork_state.fork_epoch += 1
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_state_to_reset, __pyx_n_s_reset_postfork_child); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 71, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_11 = NULL;
              __pyx_t_8 = 0;
              #if CYTHON_UNPACK_METHODS
              if (likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_11)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_11);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_8 = 1;
                }
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
                __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
                __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 71, __pyx_L6_error)
                __Pyx_GOTREF(__pyx_t_7);
                __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              }
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":70
 *             # when fork occurs.
 *             _fork_state.active_thread_count = _ActiveThreadCount()
 *             for state_to_reset in _fork_state.postfork_states_to_reset:             # <<<<<<<<<<<<<<
 *                 state_to_reset.reset_postfork_child()
 *             _fork_state.postfork_states_to_reset = []
 */
            }
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":72
 *             for state_to_reset in _fork_state.postfork_states_to_reset:
 *                 state_to_reset.reset_postfork_child()
 *             _fork_state.postfork_states_to_reset = []             # <<<<<<<<<<<<<<
 *             _fork_state.fork_epoch += 1
 *             for channel in _fork_state.channels:
 */
            __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 72, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 72, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_7);
            if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_postfork_states_to_reset, __pyx_t_4) < 0) __PYX_ERR(1, 72, __pyx_L6_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":73
 *                 state_to_reset.reset_postfork_child()
 *             _fork_state.postfork_states_to_reset = []
 *             _fork_state.fork_epoch += 1             # <<<<<<<<<<<<<<
 *             for channel in _fork_state.channels:
 *                 channel._close_on_fork()
 */
            __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 73, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_fork_epoch); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 73, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 73, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 73, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (__Pyx_PyObject_SetAttrStr(__pyx_t_4, __pyx_n_s_fork_epoch, __pyx_t_7) < 0) __PYX_ERR(1, 73, __pyx_L6_error)
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":74
 *             _fork_state.postfork_states_to_reset = []
 *             _fork_state.fork_epoch += 1
 *             for channel in _fork_state.channels:             # <<<<<<<<<<<<<<
 *                 channel._close_on_fork()
 *             with _fork_state.fork_in_progress_condition:
 */
            __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 74, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_channels); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 74, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
              __pyx_t_4 = __pyx_t_7; __Pyx_INCREF(__pyx_t_4);
              __pyx_t_9 = 0;
              __pyx_t_10 = NULL;
            } else {
              __pyx_t_9 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 74, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_4);
              __pyx_t_10 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 74, __pyx_L6_error)
            }
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            for (;;) {
              if (likely(!__pyx_t_10)) {
                if (likely(PyList_CheckExact(__pyx_t_4))) {
                  {
                    Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
                    #if !CYTHON_ASSUME_SAFE_MACROS
                    if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 74, __pyx_L6_error)
                    #endif
                    if (__pyx_t_9 >= __pyx_temp) break;
                  }
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely((0 < 0))) __PYX_ERR(1, 74, __pyx_L6_error)
                  #else
                  __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 74, __pyx_L6_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  #endif
                } else {
                  {
                    Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
                    #if !CYTHON_ASSUME_SAFE_MACROS
                    if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 74, __pyx_L6_error)
                    #endif
                    if (__pyx_t_9 >= __pyx_temp) break;
                  }
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely((0 < 0))) __PYX_ERR(1, 74, __pyx_L6_error)
                  #else
                  __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 74, __pyx_L6_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  #endif
                }
              } else {
                __pyx_t_7 = __pyx_t_10(__pyx_t_4);
                if (unlikely(!__pyx_t_7)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(1, 74, __pyx_L6_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_7);
              }
              __Pyx_XDECREF_SET(__pyx_v_channel, __pyx_t_7);
              __pyx_t_7 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":75
 *             _fork_state.fork_epoch += 1
 *             for channel in _fork_state.channels:
 *                 channel._close_on_fork()             # <<<<<<<<<<<<<<
 *             with _fork_state.fork_in_progress_condition:
 *                 _fork_state.fork_in_progress = False
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_channel, __pyx_n_s_close_on_fork); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 75, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_11 = NULL;
              __pyx_t_8 = 0;
              #if CYTHON_UNPACK_METHODS
              if (likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_11)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_11);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_8 = 1;
                }
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
                __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
                __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 75, __pyx_L6_error)
                __Pyx_GOTREF(__pyx_t_7);
                __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              }
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":74
 *             _fork_state.postfork_states_to_reset = []
 *             _fork_state.fork_epoch += 1
 *             for channel in _fork_state.channels:             # <<<<<<<<<<<<<<
 *                 channel._close_on_fork()
 *             with _fork_state.fork_in_progress_condition:
 */
            }
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":76
 *             for channel in _fork_state.channels:
 *                 channel._close_on_fork()
 *             with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *                 _fork_state.fork_in_progress = False
 *         except:
 */
            /*with:*/ {
              __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 76, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_4);
              __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_fork_in_progress_condition); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 76, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __pyx_t_12 = __Pyx_PyObject_LookupSpecial(__pyx_t_7, __pyx_n_s_exit); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 76, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_7, __pyx_n_s_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 76, __pyx_L19_error)
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_11 = NULL;
              __pyx_t_8 = 0;
              #if CYTHON_UNPACK_METHODS
              if (likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_11)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_11);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_8 = 1;
                }
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
                __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
                __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 76, __pyx_L19_error)
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              /*try:*/ {
                {
                  __Pyx_PyThreadState_declare
                  __Pyx_PyThreadState_assign
                  __Pyx_ExceptionSave(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15);
                  __Pyx_XGOTREF(__pyx_t_13);
                  __Pyx_XGOTREF(__pyx_t_14);
                  __Pyx_XGOTREF(__pyx_t_15);
                  /*try:*/ {

                    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":77
 *                 channel._close_on_fork()
 *             with _fork_state.fork_in_progress_condition:
 *                 _fork_state.fork_in_progress = False             # <<<<<<<<<<<<<<
 *         except:
 *             _LOGGER.error('Exiting child due to raised exception')
 */
                    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 77, __pyx_L23_error)
                    __Pyx_GOTREF(__pyx_t_7);
                    if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_fork_in_progress, Py_False) < 0) __PYX_ERR(1, 77, __pyx_L23_error)
                    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

                    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":76
 *             for channel in _fork_state.channels:
 *                 channel._close_on_fork()
 *             with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *                 _fork_state.fork_in_progress = False
 *         except:
 */
                  }
                  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                  __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
                  goto __pyx_L28_try_end;
                  __pyx_L23_error:;
                  __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
                  /*except:*/ {
                    __Pyx_AddTraceback("grpc._cython.cygrpc.__postfork_child", __pyx_clineno, __pyx_lineno, __pyx_filename);
                    if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_4, &__pyx_t_6) < 0) __PYX_ERR(1, 76, __pyx_L25_except_error)
                    __Pyx_XGOTREF(__pyx_t_7);
                    __Pyx_XGOTREF(__pyx_t_4);
                    __Pyx_XGOTREF(__pyx_t_6);
                    __pyx_t_11 = PyTuple_Pack(3, __pyx_t_7, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 76, __pyx_L25_except_error)
                    __Pyx_GOTREF(__pyx_t_11);
                    __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_11, NULL);
                    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                    if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 76, __pyx_L25_except_error)
                    __Pyx_GOTREF(__pyx_t_16);
                    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_16);
                    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                    if (__pyx_t_5 < 0) __PYX_ERR(1, 76, __pyx_L25_except_error)
                    __pyx_t_17 = (!__pyx_t_5);
                    if (unlikely(__pyx_t_17)) {
                      __Pyx_GIVEREF(__pyx_t_7);
                      __Pyx_GIVEREF(__pyx_t_4);
                      __Pyx_XGIVEREF(__pyx_t_6);
                      __Pyx_ErrRestoreWithState(__pyx_t_7, __pyx_t_4, __pyx_t_6);
                      __pyx_t_7 = 0; __pyx_t_4 = 0; __pyx_t_6 = 0; 
                      __PYX_ERR(1, 76, __pyx_L25_except_error)
                    }
                    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
                    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                    goto __pyx_L24_exception_handled;
                  }
                  __pyx_L25_except_error:;
                  __Pyx_XGIVEREF(__pyx_t_13);
                  __Pyx_XGIVEREF(__pyx_t_14);
                  __Pyx_XGIVEREF(__pyx_t_15);
                  __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15);
                  goto __pyx_L6_error;
                  __pyx_L24_exception_handled:;
                  __Pyx_XGIVEREF(__pyx_t_13);
                  __Pyx_XGIVEREF(__pyx_t_14);
                  __Pyx_XGIVEREF(__pyx_t_15);
                  __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15);
                  __pyx_L28_try_end:;
                }
              }
              /*finally:*/ {
                /*normal exit:*/{
                  if (__pyx_t_12) {
                    __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_tuple__11, NULL);
                    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                    if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 76, __pyx_L6_error)
                    __Pyx_GOTREF(__pyx_t_15);
                    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
                  }
                  goto __pyx_L22;
                }
                __pyx_L22:;
              }
              goto __pyx_L32;
              __pyx_L19_error:;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              goto __pyx_L6_error;
              __pyx_L32:;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":61
 * cdef void __postfork_child() noexcept nogil:
 *     with gil:
 *         try:             # <<<<<<<<<<<<<<
 *             if _fork_handler_failed:
 *                 return
 */
          }
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L11_try_end;
          __pyx_L6_error:;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":78
 *             with _fork_state.fork_in_progress_condition:
 *                 _fork_state.fork_in_progress = False
 *         except:             # <<<<<<<<<<<<<<
 *             _LOGGER.error('Exiting child due to raised exception')
 *             _LOGGER.error(sys.exc_info()[0])
 */
          /*except:*/ {
            __Pyx_AddTraceback("grpc._cython.cygrpc.__postfork_child", __pyx_clineno, __pyx_lineno, __pyx_filename);
            if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_4, &__pyx_t_7) < 0) __PYX_ERR(1, 78, __pyx_L8_except_error)
            __Pyx_XGOTREF(__pyx_t_6);
            __Pyx_XGOTREF(__pyx_t_4);
            __Pyx_XGOTREF(__pyx_t_7);

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":79
 *                 _fork_state.fork_in_progress = False
 *         except:
 *             _LOGGER.error('Exiting child due to raised exception')             # <<<<<<<<<<<<<<
 *             _LOGGER.error(sys.exc_info()[0])
 *             os._exit(os.EX_USAGE)
 */
            __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 79, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_error); if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 79, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_19);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_18 = NULL;
            __pyx_t_8 = 0;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_19))) {
              __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_19);
              if (likely(__pyx_t_18)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
                __Pyx_INCREF(__pyx_t_18);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_19, function);
                __pyx_t_8 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_18, __pyx_kp_s_Exiting_child_due_to_raised_exce};
              __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_19, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
              __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
              if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 79, __pyx_L8_except_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            }
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":80
 *         except:
 *             _LOGGER.error('Exiting child due to raised exception')
 *             _LOGGER.error(sys.exc_info()[0])             # <<<<<<<<<<<<<<
 *             os._exit(os.EX_USAGE)
 *         # Give ~2s to shutdown asynchronously.
 */
            __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 80, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_19);
            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_n_s_error); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 80, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_n_s_sys); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 80, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_20);
            __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_n_s_exc_info); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 80, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_21);
            __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
            __pyx_t_20 = NULL;
            __pyx_t_8 = 0;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_21))) {
              __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_21);
              if (likely(__pyx_t_20)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
                __Pyx_INCREF(__pyx_t_20);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_21, function);
                __pyx_t_8 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_20, NULL};
              __pyx_t_19 = __Pyx_PyObject_FastCall(__pyx_t_21, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
              __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
              if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 80, __pyx_L8_except_error)
              __Pyx_GOTREF(__pyx_t_19);
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            }
            __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_19, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 80, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_21);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __pyx_t_19 = NULL;
            __pyx_t_8 = 0;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_18))) {
              __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_18);
              if (likely(__pyx_t_19)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
                __Pyx_INCREF(__pyx_t_19);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_18, function);
                __pyx_t_8 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_19, __pyx_t_21};
              __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_18, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
              __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 80, __pyx_L8_except_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            }
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":81
 *             _LOGGER.error('Exiting child due to raised exception')
 *             _LOGGER.error(sys.exc_info()[0])
 *             os._exit(os.EX_USAGE)             # <<<<<<<<<<<<<<
 *         # Give ~2s to shutdown asynchronously.
 *         wait_ms = 10
 */
            __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_os); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 81, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_exit_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 81, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_21);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_os); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 81, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_EX_USAGE); if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 81, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_19);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_18 = NULL;
            __pyx_t_8 = 0;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_21))) {
              __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_21);
              if (likely(__pyx_t_18)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
                __Pyx_INCREF(__pyx_t_18);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_21, function);
                __pyx_t_8 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_18, __pyx_t_19};
              __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_21, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
              __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 81, __pyx_L8_except_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            }
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            goto __pyx_L7_exception_handled;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":61
 * cdef void __postfork_child() noexcept nogil:
 *     with gil:
 *         try:             # <<<<<<<<<<<<<<
 *             if _fork_handler_failed:
 *                 return
 */
          __pyx_L8_except_error:;
          __Pyx_XGIVEREF(__pyx_t_1);
          __Pyx_XGIVEREF(__pyx_t_2);
          __Pyx_XGIVEREF(__pyx_t_3);
          __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
          goto __pyx_L4_error;
          __pyx_L10_try_return:;
          __Pyx_XGIVEREF(__pyx_t_1);
          __Pyx_XGIVEREF(__pyx_t_2);
          __Pyx_XGIVEREF(__pyx_t_3);
          __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
          goto __pyx_L3_return;
          __pyx_L7_exception_handled:;
          __Pyx_XGIVEREF(__pyx_t_1);
          __Pyx_XGIVEREF(__pyx_t_2);
          __Pyx_XGIVEREF(__pyx_t_3);
          __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
          __pyx_L11_try_end:;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":83
 *             os._exit(os.EX_USAGE)
 *         # Give ~2s to shutdown asynchronously.
 *         wait_ms = 10             # <<<<<<<<<<<<<<
 *         while wait_ms < 1500:
 *             if grpc_is_initialized() == 0:
 */
        __Pyx_INCREF(__pyx_int_10);
        __pyx_v_wait_ms = __pyx_int_10;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":84
 *         # Give ~2s to shutdown asynchronously.
 *         wait_ms = 10
 *         while wait_ms < 1500:             # <<<<<<<<<<<<<<
 *             if grpc_is_initialized() == 0:
 *                 return
 */
        while (1) {
          __pyx_t_7 = PyObject_RichCompare(__pyx_v_wait_ms, __pyx_int_1500, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 84, __pyx_L4_error)
          __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_17 < 0))) __PYX_ERR(1, 84, __pyx_L4_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (!__pyx_t_17) break;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":85
 *         wait_ms = 10
 *         while wait_ms < 1500:
 *             if grpc_is_initialized() == 0:             # <<<<<<<<<<<<<<
 *                 return
 *             time.sleep(wait_ms / 1000)
 */
          __pyx_t_17 = (grpc_is_initialized() == 0);
          if (__pyx_t_17) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":86
 *         while wait_ms < 1500:
 *             if grpc_is_initialized() == 0:
 *                 return             # <<<<<<<<<<<<<<
 *             time.sleep(wait_ms / 1000)
 *             wait_ms = wait_ms * 2
 */
            goto __pyx_L3_return;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":85
 *         wait_ms = 10
 *         while wait_ms < 1500:
 *             if grpc_is_initialized() == 0:             # <<<<<<<<<<<<<<
 *                 return
 *             time.sleep(wait_ms / 1000)
 */
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":87
 *             if grpc_is_initialized() == 0:
 *                 return
 *             time.sleep(wait_ms / 1000)             # <<<<<<<<<<<<<<
 *             wait_ms = wait_ms * 2
 *         _LOGGER.error('Failed to shutdown gRPC Core after fork()')
 */
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_time); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 87, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sleep); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 87, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyInt_TrueDivideObjC(__pyx_v_wait_ms, __pyx_int_1000, 0x3E8, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 87, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_11 = NULL;
          __pyx_t_8 = 0;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_6))) {
            __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
            if (likely(__pyx_t_11)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
              __Pyx_INCREF(__pyx_t_11);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_6, function);
              __pyx_t_8 = 1;
            }
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_4};
            __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 87, __pyx_L4_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          }
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":88
 *                 return
 *             time.sleep(wait_ms / 1000)
 *             wait_ms = wait_ms * 2             # <<<<<<<<<<<<<<
 *         _LOGGER.error('Failed to shutdown gRPC Core after fork()')
 *         os._exit(os.EX_USAGE)
 */
          __pyx_t_7 = __Pyx_PyInt_MultiplyObjC(__pyx_v_wait_ms, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 88, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF_SET(__pyx_v_wait_ms, __pyx_t_7);
          __pyx_t_7 = 0;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":89
 *             time.sleep(wait_ms / 1000)
 *             wait_ms = wait_ms * 2
 *         _LOGGER.error('Failed to shutdown gRPC Core after fork()')             # <<<<<<<<<<<<<<
 *         os._exit(os.EX_USAGE)
 * 
 */
        __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 89, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 89, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = NULL;
        __pyx_t_8 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_8 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_kp_s_Failed_to_shutdown_gRPC_Core_aft};
          __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 89, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":90
 *             wait_ms = wait_ms * 2
 *         _LOGGER.error('Failed to shutdown gRPC Core after fork()')
 *         os._exit(os.EX_USAGE)             # <<<<<<<<<<<<<<
 * 
 * 
 */
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 90, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_exit_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 90, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 90, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_EX_USAGE); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 90, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = NULL;
        __pyx_t_8 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
            __pyx_t_8 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_11};
          __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 90, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":60
 * 
 * cdef void __postfork_child() noexcept nogil:
 *     with gil:             # <<<<<<<<<<<<<<
 *         try:
 *             if _fork_handler_failed:
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          #endif
          goto __pyx_L5;
        }
        __pyx_L3_return: {
          #ifdef WITH_THREAD
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          #endif
          goto __pyx_L0;
        }
        __pyx_L4_error: {
          #ifdef WITH_THREAD
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          #endif
          goto __pyx_L1_error;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":59
 * 
 * 
 * cdef void __postfork_child() noexcept nogil:             # <<<<<<<<<<<<<<
 *     with gil:
 *         try:
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  #ifdef WITH_THREAD
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.__postfork_child", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  __pyx_L0:;
  #ifdef WITH_THREAD
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_XDECREF(__pyx_v_state_to_reset);
  __Pyx_XDECREF(__pyx_v_channel);
  __Pyx_XDECREF(__pyx_v_wait_ms);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":93
 * 
 * 
 * def fork_handlers_and_grpc_init():             # <<<<<<<<<<<<<<
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_95fork_handlers_and_grpc_init(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_95fork_handlers_and_grpc_init = {"fork_handlers_and_grpc_init", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_95fork_handlers_and_grpc_init, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_95fork_handlers_and_grpc_init(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fork_handlers_and_grpc_init (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_94fork_handlers_and_grpc_init(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_94fork_handlers_and_grpc_init(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  unsigned int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fork_handlers_and_grpc_init", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":94
 * 
 * def fork_handlers_and_grpc_init():
 *     grpc_init()             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_handler_registered_lock:
 */
  grpc_init();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":95
 * def fork_handlers_and_grpc_init():
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         with _fork_state.fork_handler_registered_lock:
 *             if not _fork_state.fork_handler_registered:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 95, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":96
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_handler_registered_lock:             # <<<<<<<<<<<<<<
 *             if not _fork_state.fork_handler_registered:
 *                 os.register_at_fork(before=__prefork,
 */
    /*with:*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 96, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_fork_handler_registered_lock); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 96, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 96, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 96, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      __pyx_t_7 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_7 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 96, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      /*try:*/ {
        {
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_8);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_10);
          /*try:*/ {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":97
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_handler_registered_lock:
 *             if not _fork_state.fork_handler_registered:             # <<<<<<<<<<<<<<
 *                 os.register_at_fork(before=__prefork,
 *                                     after_in_parent=__postfork_parent,
 */
            __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 97, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_fork_handler_registered); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 97, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 97, __pyx_L8_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_11 = (!__pyx_t_2);
            if (__pyx_t_11) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":98
 *         with _fork_state.fork_handler_registered_lock:
 *             if not _fork_state.fork_handler_registered:
 *                 os.register_at_fork(before=__prefork,             # <<<<<<<<<<<<<<
 *                                     after_in_parent=__postfork_parent,
 *                                     after_in_child=__postfork_child)
 */
              __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 98, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_register_at_fork); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 98, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 98, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_5 = __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(__pyx_f_4grpc_7_cython_6cygrpc___prefork); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 98, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_5);
              if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_before, __pyx_t_5) < 0) __PYX_ERR(1, 98, __pyx_L8_error)
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":99
 *             if not _fork_state.fork_handler_registered:
 *                 os.register_at_fork(before=__prefork,
 *                                     after_in_parent=__postfork_parent,             # <<<<<<<<<<<<<<
 *                                     after_in_child=__postfork_child)
 *                 _fork_state.fork_handler_registered = True
 */
              __pyx_t_5 = __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(__pyx_f_4grpc_7_cython_6cygrpc___postfork_parent); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 99, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_5);
              if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_after_in_parent, __pyx_t_5) < 0) __PYX_ERR(1, 98, __pyx_L8_error)
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":100
 *                 os.register_at_fork(before=__prefork,
 *                                     after_in_parent=__postfork_parent,
 *                                     after_in_child=__postfork_child)             # <<<<<<<<<<<<<<
 *                 _fork_state.fork_handler_registered = True
 * 
 */
              __pyx_t_5 = __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(__pyx_f_4grpc_7_cython_6cygrpc___postfork_child); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 100, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_5);
              if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_after_in_child, __pyx_t_5) < 0) __PYX_ERR(1, 98, __pyx_L8_error)
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":98
 *         with _fork_state.fork_handler_registered_lock:
 *             if not _fork_state.fork_handler_registered:
 *                 os.register_at_fork(before=__prefork,             # <<<<<<<<<<<<<<
 *                                     after_in_parent=__postfork_parent,
 *                                     after_in_child=__postfork_child)
 */
              __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 98, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_5);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":101
 *                                     after_in_parent=__postfork_parent,
 *                                     after_in_child=__postfork_child)
 *                 _fork_state.fork_handler_registered = True             # <<<<<<<<<<<<<<
 * 
 * 
 */
              __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 101, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_5);
              if (__Pyx_PyObject_SetAttrStr(__pyx_t_5, __pyx_n_s_fork_handler_registered, Py_True) < 0) __PYX_ERR(1, 101, __pyx_L8_error)
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":97
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_handler_registered_lock:
 *             if not _fork_state.fork_handler_registered:             # <<<<<<<<<<<<<<
 *                 os.register_at_fork(before=__prefork,
 *                                     after_in_parent=__postfork_parent,
 */
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":96
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_handler_registered_lock:             # <<<<<<<<<<<<<<
 *             if not _fork_state.fork_handler_registered:
 *                 os.register_at_fork(before=__prefork,
 */
          }
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          goto __pyx_L13_try_end;
          __pyx_L8_error:;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          /*except:*/ {
            __Pyx_AddTraceback("grpc._cython.cygrpc.fork_handlers_and_grpc_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
            if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(1, 96, __pyx_L10_except_error)
            __Pyx_XGOTREF(__pyx_t_5);
            __Pyx_XGOTREF(__pyx_t_1);
            __Pyx_XGOTREF(__pyx_t_3);
            __pyx_t_6 = PyTuple_Pack(3, __pyx_t_5, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 96, __pyx_L10_except_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 96, __pyx_L10_except_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            if (__pyx_t_11 < 0) __PYX_ERR(1, 96, __pyx_L10_except_error)
            __pyx_t_2 = (!__pyx_t_11);
            if (unlikely(__pyx_t_2)) {
              __Pyx_GIVEREF(__pyx_t_5);
              __Pyx_GIVEREF(__pyx_t_1);
              __Pyx_XGIVEREF(__pyx_t_3);
              __Pyx_ErrRestoreWithState(__pyx_t_5, __pyx_t_1, __pyx_t_3);
              __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0; 
              __PYX_ERR(1, 96, __pyx_L10_except_error)
            }
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            goto __pyx_L9_exception_handled;
          }
          __pyx_L10_except_error:;
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
          goto __pyx_L1_error;
          __pyx_L9_exception_handled:;
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
          __pyx_L13_try_end:;
        }
      }
      /*finally:*/ {
        /*normal exit:*/{
          if (__pyx_t_4) {
            __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__11, NULL);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 96, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          }
          goto __pyx_L7;
        }
        __pyx_L7:;
      }
      goto __pyx_L18;
      __pyx_L4_error:;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L1_error;
      __pyx_L18:;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":95
 * def fork_handlers_and_grpc_init():
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         with _fork_state.fork_handler_registered_lock:
 *             if not _fork_state.fork_handler_registered:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":93
 * 
 * 
 * def fork_handlers_and_grpc_init():             # <<<<<<<<<<<<<<
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.fork_handlers_and_grpc_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":107
 * 
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_1__init__ = {"__init__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_target = 0;
  PyObject *__pyx_v_args = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_target,&__pyx_n_s_args,0};
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject*)__pyx_empty_tuple)));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 107, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_target)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 107, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); __PYX_ERR(1, 107, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_args);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 107, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(1, 107, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_target = values[1];
    __pyx_v_args = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(1, 107, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread___init__(__pyx_self, __pyx_v_self, __pyx_v_target, __pyx_v_args);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":109
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):             # <<<<<<<<<<<<<<
 *                 try:
 *                     target(*args)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___1managed_target(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___1managed_target = {"managed_target", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___1managed_target, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___1managed_target(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("managed_target (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "managed_target", 0))) return NULL;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___managed_target(__pyx_self, __pyx_v_args);

  /* function exit code */
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___managed_target(PyObject *__pyx_self, PyObject *__pyx_v_args) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  char const *__pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("managed_target", 1);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":110
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):
 *                 try:             # <<<<<<<<<<<<<<
 *                     target(*args)
 *                 finally:
 */
  /*try:*/ {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":111
 *             def managed_target(*args):
 *                 try:
 *                     target(*args)             # <<<<<<<<<<<<<<
 *                 finally:
 *                     _fork_state.active_thread_count.decrement()
 */
    if (unlikely(!__pyx_cur_scope->__pyx_v_target)) { __Pyx_RaiseClosureNameError("target"); __PYX_ERR(1, 111, __pyx_L4_error) }
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_target, __pyx_v_args, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 111, __pyx_L4_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":113
 *                     target(*args)
 *                 finally:
 *                     _fork_state.active_thread_count.decrement()             # <<<<<<<<<<<<<<
 *             self._thread = threading.Thread(target=_run_with_context(managed_target), args=args)
 *         else:
 */
  /*finally:*/ {
    /*normal exit:*/{
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 113, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_active_thread_count); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 113, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_decrement); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 113, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = NULL;
      __pyx_t_4 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_4 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 113, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L5;
    }
    __pyx_L4_error:;
    /*exception exit:*/{
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
      if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_12);
      __Pyx_XGOTREF(__pyx_t_13);
      __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename;
      {
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 113, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_active_thread_count); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 113, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_decrement); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 113, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = NULL;
        __pyx_t_4 = 0;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_2))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
          if (likely(__pyx_t_3)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_2, function);
            __pyx_t_4 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
          __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 113, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      if (PY_MAJOR_VERSION >= 3) {
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_XGIVEREF(__pyx_t_13);
        __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
      }
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_XGIVEREF(__pyx_t_10);
      __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10);
      __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0;
      __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7;
      goto __pyx_L1_error;
      __pyx_L7_error:;
      if (PY_MAJOR_VERSION >= 3) {
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_XGIVEREF(__pyx_t_13);
        __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
      }
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0;
      goto __pyx_L1_error;
    }
    __pyx_L5:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":109
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):             # <<<<<<<<<<<<<<
 *                 try:
 *                     target(*args)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.__init__.managed_target", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":107
 * 
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):
 */

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_args) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *__pyx_cur_scope;
  PyObject *__pyx_v_managed_target = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  unsigned int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(1, 107, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_target = __pyx_v_target;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_target);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_target);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":108
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *             def managed_target(*args):
 *                 try:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":109
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):             # <<<<<<<<<<<<<<
 *                 try:
 *                     target(*args)
 */
    __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___1managed_target, 0, __pyx_n_s_ForkManagedThread___init___local, ((PyObject*)__pyx_cur_scope), __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_managed_target = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":114
 *                 finally:
 *                     _fork_state.active_thread_count.decrement()
 *             self._thread = threading.Thread(target=_run_with_context(managed_target), args=args)             # <<<<<<<<<<<<<<
 *         else:
 *             self._thread = threading.Thread(target=_run_with_context(target), args=args)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_threading); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Thread); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_run_with_context); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_managed_target};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 114, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_target, __pyx_t_4) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_args, __pyx_v_args) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_thread, __pyx_t_4) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":108
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *             def managed_target(*args):
 *                 try:
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":116
 *             self._thread = threading.Thread(target=_run_with_context(managed_target), args=args)
 *         else:
 *             self._thread = threading.Thread(target=_run_with_context(target), args=args)             # <<<<<<<<<<<<<<
 * 
 *     def setDaemon(self, daemonic):
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_threading); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_Thread); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_run_with_context); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_target};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_target, __pyx_t_3) < 0) __PYX_ERR(1, 116, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_args, __pyx_v_args) < 0) __PYX_ERR(1, 116, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_thread, __pyx_t_3) < 0) __PYX_ERR(1, 116, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":107
 * 
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_managed_target);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":118
 *             self._thread = threading.Thread(target=_run_with_context(target), args=args)
 * 
 *     def setDaemon(self, daemonic):             # <<<<<<<<<<<<<<
 *         self._thread.daemon = daemonic
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_3setDaemon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_3setDaemon = {"setDaemon", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_3setDaemon, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_3setDaemon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_daemonic = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setDaemon (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_daemonic,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 118, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_daemonic)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 118, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("setDaemon", 1, 2, 2, 1); __PYX_ERR(1, 118, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "setDaemon") < 0)) __PYX_ERR(1, 118, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_daemonic = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setDaemon", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 118, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.setDaemon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_2setDaemon(__pyx_self, __pyx_v_self, __pyx_v_daemonic);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_2setDaemon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_daemonic) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setDaemon", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":119
 * 
 *     def setDaemon(self, daemonic):
 *         self._thread.daemon = daemonic             # <<<<<<<<<<<<<<
 * 
 *     def start(self):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_thread); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_daemon, __pyx_v_daemonic) < 0) __PYX_ERR(1, 119, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":118
 *             self._thread = threading.Thread(target=_run_with_context(target), args=args)
 * 
 *     def setDaemon(self, daemonic):             # <<<<<<<<<<<<<<
 *         self._thread.daemon = daemonic
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.setDaemon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":121
 *         self._thread.daemon = daemonic
 * 
 *     def start(self):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             _fork_state.active_thread_count.increment()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_5start(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_5start = {"start", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_5start, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_5start(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("start (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 121, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "start") < 0)) __PYX_ERR(1, 121, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("start", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 121, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_4start(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_4start(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("start", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":122
 * 
 *     def start(self):
 *         if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *             _fork_state.active_thread_count.increment()
 *         self._thread.start()
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 122, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":123
 *     def start(self):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             _fork_state.active_thread_count.increment()             # <<<<<<<<<<<<<<
 *         self._thread.start()
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_active_thread_count); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_increment); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 123, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":122
 * 
 *     def start(self):
 *         if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *             _fork_state.active_thread_count.increment()
 *         self._thread.start()
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":124
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             _fork_state.active_thread_count.increment()
 *         self._thread.start()             # <<<<<<<<<<<<<<
 * 
 *     def join(self):
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_thread); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_start); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":121
 *         self._thread.daemon = daemonic
 * 
 *     def start(self):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             _fork_state.active_thread_count.increment()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":126
 *         self._thread.start()
 * 
 *     def join(self):             # <<<<<<<<<<<<<<
 *         self._thread.join()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_7join(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_7join = {"join", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_7join, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_7join(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("join (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 126, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "join") < 0)) __PYX_ERR(1, 126, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("join", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 126, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_6join(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_6join(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("join", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":127
 * 
 *     def join(self):
 *         self._thread.join()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_thread); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_join); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":126
 *         self._thread.start()
 * 
 *     def join(self):             # <<<<<<<<<<<<<<
 *         self._thread.join()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":130
 * 
 * 
 * def block_if_fork_in_progress(postfork_state_to_reset=None):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_97block_if_fork_in_progress(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_97block_if_fork_in_progress = {"block_if_fork_in_progress", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_97block_if_fork_in_progress, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_97block_if_fork_in_progress(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_postfork_state_to_reset = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("block_if_fork_in_progress (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_postfork_state_to_reset,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_postfork_state_to_reset);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 130, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "block_if_fork_in_progress") < 0)) __PYX_ERR(1, 130, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_postfork_state_to_reset = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("block_if_fork_in_progress", 0, 0, 1, __pyx_nargs); __PYX_ERR(1, 130, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.block_if_fork_in_progress", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_96block_if_fork_in_progress(__pyx_self, __pyx_v_postfork_state_to_reset);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_96block_if_fork_in_progress(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_postfork_state_to_reset) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  unsigned int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("block_if_fork_in_progress", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":131
 * 
 * def block_if_fork_in_progress(postfork_state_to_reset=None):
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         with _fork_state.fork_in_progress_condition:
 *             if not _fork_state.fork_in_progress:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 131, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":132
 * def block_if_fork_in_progress(postfork_state_to_reset=None):
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *             if not _fork_state.fork_in_progress:
 *                 return
 */
    /*with:*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_fork_in_progress_condition); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 132, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      __pyx_t_7 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_7 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 132, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      /*try:*/ {
        {
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_8);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_10);
          /*try:*/ {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":133
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:
 *             if not _fork_state.fork_in_progress:             # <<<<<<<<<<<<<<
 *                 return
 *             if postfork_state_to_reset is not None:
 */
            __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 133, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_fork_in_progress); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 133, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 133, __pyx_L8_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_11 = (!__pyx_t_2);
            if (__pyx_t_11) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":134
 *         with _fork_state.fork_in_progress_condition:
 *             if not _fork_state.fork_in_progress:
 *                 return             # <<<<<<<<<<<<<<
 *             if postfork_state_to_reset is not None:
 *                 _fork_state.postfork_states_to_reset.append(postfork_state_to_reset)
 */
              __Pyx_XDECREF(__pyx_r);
              __pyx_r = Py_None; __Pyx_INCREF(Py_None);
              goto __pyx_L12_try_return;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":133
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:
 *             if not _fork_state.fork_in_progress:             # <<<<<<<<<<<<<<
 *                 return
 *             if postfork_state_to_reset is not None:
 */
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":135
 *             if not _fork_state.fork_in_progress:
 *                 return
 *             if postfork_state_to_reset is not None:             # <<<<<<<<<<<<<<
 *                 _fork_state.postfork_states_to_reset.append(postfork_state_to_reset)
 *             _fork_state.active_thread_count.decrement()
 */
            __pyx_t_11 = (__pyx_v_postfork_state_to_reset != Py_None);
            if (__pyx_t_11) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":136
 *                 return
 *             if postfork_state_to_reset is not None:
 *                 _fork_state.postfork_states_to_reset.append(postfork_state_to_reset)             # <<<<<<<<<<<<<<
 *             _fork_state.active_thread_count.decrement()
 *             _fork_state.fork_in_progress_condition.wait()
 */
              __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 136, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_postfork_states_to_reset); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 136, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __pyx_t_12 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_v_postfork_state_to_reset); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(1, 136, __pyx_L8_error)
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":135
 *             if not _fork_state.fork_in_progress:
 *                 return
 *             if postfork_state_to_reset is not None:             # <<<<<<<<<<<<<<
 *                 _fork_state.postfork_states_to_reset.append(postfork_state_to_reset)
 *             _fork_state.active_thread_count.decrement()
 */
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":137
 *             if postfork_state_to_reset is not None:
 *                 _fork_state.postfork_states_to_reset.append(postfork_state_to_reset)
 *             _fork_state.active_thread_count.decrement()             # <<<<<<<<<<<<<<
 *             _fork_state.fork_in_progress_condition.wait()
 *             _fork_state.active_thread_count.increment()
 */
            __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 137, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_active_thread_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 137, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_decrement); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 137, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = NULL;
            __pyx_t_7 = 0;
            #if CYTHON_UNPACK_METHODS
            if (likely(PyMethod_Check(__pyx_t_1))) {
              __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
              if (likely(__pyx_t_5)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                __Pyx_INCREF(__pyx_t_5);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_1, function);
                __pyx_t_7 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
              __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
              __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 137, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            }
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":138
 *                 _fork_state.postfork_states_to_reset.append(postfork_state_to_reset)
 *             _fork_state.active_thread_count.decrement()
 *             _fork_state.fork_in_progress_condition.wait()             # <<<<<<<<<<<<<<
 *             _fork_state.active_thread_count.increment()
 * 
 */
            __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 138, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_fork_in_progress_condition); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 138, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_wait); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 138, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = NULL;
            __pyx_t_7 = 0;
            #if CYTHON_UNPACK_METHODS
            if (likely(PyMethod_Check(__pyx_t_1))) {
              __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
              if (likely(__pyx_t_5)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                __Pyx_INCREF(__pyx_t_5);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_1, function);
                __pyx_t_7 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
              __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
              __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 138, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            }
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":139
 *             _fork_state.active_thread_count.decrement()
 *             _fork_state.fork_in_progress_condition.wait()
 *             _fork_state.active_thread_count.increment()             # <<<<<<<<<<<<<<
 * 
 * 
 */
            __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 139, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_active_thread_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 139, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_increment); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 139, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = NULL;
            __pyx_t_7 = 0;
            #if CYTHON_UNPACK_METHODS
            if (likely(PyMethod_Check(__pyx_t_1))) {
              __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
              if (likely(__pyx_t_5)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                __Pyx_INCREF(__pyx_t_5);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_1, function);
                __pyx_t_7 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
              __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
              __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 139, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            }
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":132
 * def block_if_fork_in_progress(postfork_state_to_reset=None):
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *             if not _fork_state.fork_in_progress:
 *                 return
 */
          }
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          goto __pyx_L13_try_end;
          __pyx_L8_error:;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          /*except:*/ {
            __Pyx_AddTraceback("grpc._cython.cygrpc.block_if_fork_in_progress", __pyx_clineno, __pyx_lineno, __pyx_filename);
            if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(1, 132, __pyx_L10_except_error)
            __Pyx_XGOTREF(__pyx_t_3);
            __Pyx_XGOTREF(__pyx_t_1);
            __Pyx_XGOTREF(__pyx_t_5);
            __pyx_t_6 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 132, __pyx_L10_except_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 132, __pyx_L10_except_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            if (__pyx_t_11 < 0) __PYX_ERR(1, 132, __pyx_L10_except_error)
            __pyx_t_2 = (!__pyx_t_11);
            if (unlikely(__pyx_t_2)) {
              __Pyx_GIVEREF(__pyx_t_3);
              __Pyx_GIVEREF(__pyx_t_1);
              __Pyx_XGIVEREF(__pyx_t_5);
              __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_1, __pyx_t_5);
              __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_5 = 0; 
              __PYX_ERR(1, 132, __pyx_L10_except_error)
            }
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            goto __pyx_L9_exception_handled;
          }
          __pyx_L10_except_error:;
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
          goto __pyx_L1_error;
          __pyx_L12_try_return:;
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
          goto __pyx_L5_return;
          __pyx_L9_exception_handled:;
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
          __pyx_L13_try_end:;
        }
      }
      /*finally:*/ {
        /*normal exit:*/{
          if (__pyx_t_4) {
            __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__11, NULL);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 132, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          }
          goto __pyx_L7;
        }
        __pyx_L5_return: {
          __pyx_t_10 = __pyx_r;
          __pyx_r = 0;
          if (__pyx_t_4) {
            __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__11, NULL);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 132, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          }
          __pyx_r = __pyx_t_10;
          __pyx_t_10 = 0;
          goto __pyx_L0;
        }
        __pyx_L7:;
      }
      goto __pyx_L19;
      __pyx_L4_error:;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L1_error;
      __pyx_L19:;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":131
 * 
 * def block_if_fork_in_progress(postfork_state_to_reset=None):
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         with _fork_state.fork_in_progress_condition:
 *             if not _fork_state.fork_in_progress:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":130
 * 
 * 
 * def block_if_fork_in_progress(postfork_state_to_reset=None):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.block_if_fork_in_progress", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":142
 * 
 * 
 * def enter_user_request_generator():             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.decrement()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_99enter_user_request_generator(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_99enter_user_request_generator = {"enter_user_request_generator", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_99enter_user_request_generator, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_99enter_user_request_generator(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("enter_user_request_generator (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_98enter_user_request_generator(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_98enter_user_request_generator(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("enter_user_request_generator", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":143
 * 
 * def enter_user_request_generator():
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.active_thread_count.decrement()
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 143, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":144
 * def enter_user_request_generator():
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.decrement()             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_active_thread_count); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_decrement); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 144, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":143
 * 
 * def enter_user_request_generator():
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.active_thread_count.decrement()
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":142
 * 
 * 
 * def enter_user_request_generator():             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.decrement()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.enter_user_request_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":147
 * 
 * 
 * def return_from_user_request_generator():             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.increment()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_101return_from_user_request_generator(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_101return_from_user_request_generator = {"return_from_user_request_generator", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_101return_from_user_request_generator, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_101return_from_user_request_generator(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("return_from_user_request_generator (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_100return_from_user_request_generator(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_100return_from_user_request_generator(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("return_from_user_request_generator", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":148
 * 
 * def return_from_user_request_generator():
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.active_thread_count.increment()
 *         block_if_fork_in_progress()
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 148, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":149
 * def return_from_user_request_generator():
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.increment()             # <<<<<<<<<<<<<<
 *         block_if_fork_in_progress()
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_active_thread_count); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_increment); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":150
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.increment()
 *         block_if_fork_in_progress()             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_block_if_fork_in_progress); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 150, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":148
 * 
 * def return_from_user_request_generator():
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.active_thread_count.increment()
 *         block_if_fork_in_progress()
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":147
 * 
 * 
 * def return_from_user_request_generator():             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.increment()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.return_from_user_request_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":153
 * 
 * 
 * def get_fork_epoch():             # <<<<<<<<<<<<<<
 *     return _fork_state.fork_epoch
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_103get_fork_epoch(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_103get_fork_epoch = {"get_fork_epoch", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_103get_fork_epoch, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_103get_fork_epoch(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_fork_epoch (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_102get_fork_epoch(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_102get_fork_epoch(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_fork_epoch", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":154
 * 
 * def get_fork_epoch():
 *     return _fork_state.fork_epoch             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_fork_epoch); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":153
 * 
 * 
 * def get_fork_epoch():             # <<<<<<<<<<<<<<
 *     return _fork_state.fork_epoch
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.get_fork_epoch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":157
 * 
 * 
 * def is_fork_support_enabled():             # <<<<<<<<<<<<<<
 *     return _GRPC_ENABLE_FORK_SUPPORT
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_105is_fork_support_enabled(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_105is_fork_support_enabled = {"is_fork_support_enabled", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_105is_fork_support_enabled, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_105is_fork_support_enabled(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_fork_support_enabled (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_104is_fork_support_enabled(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_104is_fork_support_enabled(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_fork_support_enabled", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":158
 * 
 * def is_fork_support_enabled():
 *     return _GRPC_ENABLE_FORK_SUPPORT             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":157
 * 
 * 
 * def is_fork_support_enabled():             # <<<<<<<<<<<<<<
 *     return _GRPC_ENABLE_FORK_SUPPORT
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.is_fork_support_enabled", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":161
 * 
 * 
 * def fork_register_channel(channel):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.add(channel)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_107fork_register_channel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_107fork_register_channel = {"fork_register_channel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_107fork_register_channel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_107fork_register_channel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_channel = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fork_register_channel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_channel,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_channel)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 161, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fork_register_channel") < 0)) __PYX_ERR(1, 161, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_channel = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fork_register_channel", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 161, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.fork_register_channel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_106fork_register_channel(__pyx_self, __pyx_v_channel);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_106fork_register_channel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_channel) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fork_register_channel", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":162
 * 
 * def fork_register_channel(channel):
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.channels.add(channel)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":163
 * def fork_register_channel(channel):
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.add(channel)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_channels); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_add); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_channel};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 163, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":162
 * 
 * def fork_register_channel(channel):
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.channels.add(channel)
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":161
 * 
 * 
 * def fork_register_channel(channel):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.add(channel)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.fork_register_channel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":166
 * 
 * 
 * def fork_unregister_channel(channel):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.discard(channel)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_109fork_unregister_channel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_109fork_unregister_channel = {"fork_unregister_channel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_109fork_unregister_channel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_109fork_unregister_channel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_channel = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fork_unregister_channel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_channel,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_channel)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 166, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fork_unregister_channel") < 0)) __PYX_ERR(1, 166, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_channel = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fork_unregister_channel", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 166, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.fork_unregister_channel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_108fork_unregister_channel(__pyx_self, __pyx_v_channel);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_108fork_unregister_channel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_channel) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fork_unregister_channel", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":167
 * 
 * def fork_unregister_channel(channel):
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.channels.discard(channel)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 167, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":168
 * def fork_unregister_channel(channel):
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.discard(channel)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fork_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 168, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_channels); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 168, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_discard); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 168, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_channel};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 168, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":167
 * 
 * def fork_unregister_channel(channel):
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.channels.discard(channel)
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":166
 * 
 * 
 * def fork_unregister_channel(channel):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.discard(channel)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.fork_unregister_channel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":172
 * 
 * class _ActiveThreadCount(object):
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self._num_active_threads = 0
 *         self._condition = threading.Condition()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_1__init__ = {"__init__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 172, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(1, 172, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 172, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount___init__(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":173
 * class _ActiveThreadCount(object):
 *     def __init__(self):
 *         self._num_active_threads = 0             # <<<<<<<<<<<<<<
 *         self._condition = threading.Condition()
 * 
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_num_active_threads, __pyx_int_0) < 0) __PYX_ERR(1, 173, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":174
 *     def __init__(self):
 *         self._num_active_threads = 0
 *         self._condition = threading.Condition()             # <<<<<<<<<<<<<<
 * 
 *     def increment(self):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_threading); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Condition); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_condition, __pyx_t_1) < 0) __PYX_ERR(1, 174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":172
 * 
 * class _ActiveThreadCount(object):
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self._num_active_threads = 0
 *         self._condition = threading.Condition()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":176
 *         self._condition = threading.Condition()
 * 
 *     def increment(self):             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             self._num_active_threads += 1
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_3increment(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_3increment = {"increment", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_3increment, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_3increment(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("increment (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 176, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "increment") < 0)) __PYX_ERR(1, 176, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("increment", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 176, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.increment", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_2increment(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_2increment(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("increment", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":177
 * 
 *     def increment(self):
 *         with self._condition:             # <<<<<<<<<<<<<<
 *             self._num_active_threads += 1
 * 
 */
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_condition); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 177, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 177, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":178
 *     def increment(self):
 *         with self._condition:
 *             self._num_active_threads += 1             # <<<<<<<<<<<<<<
 * 
 *     def decrement(self):
 */
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_num_active_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 178, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 178, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_num_active_threads, __pyx_t_3) < 0) __PYX_ERR(1, 178, __pyx_L7_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":177
 * 
 *     def increment(self):
 *         with self._condition:             # <<<<<<<<<<<<<<
 *             self._num_active_threads += 1
 * 
 */
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.increment", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_4) < 0) __PYX_ERR(1, 177, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_5 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 177, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 177, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (__pyx_t_11 < 0) __PYX_ERR(1, 177, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_11);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_1, __pyx_t_4);
            __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_4 = 0; 
            __PYX_ERR(1, 177, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_2) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L16;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L1_error;
    __pyx_L16:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":176
 *         self._condition = threading.Condition()
 * 
 *     def increment(self):             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             self._num_active_threads += 1
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.increment", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":180
 *             self._num_active_threads += 1
 * 
 *     def decrement(self):             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             self._num_active_threads -= 1
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_5decrement(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_5decrement = {"decrement", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_5decrement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_5decrement(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("decrement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 180, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "decrement") < 0)) __PYX_ERR(1, 180, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("decrement", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 180, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.decrement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_4decrement(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_4decrement(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("decrement", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":181
 * 
 *     def decrement(self):
 *         with self._condition:             # <<<<<<<<<<<<<<
 *             self._num_active_threads -= 1
 *             if self._num_active_threads == 0:
 */
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_condition); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 181, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 181, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":182
 *     def decrement(self):
 *         with self._condition:
 *             self._num_active_threads -= 1             # <<<<<<<<<<<<<<
 *             if self._num_active_threads == 0:
 *                 self._condition.notify_all()
 */
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_num_active_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 182, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_t_1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 182, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_num_active_threads, __pyx_t_3) < 0) __PYX_ERR(1, 182, __pyx_L7_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":183
 *         with self._condition:
 *             self._num_active_threads -= 1
 *             if self._num_active_threads == 0:             # <<<<<<<<<<<<<<
 *                 self._condition.notify_all()
 * 
 */
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_num_active_threads); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 183, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_10 = (__Pyx_PyInt_BoolEqObjC(__pyx_t_3, __pyx_int_0, 0, 0)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(1, 183, __pyx_L7_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (__pyx_t_10) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":184
 *             self._num_active_threads -= 1
 *             if self._num_active_threads == 0:
 *                 self._condition.notify_all()             # <<<<<<<<<<<<<<
 * 
 *     def await_zero_threads(self, timeout_secs):
 */
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_condition); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 184, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_notify_all); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 184, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = NULL;
            __pyx_t_6 = 0;
            #if CYTHON_UNPACK_METHODS
            if (likely(PyMethod_Check(__pyx_t_4))) {
              __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
              if (likely(__pyx_t_1)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
                __Pyx_INCREF(__pyx_t_1);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_4, function);
                __pyx_t_6 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
              __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 184, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":183
 *         with self._condition:
 *             self._num_active_threads -= 1
 *             if self._num_active_threads == 0:             # <<<<<<<<<<<<<<
 *                 self._condition.notify_all()
 * 
 */
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":181
 * 
 *     def decrement(self):
 *         with self._condition:             # <<<<<<<<<<<<<<
 *             self._num_active_threads -= 1
 *             if self._num_active_threads == 0:
 */
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.decrement", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_4, &__pyx_t_1) < 0) __PYX_ERR(1, 181, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_5 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 181, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 181, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_10 < 0) __PYX_ERR(1, 181, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_10);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_4);
            __Pyx_XGIVEREF(__pyx_t_1);
            __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_4, __pyx_t_1);
            __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_1 = 0; 
            __PYX_ERR(1, 181, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_2) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 181, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":180
 *             self._num_active_threads += 1
 * 
 *     def decrement(self):             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             self._num_active_threads -= 1
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.decrement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":186
 *                 self._condition.notify_all()
 * 
 *     def await_zero_threads(self, timeout_secs):             # <<<<<<<<<<<<<<
 *         end_time = time.time() + timeout_secs
 *         wait_time = timeout_secs
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_7await_zero_threads(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_7await_zero_threads = {"await_zero_threads", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_7await_zero_threads, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_7await_zero_threads(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_timeout_secs = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("await_zero_threads (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_timeout_secs,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 186, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeout_secs)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 186, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("await_zero_threads", 1, 2, 2, 1); __PYX_ERR(1, 186, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "await_zero_threads") < 0)) __PYX_ERR(1, 186, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_timeout_secs = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("await_zero_threads", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 186, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.await_zero_threads", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_6await_zero_threads(__pyx_self, __pyx_v_self, __pyx_v_timeout_secs);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_6await_zero_threads(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_timeout_secs) {
  PyObject *__pyx_v_end_time = NULL;
  PyObject *__pyx_v_wait_time = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("await_zero_threads", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":187
 * 
 *     def await_zero_threads(self, timeout_secs):
 *         end_time = time.time() + timeout_secs             # <<<<<<<<<<<<<<
 *         wait_time = timeout_secs
 *         with self._condition:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 187, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_v_timeout_secs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_end_time = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":188
 *     def await_zero_threads(self, timeout_secs):
 *         end_time = time.time() + timeout_secs
 *         wait_time = timeout_secs             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             while True:
 */
  __Pyx_INCREF(__pyx_v_timeout_secs);
  __pyx_v_wait_time = __pyx_v_timeout_secs;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":189
 *         end_time = time.time() + timeout_secs
 *         wait_time = timeout_secs
 *         with self._condition:             # <<<<<<<<<<<<<<
 *             while True:
 *                 if self._num_active_threads > 0:
 */
  /*with:*/ {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_condition); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 189, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 189, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 189, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 189, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":190
 *         wait_time = timeout_secs
 *         with self._condition:
 *             while True:             # <<<<<<<<<<<<<<
 *                 if self._num_active_threads > 0:
 *                     self._condition.wait(wait_time)
 */
          while (1) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":191
 *         with self._condition:
 *             while True:
 *                 if self._num_active_threads > 0:             # <<<<<<<<<<<<<<
 *                     self._condition.wait(wait_time)
 *                 if self._num_active_threads == 0:
 */
            __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_num_active_threads); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 191, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 191, __pyx_L7_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(1, 191, __pyx_L7_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (__pyx_t_10) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":192
 *             while True:
 *                 if self._num_active_threads > 0:
 *                     self._condition.wait(wait_time)             # <<<<<<<<<<<<<<
 *                 if self._num_active_threads == 0:
 *                     return True
 */
              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_condition); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 192, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_wait); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 192, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_t_3 = NULL;
              __pyx_t_4 = 0;
              #if CYTHON_UNPACK_METHODS
              if (likely(PyMethod_Check(__pyx_t_2))) {
                __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
                if (likely(__pyx_t_3)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
                  __Pyx_INCREF(__pyx_t_3);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_2, function);
                  __pyx_t_4 = 1;
                }
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_wait_time};
                __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
                __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 192, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_1);
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              }
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":191
 *         with self._condition:
 *             while True:
 *                 if self._num_active_threads > 0:             # <<<<<<<<<<<<<<
 *                     self._condition.wait(wait_time)
 *                 if self._num_active_threads == 0:
 */
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":193
 *                 if self._num_active_threads > 0:
 *                     self._condition.wait(wait_time)
 *                 if self._num_active_threads == 0:             # <<<<<<<<<<<<<<
 *                     return True
 *                 # Thread count may have increased before this re-obtains the
 */
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_num_active_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 193, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_10 = (__Pyx_PyInt_BoolEqObjC(__pyx_t_1, __pyx_int_0, 0, 0)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(1, 193, __pyx_L7_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (__pyx_t_10) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":194
 *                     self._condition.wait(wait_time)
 *                 if self._num_active_threads == 0:
 *                     return True             # <<<<<<<<<<<<<<
 *                 # Thread count may have increased before this re-obtains the
 *                 # lock after a notify(). Wait again until timeout_secs has
 */
              __Pyx_XDECREF(__pyx_r);
              __Pyx_INCREF(Py_True);
              __pyx_r = Py_True;
              goto __pyx_L11_try_return;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":193
 *                 if self._num_active_threads > 0:
 *                     self._condition.wait(wait_time)
 *                 if self._num_active_threads == 0:             # <<<<<<<<<<<<<<
 *                     return True
 *                 # Thread count may have increased before this re-obtains the
 */
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":198
 *                 # lock after a notify(). Wait again until timeout_secs has
 *                 # elapsed.
 *                 wait_time = end_time - time.time()             # <<<<<<<<<<<<<<
 *                 if wait_time <= 0:
 *                     return False
 */
            __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 198, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 198, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = NULL;
            __pyx_t_4 = 0;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_3))) {
              __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
              if (likely(__pyx_t_2)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
                __Pyx_INCREF(__pyx_t_2);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_3, function);
                __pyx_t_4 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
              __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 198, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            }
            __pyx_t_3 = PyNumber_Subtract(__pyx_v_end_time, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 198, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF_SET(__pyx_v_wait_time, __pyx_t_3);
            __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":199
 *                 # elapsed.
 *                 wait_time = end_time - time.time()
 *                 if wait_time <= 0:             # <<<<<<<<<<<<<<
 *                     return False
 * 
 */
            __pyx_t_3 = PyObject_RichCompare(__pyx_v_wait_time, __pyx_int_0, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 199, __pyx_L7_error)
            __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(1, 199, __pyx_L7_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (__pyx_t_10) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":200
 *                 wait_time = end_time - time.time()
 *                 if wait_time <= 0:
 *                     return False             # <<<<<<<<<<<<<<
 * 
 * 
 */
              __Pyx_XDECREF(__pyx_r);
              __Pyx_INCREF(Py_False);
              __pyx_r = Py_False;
              goto __pyx_L11_try_return;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":199
 *                 # elapsed.
 *                 wait_time = end_time - time.time()
 *                 if wait_time <= 0:             # <<<<<<<<<<<<<<
 *                     return False
 * 
 */
            }
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":189
 *         end_time = time.time() + timeout_secs
 *         wait_time = timeout_secs
 *         with self._condition:             # <<<<<<<<<<<<<<
 *             while True:
 *                 if self._num_active_threads > 0:
 */
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.await_zero_threads", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(1, 189, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_6 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 189, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 189, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_10 < 0) __PYX_ERR(1, 189, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_10);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_XGIVEREF(__pyx_t_2);
            __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_1, __pyx_t_2);
            __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; 
            __PYX_ERR(1, 189, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L11_try_return:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L4_return;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_5) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 189, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L4_return: {
        __pyx_t_9 = __pyx_r;
        __pyx_r = 0;
        if (__pyx_t_5) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 189, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __pyx_r = __pyx_t_9;
        __pyx_t_9 = 0;
        goto __pyx_L0;
      }
      __pyx_L6:;
    }
    goto __pyx_L21;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L1_error;
    __pyx_L21:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":186
 *                 self._condition.notify_all()
 * 
 *     def await_zero_threads(self, timeout_secs):             # <<<<<<<<<<<<<<
 *         end_time = time.time() + timeout_secs
 *         wait_time = timeout_secs
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.await_zero_threads", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_end_time);
  __Pyx_XDECREF(__pyx_v_wait_time);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":204
 * 
 * class _ForkState(object):
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self.fork_in_progress_condition = threading.Condition()
 *         self.fork_in_progress = False
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10_ForkState_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10_ForkState_1__init__ = {"__init__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10_ForkState_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10_ForkState_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 204, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(1, 204, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 204, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ForkState.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10_ForkState___init__(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10_ForkState___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":205
 * class _ForkState(object):
 *     def __init__(self):
 *         self.fork_in_progress_condition = threading.Condition()             # <<<<<<<<<<<<<<
 *         self.fork_in_progress = False
 *         self.postfork_states_to_reset = []
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_threading); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Condition); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 205, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_fork_in_progress_condition, __pyx_t_1) < 0) __PYX_ERR(1, 205, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":206
 *     def __init__(self):
 *         self.fork_in_progress_condition = threading.Condition()
 *         self.fork_in_progress = False             # <<<<<<<<<<<<<<
 *         self.postfork_states_to_reset = []
 *         self.fork_handler_registered_lock = threading.Lock()
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_fork_in_progress, Py_False) < 0) __PYX_ERR(1, 206, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":207
 *         self.fork_in_progress_condition = threading.Condition()
 *         self.fork_in_progress = False
 *         self.postfork_states_to_reset = []             # <<<<<<<<<<<<<<
 *         self.fork_handler_registered_lock = threading.Lock()
 *         self.fork_handler_registered = False
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_postfork_states_to_reset, __pyx_t_1) < 0) __PYX_ERR(1, 207, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":208
 *         self.fork_in_progress = False
 *         self.postfork_states_to_reset = []
 *         self.fork_handler_registered_lock = threading.Lock()             # <<<<<<<<<<<<<<
 *         self.fork_handler_registered = False
 *         self.active_thread_count = _ActiveThreadCount()
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_threading); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_Lock); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_fork_handler_registered_lock, __pyx_t_1) < 0) __PYX_ERR(1, 208, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":209
 *         self.postfork_states_to_reset = []
 *         self.fork_handler_registered_lock = threading.Lock()
 *         self.fork_handler_registered = False             # <<<<<<<<<<<<<<
 *         self.active_thread_count = _ActiveThreadCount()
 *         self.fork_epoch = 0
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_fork_handler_registered, Py_False) < 0) __PYX_ERR(1, 209, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":210
 *         self.fork_handler_registered_lock = threading.Lock()
 *         self.fork_handler_registered = False
 *         self.active_thread_count = _ActiveThreadCount()             # <<<<<<<<<<<<<<
 *         self.fork_epoch = 0
 *         self.channels = set()
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ActiveThreadCount); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 210, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_active_thread_count, __pyx_t_1) < 0) __PYX_ERR(1, 210, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":211
 *         self.fork_handler_registered = False
 *         self.active_thread_count = _ActiveThreadCount()
 *         self.fork_epoch = 0             # <<<<<<<<<<<<<<
 *         self.channels = set()
 * 
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_fork_epoch, __pyx_int_0) < 0) __PYX_ERR(1, 211, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":212
 *         self.active_thread_count = _ActiveThreadCount()
 *         self.fork_epoch = 0
 *         self.channels = set()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_channels, __pyx_t_1) < 0) __PYX_ERR(1, 212, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":204
 * 
 * class _ForkState(object):
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self.fork_in_progress_condition = threading.Condition()
 *         self.fork_in_progress = False
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ForkState.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":22
 * 
 * 
 * cdef grpc_status_code get_status_code(object code) except *:             # <<<<<<<<<<<<<<
 *     if isinstance(code, int):
 *         if code >= StatusCode.ok and code <= StatusCode.data_loss:
 */

static grpc_status_code __pyx_f_4grpc_7_cython_6cygrpc_get_status_code(PyObject *__pyx_v_code) {
  grpc_status_code __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  grpc_status_code __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_status_code", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":23
 * 
 * cdef grpc_status_code get_status_code(object code) except *:
 *     if isinstance(code, int):             # <<<<<<<<<<<<<<
 *         if code >= StatusCode.ok and code <= StatusCode.data_loss:
 *             return code
 */
  __pyx_t_1 = PyInt_Check(__pyx_v_code); 
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":24
 * cdef grpc_status_code get_status_code(object code) except *:
 *     if isinstance(code, int):
 *         if code >= StatusCode.ok and code <= StatusCode.data_loss:             # <<<<<<<<<<<<<<
 *             return code
 *         else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ok); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_code, __pyx_t_3, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_4) {
    } else {
      __pyx_t_1 = __pyx_t_4;
      goto __pyx_L5_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_data_loss); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_code, __pyx_t_3, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = __pyx_t_4;
    __pyx_L5_bool_binop_done:;
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":25
 *     if isinstance(code, int):
 *         if code >= StatusCode.ok and code <= StatusCode.data_loss:
 *             return code             # <<<<<<<<<<<<<<
 *         else:
 *             return StatusCode.unknown
 */
      __pyx_t_5 = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(__pyx_v_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 25, __pyx_L1_error)
      __pyx_r = __pyx_t_5;
      goto __pyx_L0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":24
 * cdef grpc_status_code get_status_code(object code) except *:
 *     if isinstance(code, int):
 *         if code >= StatusCode.ok and code <= StatusCode.data_loss:             # <<<<<<<<<<<<<<
 *             return code
 *         else:
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":27
 *             return code
 *         else:
 *             return StatusCode.unknown             # <<<<<<<<<<<<<<
 *     else:
 *         try:
 */
    /*else*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 27, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_unknown); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 27, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_5 = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 27, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_r = __pyx_t_5;
      goto __pyx_L0;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":23
 * 
 * cdef grpc_status_code get_status_code(object code) except *:
 *     if isinstance(code, int):             # <<<<<<<<<<<<<<
 *         if code >= StatusCode.ok and code <= StatusCode.data_loss:
 *             return code
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":29
 *             return StatusCode.unknown
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return code.value[0]
 *         except (KeyError, AttributeError):
 */
  /*else*/ {
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":30
 *     else:
 *         try:
 *             return code.value[0]             # <<<<<<<<<<<<<<
 *         except (KeyError, AttributeError):
 *             return StatusCode.unknown
 */
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_code, __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 30, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 30, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 30, __pyx_L7_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        goto __pyx_L11_try_return;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":29
 *             return StatusCode.unknown
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return code.value[0]
 *         except (KeyError, AttributeError):
 */
      }
      __pyx_L7_error:;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":31
 *         try:
 *             return code.value[0]
 *         except (KeyError, AttributeError):             # <<<<<<<<<<<<<<
 *             return StatusCode.unknown
 * 
 */
      __pyx_t_9 = __Pyx_PyErr_ExceptionMatches2(__pyx_builtin_KeyError, __pyx_builtin_AttributeError);
      if (__pyx_t_9) {
        __Pyx_AddTraceback("grpc._cython.cygrpc.get_status_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_10) < 0) __PYX_ERR(6, 31, __pyx_L9_except_error)
        __Pyx_XGOTREF(__pyx_t_2);
        __Pyx_XGOTREF(__pyx_t_3);
        __Pyx_XGOTREF(__pyx_t_10);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":32
 *             return code.value[0]
 *         except (KeyError, AttributeError):
 *             return StatusCode.unknown             # <<<<<<<<<<<<<<
 * 
 * 
 */
        __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 32, __pyx_L9_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_unknown); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 32, __pyx_L9_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_5 = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(__pyx_t_12)); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 32, __pyx_L9_except_error)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L10_except_return;
      }
      goto __pyx_L9_except_error;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":29
 *             return StatusCode.unknown
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return code.value[0]
 *         except (KeyError, AttributeError):
 */
      __pyx_L9_except_error:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      goto __pyx_L1_error;
      __pyx_L11_try_return:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      goto __pyx_L0;
      __pyx_L10_except_return:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      goto __pyx_L0;
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":22
 * 
 * 
 * cdef grpc_status_code get_status_code(object code) except *:             # <<<<<<<<<<<<<<
 *     if isinstance(code, int):
 *         if code >= StatusCode.ok and code <= StatusCode.data_loss:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("grpc._cython.cygrpc.get_status_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = (grpc_status_code) 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":35
 * 
 * 
 * cdef object deserialize(object deserializer, bytes raw_message):             # <<<<<<<<<<<<<<
 *     """Perform deserialization on raw bytes.
 * 
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_deserialize(PyObject *__pyx_v_deserializer, PyObject *__pyx_v_raw_message) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("deserialize", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":40
 *     Failure to deserialize is a fatal error.
 *     """
 *     if deserializer:             # <<<<<<<<<<<<<<
 *         return deserializer(raw_message)
 *     else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_deserializer); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(6, 40, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":41
 *     """
 *     if deserializer:
 *         return deserializer(raw_message)             # <<<<<<<<<<<<<<
 *     else:
 *         return raw_message
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_deserializer);
    __pyx_t_3 = __pyx_v_deserializer; __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_raw_message};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 41, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":40
 *     Failure to deserialize is a fatal error.
 *     """
 *     if deserializer:             # <<<<<<<<<<<<<<
 *         return deserializer(raw_message)
 *     else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":43
 *         return deserializer(raw_message)
 *     else:
 *         return raw_message             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_raw_message);
    __pyx_r = __pyx_v_raw_message;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":35
 * 
 * 
 * cdef object deserialize(object deserializer, bytes raw_message):             # <<<<<<<<<<<<<<
 *     """Perform deserialization on raw bytes.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.deserialize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":46
 * 
 * 
 * cdef bytes serialize(object serializer, object message):             # <<<<<<<<<<<<<<
 *     """Perform serialization on a message.
 * 
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_serialize(PyObject *__pyx_v_serializer, PyObject *__pyx_v_message) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("serialize", 0);
  __Pyx_INCREF(__pyx_v_message);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":51
 *     Failure to serialize is a fatal error.
 *     """
 *     if isinstance(message, str):             # <<<<<<<<<<<<<<
 *         message = message.encode('utf-8')
 *     if serializer:
 */
  __pyx_t_1 = PyString_Check(__pyx_v_message); 
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":52
 *     """
 *     if isinstance(message, str):
 *         message = message.encode('utf-8')             # <<<<<<<<<<<<<<
 *     if serializer:
 *         return serializer(message)
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_message, __pyx_n_s_encode); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 52, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_s_utf_8};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 52, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF_SET(__pyx_v_message, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":51
 *     Failure to serialize is a fatal error.
 *     """
 *     if isinstance(message, str):             # <<<<<<<<<<<<<<
 *         message = message.encode('utf-8')
 *     if serializer:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":53
 *     if isinstance(message, str):
 *         message = message.encode('utf-8')
 *     if serializer:             # <<<<<<<<<<<<<<
 *         return serializer(message)
 *     else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_serializer); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(6, 53, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":54
 *         message = message.encode('utf-8')
 *     if serializer:
 *         return serializer(message)             # <<<<<<<<<<<<<<
 *     else:
 *         return message
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_serializer);
    __pyx_t_3 = __pyx_v_serializer; __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_message};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 54, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    if (!(likely(PyBytes_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_2))) __PYX_ERR(6, 54, __pyx_L1_error)
    __pyx_r = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":53
 *     if isinstance(message, str):
 *         message = message.encode('utf-8')
 *     if serializer:             # <<<<<<<<<<<<<<
 *         return serializer(message)
 *     else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":56
 *         return serializer(message)
 *     else:
 *         return message             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (!(likely(PyBytes_CheckExact(__pyx_v_message))||((__pyx_v_message) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_message))) __PYX_ERR(6, 56, __pyx_L1_error)
    __Pyx_INCREF(__pyx_v_message);
    __pyx_r = ((PyObject*)__pyx_v_message);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":46
 * 
 * 
 * cdef bytes serialize(object serializer, object message):             # <<<<<<<<<<<<<<
 *     """Perform serialization on a message.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.serialize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":61
 * class _EOF:
 * 
 *     def __bool__(self):             # <<<<<<<<<<<<<<
 *         return False
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_1__bool__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_1__bool__ = {"__bool__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_1__bool__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_1__bool__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__bool__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 61, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__bool__") < 0)) __PYX_ERR(6, 61, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__bool__", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 61, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._EOF.__bool__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4_EOF___bool__(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF___bool__(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__bool__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":62
 * 
 *     def __bool__(self):
 *         return False             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(Py_False);
  __pyx_r = Py_False;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":61
 * class _EOF:
 * 
 *     def __bool__(self):             # <<<<<<<<<<<<<<
 *         return False
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":64
 *         return False
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return 0
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_3__len__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_3__len__ = {"__len__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_3__len__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_3__len__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 64, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__len__") < 0)) __PYX_ERR(6, 64, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__len__", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 64, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._EOF.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_2__len__(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_2__len__(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":65
 * 
 *     def __len__(self):
 *         return 0             # <<<<<<<<<<<<<<
 * 
 *     def _repr(self) -> str:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_int_0);
  __pyx_r = __pyx_int_0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":64
 *         return False
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return 0
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":67
 *         return 0
 * 
 *     def _repr(self) -> str:             # <<<<<<<<<<<<<<
 *         return '<grpc.aio.EOF>'
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_5_repr(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_5_repr = {"_repr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_5_repr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_5_repr(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_repr (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 67, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_repr") < 0)) __PYX_ERR(6, 67, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_repr", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 67, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._EOF._repr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_4_repr(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_4_repr(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_repr", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":68
 * 
 *     def _repr(self) -> str:
 *         return '<grpc.aio.EOF>'             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self) -> str:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_kp_s_grpc_aio_EOF);
  __pyx_r = __pyx_kp_s_grpc_aio_EOF;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":67
 *         return 0
 * 
 *     def _repr(self) -> str:             # <<<<<<<<<<<<<<
 *         return '<grpc.aio.EOF>'
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":70
 *         return '<grpc.aio.EOF>'
 * 
 *     def __repr__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_7__repr__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_7__repr__ = {"__repr__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_7__repr__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_7__repr__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 70, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__repr__") < 0)) __PYX_ERR(6, 70, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 70, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._EOF.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_6__repr__(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_6__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":71
 * 
 *     def __repr__(self) -> str:
 *         return self._repr()             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self) -> str:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_repr); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 71, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  if (!(likely(PyString_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(6, 71, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":70
 *         return '<grpc.aio.EOF>'
 * 
 *     def __repr__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._EOF.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":73
 *         return self._repr()
 * 
 *     def __str__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_9__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_9__str__ = {"__str__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_9__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_9__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 73, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__str__") < 0)) __PYX_ERR(6, 73, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 73, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._EOF.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_8__str__(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_8__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":74
 * 
 *     def __str__(self) -> str:
 *         return self._repr()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_repr); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  if (!(likely(PyString_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(6, 74, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":73
 *         return self._repr()
 * 
 *     def __str__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._EOF.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":110
 * 
 * 
 * def schedule_coro_threadsafe(object coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         return loop.create_task(coro)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_111schedule_coro_threadsafe(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_111schedule_coro_threadsafe = {"schedule_coro_threadsafe", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_111schedule_coro_threadsafe, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_111schedule_coro_threadsafe(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_coro = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("schedule_coro_threadsafe (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_coro,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_coro)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 110, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 110, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("schedule_coro_threadsafe", 1, 2, 2, 1); __PYX_ERR(6, 110, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "schedule_coro_threadsafe") < 0)) __PYX_ERR(6, 110, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_coro = values[0];
    __pyx_v_loop = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("schedule_coro_threadsafe", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 110, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.schedule_coro_threadsafe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_110schedule_coro_threadsafe(__pyx_self, __pyx_v_coro, __pyx_v_loop);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_110schedule_coro_threadsafe(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_coro, PyObject *__pyx_v_loop) {
  PyObject *__pyx_v_runtime_error = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  unsigned int __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  char const *__pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("schedule_coro_threadsafe", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":111
 * 
 * def schedule_coro_threadsafe(object coro, object loop):
 *     try:             # <<<<<<<<<<<<<<
 *         return loop.create_task(coro)
 *     except RuntimeError as runtime_error:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":112
 * def schedule_coro_threadsafe(object coro, object loop):
 *     try:
 *         return loop.create_task(coro)             # <<<<<<<<<<<<<<
 *     except RuntimeError as runtime_error:
 *         if 'Non-thread-safe operation' in str(runtime_error):
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_loop, __pyx_n_s_create_task); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 112, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      __pyx_t_7 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_7 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_coro};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 112, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L7_try_return;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":111
 * 
 * def schedule_coro_threadsafe(object coro, object loop):
 *     try:             # <<<<<<<<<<<<<<
 *         return loop.create_task(coro)
 *     except RuntimeError as runtime_error:
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":113
 *     try:
 *         return loop.create_task(coro)
 *     except RuntimeError as runtime_error:             # <<<<<<<<<<<<<<
 *         if 'Non-thread-safe operation' in str(runtime_error):
 *             return asyncio.run_coroutine_threadsafe(
 */
    __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_RuntimeError);
    if (__pyx_t_8) {
      __Pyx_AddTraceback("grpc._cython.cygrpc.schedule_coro_threadsafe", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(6, 113, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_5);
      __pyx_v_runtime_error = __pyx_t_5;
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":114
 *         return loop.create_task(coro)
 *     except RuntimeError as runtime_error:
 *         if 'Non-thread-safe operation' in str(runtime_error):             # <<<<<<<<<<<<<<
 *             return asyncio.run_coroutine_threadsafe(
 *                 coro,
 */
        __pyx_t_9 = __Pyx_PyObject_Str(__pyx_v_runtime_error); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 114, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_kp_s_Non_thread_safe_operation, __pyx_t_9, Py_EQ)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(6, 114, __pyx_L14_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (likely(__pyx_t_10)) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":115
 *     except RuntimeError as runtime_error:
 *         if 'Non-thread-safe operation' in str(runtime_error):
 *             return asyncio.run_coroutine_threadsafe(             # <<<<<<<<<<<<<<
 *                 coro,
 *                 loop,
 */
          __Pyx_XDECREF(__pyx_r);
          __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 115, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_run_coroutine_threadsafe); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 115, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":117
 *             return asyncio.run_coroutine_threadsafe(
 *                 coro,
 *                 loop,             # <<<<<<<<<<<<<<
 *             )
 *         else:
 */
          __pyx_t_11 = NULL;
          __pyx_t_7 = 0;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_12))) {
            __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12);
            if (likely(__pyx_t_11)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
              __Pyx_INCREF(__pyx_t_11);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_12, function);
              __pyx_t_7 = 1;
            }
          }
          #endif
          {
            PyObject *__pyx_callargs[3] = {__pyx_t_11, __pyx_v_coro, __pyx_v_loop};
            __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 115, __pyx_L14_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          }
          __pyx_r = __pyx_t_9;
          __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          goto __pyx_L13_return;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":114
 *         return loop.create_task(coro)
 *     except RuntimeError as runtime_error:
 *         if 'Non-thread-safe operation' in str(runtime_error):             # <<<<<<<<<<<<<<
 *             return asyncio.run_coroutine_threadsafe(
 *                 coro,
 */
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":120
 *             )
 *         else:
 *             raise             # <<<<<<<<<<<<<<
 * 
 * 
 */
        /*else*/ {
          __Pyx_GIVEREF(__pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_6);
          __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_5, __pyx_t_6);
          __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; 
          __PYX_ERR(6, 120, __pyx_L14_error)
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":113
 *     try:
 *         return loop.create_task(coro)
 *     except RuntimeError as runtime_error:             # <<<<<<<<<<<<<<
 *         if 'Non-thread-safe operation' in str(runtime_error):
 *             return asyncio.run_coroutine_threadsafe(
 */
      /*finally:*/ {
        __pyx_L14_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0)) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __pyx_t_8 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_runtime_error); __pyx_v_runtime_error = 0;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_18);
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_XGIVEREF(__pyx_t_20);
            __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
          }
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_ErrRestore(__pyx_t_15, __pyx_t_16, __pyx_t_17);
          __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
          __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_14;
          goto __pyx_L5_except_error;
        }
        __pyx_L13_return: {
          __pyx_t_20 = __pyx_r;
          __pyx_r = 0;
          __Pyx_DECREF(__pyx_v_runtime_error); __pyx_v_runtime_error = 0;
          __pyx_r = __pyx_t_20;
          __pyx_t_20 = 0;
          goto __pyx_L6_except_return;
        }
      }
    }
    goto __pyx_L5_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":111
 * 
 * def schedule_coro_threadsafe(object coro, object loop):
 *     try:             # <<<<<<<<<<<<<<
 *         return loop.create_task(coro)
 *     except RuntimeError as runtime_error:
 */
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":110
 * 
 * 
 * def schedule_coro_threadsafe(object coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         return loop.create_task(coro)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("grpc._cython.cygrpc.schedule_coro_threadsafe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_runtime_error);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_114generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":123
 * 
 * 
 * def async_generator_to_generator(object agen, object loop):             # <<<<<<<<<<<<<<
 *     """Converts an async generator into generator."""
 *     try:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_113async_generator_to_generator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_112async_generator_to_generator, "Converts an async generator into generator.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_113async_generator_to_generator = {"async_generator_to_generator", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_113async_generator_to_generator, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_112async_generator_to_generator};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_113async_generator_to_generator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_agen = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("async_generator_to_generator (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_agen,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_agen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 123, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 123, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("async_generator_to_generator", 1, 2, 2, 1); __PYX_ERR(6, 123, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "async_generator_to_generator") < 0)) __PYX_ERR(6, 123, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_agen = values[0];
    __pyx_v_loop = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("async_generator_to_generator", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 123, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.async_generator_to_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_112async_generator_to_generator(__pyx_self, __pyx_v_agen, __pyx_v_loop);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_112async_generator_to_generator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_agen, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("async_generator_to_generator", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(6, 123, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_agen = __pyx_v_agen;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_agen);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_agen);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_114generator, __pyx_codeobj__44, (PyObject *) __pyx_cur_scope, __pyx_n_s_async_generator_to_generator, __pyx_n_s_async_generator_to_generator, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(6, 123, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.async_generator_to_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_114generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  unsigned int __pyx_t_9;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("async_generator_to_generator", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L13_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(6, 123, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":125
 * def async_generator_to_generator(object agen, object loop):
 *     """Converts an async generator into generator."""
 *     try:             # <<<<<<<<<<<<<<
 *         while True:
 *             future = asyncio.run_coroutine_threadsafe(
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":126
 *     """Converts an async generator into generator."""
 *     try:
 *         while True:             # <<<<<<<<<<<<<<
 *             future = asyncio.run_coroutine_threadsafe(
 *                 agen.__anext__(),
 */
      while (1) {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":127
 *     try:
 *         while True:
 *             future = asyncio.run_coroutine_threadsafe(             # <<<<<<<<<<<<<<
 *                 agen.__anext__(),
 *                 loop
 */
        __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 127, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_run_coroutine_threadsafe); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 127, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":128
 *         while True:
 *             future = asyncio.run_coroutine_threadsafe(
 *                 agen.__anext__(),             # <<<<<<<<<<<<<<
 *                 loop
 *             )
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_agen, __pyx_n_s_anext); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 128, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        __pyx_t_9 = 0;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
            __pyx_t_9 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
          __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 0+__pyx_t_9);
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 128, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":129
 *             future = asyncio.run_coroutine_threadsafe(
 *                 agen.__anext__(),
 *                 loop             # <<<<<<<<<<<<<<
 *             )
 *             response = future.result()
 */
        __pyx_t_7 = NULL;
        __pyx_t_9 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
            __pyx_t_9 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_5, __pyx_cur_scope->__pyx_v_loop};
          __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9);
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 127, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_future);
        __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_future, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        __pyx_t_4 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":131
 *                 loop
 *             )
 *             response = future.result()             # <<<<<<<<<<<<<<
 *             if response is EOF:
 *                 break
 */
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_future, __pyx_n_s_result); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 131, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = NULL;
        __pyx_t_9 = 0;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
            __pyx_t_9 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
          __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_9, 0+__pyx_t_9);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 131, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_response);
        __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_response, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        __pyx_t_4 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":132
 *             )
 *             response = future.result()
 *             if response is EOF:             # <<<<<<<<<<<<<<
 *                 break
 *             else:
 */
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_EOF); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 132, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_10 = (__pyx_cur_scope->__pyx_v_response == __pyx_t_4);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (__pyx_t_10) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":133
 *             response = future.result()
 *             if response is EOF:
 *                 break             # <<<<<<<<<<<<<<
 *             else:
 *                 yield response
 */
          goto __pyx_L11_break;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":132
 *             )
 *             response = future.result()
 *             if response is EOF:             # <<<<<<<<<<<<<<
 *                 break
 *             else:
 */
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":135
 *                 break
 *             else:
 *                 yield response             # <<<<<<<<<<<<<<
 *     except StopAsyncIteration:
 *         # If StopAsyncIteration is raised, end this generator.
 */
        /*else*/ {
          __Pyx_INCREF(__pyx_cur_scope->__pyx_v_response);
          __pyx_r = __pyx_cur_scope->__pyx_v_response;
          __Pyx_XGIVEREF(__pyx_t_1);
          __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
          __Pyx_XGIVEREF(__pyx_t_2);
          __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
          __Pyx_XGIVEREF(__pyx_t_3);
          __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
          __Pyx_XGIVEREF(__pyx_r);
          __Pyx_RefNannyFinishContext();
          __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
          /* return from generator, yielding value */
          __pyx_generator->resume_label = 1;
          return __pyx_r;
          __pyx_L13_resume_from_yield:;
          __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
          __pyx_cur_scope->__pyx_t_0 = 0;
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
          __pyx_cur_scope->__pyx_t_1 = 0;
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
          __pyx_cur_scope->__pyx_t_2 = 0;
          __Pyx_XGOTREF(__pyx_t_3);
          if (unlikely(!__pyx_sent_value)) __PYX_ERR(6, 135, __pyx_L4_error)
        }
      }
      __pyx_L11_break:;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":125
 * def async_generator_to_generator(object agen, object loop):
 *     """Converts an async generator into generator."""
 *     try:             # <<<<<<<<<<<<<<
 *         while True:
 *             future = asyncio.run_coroutine_threadsafe(
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":136
 *             else:
 *                 yield response
 *     except StopAsyncIteration:             # <<<<<<<<<<<<<<
 *         # If StopAsyncIteration is raised, end this generator.
 *         pass
 */
    __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)__Pyx_PyExc_StopAsyncIteration)[0])));
    if (__pyx_t_11) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L5_exception_handled;
    }
    goto __pyx_L6_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":125
 * def async_generator_to_generator(object agen, object loop):
 *     """Converts an async generator into generator."""
 *     try:             # <<<<<<<<<<<<<<
 *         while True:
 *             future = asyncio.run_coroutine_threadsafe(
 */
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L5_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L9_try_end:;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":123
 * 
 * 
 * def async_generator_to_generator(object agen, object loop):             # <<<<<<<<<<<<<<
 *     """Converts an async generator into generator."""
 *     try:
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("async_generator_to_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_117generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":141
 * 
 * 
 * async def generator_to_async_generator(object gen, object loop, object thread_pool):             # <<<<<<<<<<<<<<
 *     """Converts a generator into async generator.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_116generator_to_async_generator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_115generator_to_async_generator, "Converts a generator into async generator.\n\n    The generator might block, so we need to delegate the iteration to thread\n    pool. Also, we can't simply delegate __next__ to the thread pool, otherwise\n    we will see following error:\n\n        TypeError: StopIteration interacts badly with generators and cannot be\n            raised into a Future\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_116generator_to_async_generator = {"generator_to_async_generator", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_116generator_to_async_generator, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_115generator_to_async_generator};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_116generator_to_async_generator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  PyObject *__pyx_v_loop = 0;
  PyObject *__pyx_v_thread_pool = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("generator_to_async_generator (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_loop,&__pyx_n_s_thread_pool,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 141, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 141, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("generator_to_async_generator", 1, 3, 3, 1); __PYX_ERR(6, 141, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_thread_pool)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 141, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("generator_to_async_generator", 1, 3, 3, 2); __PYX_ERR(6, 141, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "generator_to_async_generator") < 0)) __PYX_ERR(6, 141, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_gen = values[0];
    __pyx_v_loop = values[1];
    __pyx_v_thread_pool = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("generator_to_async_generator", 1, 3, 3, __pyx_nargs); __PYX_ERR(6, 141, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.generator_to_async_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_115generator_to_async_generator(__pyx_self, __pyx_v_gen, __pyx_v_loop, __pyx_v_thread_pool);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_115generator_to_async_generator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen, PyObject *__pyx_v_loop, PyObject *__pyx_v_thread_pool) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("generator_to_async_generator", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(6, 141, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_gen = __pyx_v_gen;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_gen);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_gen);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  __pyx_cur_scope->__pyx_v_thread_pool = __pyx_v_thread_pool;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_thread_pool);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_thread_pool);
  {
    __pyx_CoroutineObject *gen = __Pyx_AsyncGen_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_117generator1, __pyx_codeobj__45, (PyObject *) __pyx_cur_scope, __pyx_n_s_generator_to_async_generator, __pyx_n_s_generator_to_async_generator, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(6, 141, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.generator_to_async_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":153
 *     queue = asyncio.Queue(maxsize=1)
 * 
 *     def yield_to_queue():             # <<<<<<<<<<<<<<
 *         try:
 *             for item in gen:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28generator_to_async_generator_1yield_to_queue(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_28generator_to_async_generator_1yield_to_queue = {"yield_to_queue", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_28generator_to_async_generator_1yield_to_queue, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28generator_to_async_generator_1yield_to_queue(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("yield_to_queue (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28generator_to_async_generator_yield_to_queue(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28generator_to_async_generator_yield_to_queue(PyObject *__pyx_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *__pyx_outer_scope;
  PyObject *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  unsigned int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_t_12;
  char const *__pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("yield_to_queue", 1);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":154
 * 
 *     def yield_to_queue():
 *         try:             # <<<<<<<<<<<<<<
 *             for item in gen:
 *                 asyncio.run_coroutine_threadsafe(queue.put(item), loop).result()
 */
  /*try:*/ {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":155
 *     def yield_to_queue():
 *         try:
 *             for item in gen:             # <<<<<<<<<<<<<<
 *                 asyncio.run_coroutine_threadsafe(queue.put(item), loop).result()
 *         finally:
 */
    if (unlikely(!__pyx_cur_scope->__pyx_v_gen)) { __Pyx_RaiseClosureNameError("gen"); __PYX_ERR(6, 155, __pyx_L4_error) }
    if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_gen)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_gen)) {
      __pyx_t_1 = __pyx_cur_scope->__pyx_v_gen; __Pyx_INCREF(__pyx_t_1);
      __pyx_t_2 = 0;
      __pyx_t_3 = NULL;
    } else {
      __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_gen); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 155, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 155, __pyx_L4_error)
    }
    for (;;) {
      if (likely(!__pyx_t_3)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
            #if !CYTHON_ASSUME_SAFE_MACROS
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 155, __pyx_L4_error)
            #endif
            if (__pyx_t_2 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(6, 155, __pyx_L4_error)
          #else
          __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 155, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
            #if !CYTHON_ASSUME_SAFE_MACROS
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 155, __pyx_L4_error)
            #endif
            if (__pyx_t_2 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(6, 155, __pyx_L4_error)
          #else
          __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 155, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        }
      } else {
        __pyx_t_4 = __pyx_t_3(__pyx_t_1);
        if (unlikely(!__pyx_t_4)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(6, 155, __pyx_L4_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":156
 *         try:
 *             for item in gen:
 *                 asyncio.run_coroutine_threadsafe(queue.put(item), loop).result()             # <<<<<<<<<<<<<<
 *         finally:
 *             asyncio.run_coroutine_threadsafe(queue.put(EOF), loop).result()
 */
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 156, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_run_coroutine_threadsafe); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 156, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_cur_scope->__pyx_v_queue)) { __Pyx_RaiseClosureNameError("queue"); __PYX_ERR(6, 156, __pyx_L4_error) }
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_queue, __pyx_n_s_put); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 156, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = NULL;
      __pyx_t_10 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_10 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_item};
        __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 156, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      if (unlikely(!__pyx_cur_scope->__pyx_v_loop)) { __Pyx_RaiseClosureNameError("loop"); __PYX_ERR(6, 156, __pyx_L4_error) }
      __pyx_t_8 = NULL;
      __pyx_t_10 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
          __pyx_t_10 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_6, __pyx_cur_scope->__pyx_v_loop};
        __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10);
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 156, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_result); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 156, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = NULL;
      __pyx_t_10 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
          __pyx_t_10 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_10, 0+__pyx_t_10);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 156, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":155
 *     def yield_to_queue():
 *         try:
 *             for item in gen:             # <<<<<<<<<<<<<<
 *                 asyncio.run_coroutine_threadsafe(queue.put(item), loop).result()
 *         finally:
 */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":158
 *                 asyncio.run_coroutine_threadsafe(queue.put(item), loop).result()
 *         finally:
 *             asyncio.run_coroutine_threadsafe(queue.put(EOF), loop).result()             # <<<<<<<<<<<<<<
 * 
 *     future = loop.run_in_executor(
 */
  /*finally:*/ {
    /*normal exit:*/{
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_run_coroutine_threadsafe); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_cur_scope->__pyx_v_queue)) { __Pyx_RaiseClosureNameError("queue"); __PYX_ERR(6, 158, __pyx_L1_error) }
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_queue, __pyx_n_s_put); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_EOF); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = NULL;
      __pyx_t_10 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
          __pyx_t_10 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
        __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 158, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      if (unlikely(!__pyx_cur_scope->__pyx_v_loop)) { __Pyx_RaiseClosureNameError("loop"); __PYX_ERR(6, 158, __pyx_L1_error) }
      __pyx_t_6 = NULL;
      __pyx_t_10 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_10 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_cur_scope->__pyx_v_loop};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 158, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_result); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      __pyx_t_10 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_10 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_10, 0+__pyx_t_10);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 158, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L5;
    }
    __pyx_L4_error:;
    /*exception exit:*/{
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
      if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
      __Pyx_XGOTREF(__pyx_t_14);
      __Pyx_XGOTREF(__pyx_t_15);
      __Pyx_XGOTREF(__pyx_t_16);
      __Pyx_XGOTREF(__pyx_t_17);
      __Pyx_XGOTREF(__pyx_t_18);
      __Pyx_XGOTREF(__pyx_t_19);
      __pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename;
      {
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 158, __pyx_L10_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_run_coroutine_threadsafe); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 158, __pyx_L10_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_cur_scope->__pyx_v_queue)) { __Pyx_RaiseClosureNameError("queue"); __PYX_ERR(6, 158, __pyx_L10_error) }
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_queue, __pyx_n_s_put); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 158, __pyx_L10_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_EOF); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 158, __pyx_L10_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_9 = NULL;
        __pyx_t_10 = 0;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
            __pyx_t_10 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
          __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 158, __pyx_L10_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        if (unlikely(!__pyx_cur_scope->__pyx_v_loop)) { __Pyx_RaiseClosureNameError("loop"); __PYX_ERR(6, 158, __pyx_L10_error) }
        __pyx_t_6 = NULL;
        __pyx_t_10 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
            __pyx_t_10 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_4, __pyx_cur_scope->__pyx_v_loop};
          __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 158, __pyx_L10_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_result); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 158, __pyx_L10_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = NULL;
        __pyx_t_10 = 0;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
            __pyx_t_10 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
          __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_10, 0+__pyx_t_10);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 158, __pyx_L10_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      if (PY_MAJOR_VERSION >= 3) {
        __Pyx_XGIVEREF(__pyx_t_17);
        __Pyx_XGIVEREF(__pyx_t_18);
        __Pyx_XGIVEREF(__pyx_t_19);
        __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
      }
      __Pyx_XGIVEREF(__pyx_t_14);
      __Pyx_XGIVEREF(__pyx_t_15);
      __Pyx_XGIVEREF(__pyx_t_16);
      __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16);
      __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
      __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13;
      goto __pyx_L1_error;
      __pyx_L10_error:;
      if (PY_MAJOR_VERSION >= 3) {
        __Pyx_XGIVEREF(__pyx_t_17);
        __Pyx_XGIVEREF(__pyx_t_18);
        __Pyx_XGIVEREF(__pyx_t_19);
        __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
      }
      __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
      __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
      goto __pyx_L1_error;
    }
    __pyx_L5:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":153
 *     queue = asyncio.Queue(maxsize=1)
 * 
 *     def yield_to_queue():             # <<<<<<<<<<<<<<
 *         try:
 *             for item in gen:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("grpc._cython.cygrpc.generator_to_async_generator.yield_to_queue", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":141
 * 
 * 
 * async def generator_to_async_generator(object gen, object loop, object thread_pool):             # <<<<<<<<<<<<<<
 *     """Converts a generator into async generator.
 * 
 */

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_117generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("generator_to_async_generator", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_await;
    case 2: goto __pyx_L8_resume_from_yield;
    case 3: goto __pyx_L9_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(6, 141, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":151
 *             raised into a Future
 *     """
 *     queue = asyncio.Queue(maxsize=1)             # <<<<<<<<<<<<<<
 * 
 *     def yield_to_queue():
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Queue); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_maxsize, __pyx_int_1) < 0) __PYX_ERR(6, 151, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_cur_scope->__pyx_v_queue = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":153
 *     queue = asyncio.Queue(maxsize=1)
 * 
 *     def yield_to_queue():             # <<<<<<<<<<<<<<
 *         try:
 *             for item in gen:
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_28generator_to_async_generator_1yield_to_queue, 0, __pyx_n_s_generator_to_async_generator_loc, ((PyObject*)__pyx_cur_scope), __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_cur_scope->__pyx_v_yield_to_queue = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":160
 *             asyncio.run_coroutine_threadsafe(queue.put(EOF), loop).result()
 * 
 *     future = loop.run_in_executor(             # <<<<<<<<<<<<<<
 *         thread_pool,
 *         yield_to_queue,
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_loop, __pyx_n_s_run_in_executor); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":162
 *     future = loop.run_in_executor(
 *         thread_pool,
 *         yield_to_queue,             # <<<<<<<<<<<<<<
 *     )
 * 
 */
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_thread_pool, __pyx_cur_scope->__pyx_v_yield_to_queue};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_cur_scope->__pyx_v_future = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":165
 *     )
 * 
 *     while True:             # <<<<<<<<<<<<<<
 *         response = await queue.get()
 *         if response is EOF:
 */
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":166
 * 
 *     while True:
 *         response = await queue.get()             # <<<<<<<<<<<<<<
 *         if response is EOF:
 *             break
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_queue, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 166, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from async generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L6_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(6, 166, __pyx_L1_error)
      __pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3);
    } else {
      __pyx_t_3 = NULL;
      if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_3) < 0) __PYX_ERR(6, 166, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_response);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_response, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":167
 *     while True:
 *         response = await queue.get()
 *         if response is EOF:             # <<<<<<<<<<<<<<
 *             break
 *         else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_EOF); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 167, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = (__pyx_cur_scope->__pyx_v_response == __pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":168
 *         response = await queue.get()
 *         if response is EOF:
 *             break             # <<<<<<<<<<<<<<
 *         else:
 *             yield response
 */
      goto __pyx_L5_break;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":167
 *     while True:
 *         response = await queue.get()
 *         if response is EOF:             # <<<<<<<<<<<<<<
 *             break
 *         else:
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":170
 *             break
 *         else:
 *             yield response             # <<<<<<<<<<<<<<
 * 
 *     # Port the exception if there is any
 */
    /*else*/ {
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_response);
      __pyx_r = __pyx_cur_scope->__pyx_v_response;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from async generator, yielding value */
      __pyx_generator->resume_label = 2;
      return __Pyx__PyAsyncGenValueWrapperNew(__pyx_r);
      __pyx_L8_resume_from_yield:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(6, 170, __pyx_L1_error)
    }
  }
  __pyx_L5_break:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":173
 * 
 *     # Port the exception if there is any
 *     await future             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_future);
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from async generator, awaiting value */
    __pyx_generator->resume_label = 3;
    return __pyx_r;
    __pyx_L9_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(6, 173, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(6, 173, __pyx_L1_error)
    }
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":141
 * 
 * 
 * async def generator_to_async_generator(object gen, object loop, object thread_pool):             # <<<<<<<<<<<<<<
 *     """Converts a generator into async generator.
 * 
 */

  /* function exit code */
  PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(1);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("generator_to_async_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":177
 * 
 * if PY_MAJOR_VERSION >= 3 and PY_MINOR_VERSION >= 7:
 *     def get_working_loop():             # <<<<<<<<<<<<<<
 *         """Returns a running event loop.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_119get_working_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_118get_working_loop, "Returns a running event loop.\n\n        Due to a defect of asyncio.get_event_loop, its returned event loop might\n        not be set as the default event loop for the main thread.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_119get_working_loop = {"get_working_loop", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_119get_working_loop, METH_NOARGS, __pyx_doc_4grpc_7_cython_6cygrpc_118get_working_loop};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_119get_working_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_working_loop (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_118get_working_loop(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_118get_working_loop(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  unsigned int __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_t_23;
  int __pyx_t_24;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_working_loop", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":183
 *         not be set as the default event loop for the main thread.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             return asyncio.get_running_loop()
 *         except RuntimeError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":184
 *         """
 *         try:
 *             return asyncio.get_running_loop()             # <<<<<<<<<<<<<<
 *         except RuntimeError:
 *             with warnings.catch_warnings():
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 184, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_get_running_loop); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 184, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = NULL;
      __pyx_t_7 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
          __pyx_t_7 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 184, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L7_try_return;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":183
 *         not be set as the default event loop for the main thread.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             return asyncio.get_running_loop()
 *         except RuntimeError:
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":185
 *         try:
 *             return asyncio.get_running_loop()
 *         except RuntimeError:             # <<<<<<<<<<<<<<
 *             with warnings.catch_warnings():
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 */
    __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_RuntimeError);
    if (__pyx_t_8) {
      __Pyx_AddTraceback("grpc._cython.cygrpc.get_working_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(6, 185, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_5);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":186
 *             return asyncio.get_running_loop()
 *         except RuntimeError:
 *             with warnings.catch_warnings():             # <<<<<<<<<<<<<<
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 *                 warnings.simplefilter("error", DeprecationWarning)
 */
      /*with:*/ {
        __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_warnings); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 186, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_catch_warnings); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 186, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = NULL;
        __pyx_t_7 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_11))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
          if (likely(__pyx_t_10)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
            __Pyx_INCREF(__pyx_t_10);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_11, function);
            __pyx_t_7 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 186, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        }
        __pyx_t_12 = __Pyx_PyObject_LookupSpecial(__pyx_t_9, __pyx_n_s_exit); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 186, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_10 = __Pyx_PyObject_LookupSpecial(__pyx_t_9, __pyx_n_s_enter); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 186, __pyx_L11_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_13 = NULL;
        __pyx_t_7 = 0;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_10))) {
          __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_10);
          if (likely(__pyx_t_13)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
            __Pyx_INCREF(__pyx_t_13);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_10, function);
            __pyx_t_7 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_13, NULL};
          __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 186, __pyx_L11_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        /*try:*/ {
          {
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __Pyx_ExceptionSave(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
            __Pyx_XGOTREF(__pyx_t_14);
            __Pyx_XGOTREF(__pyx_t_15);
            __Pyx_XGOTREF(__pyx_t_16);
            /*try:*/ {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":188
 *             with warnings.catch_warnings():
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 *                 warnings.simplefilter("error", DeprecationWarning)             # <<<<<<<<<<<<<<
 *                 try:
 *                     return asyncio.get_event_loop_policy().get_event_loop()
 */
              __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_warnings); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 188, __pyx_L17_error)
              __Pyx_GOTREF(__pyx_t_9);
              __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_simplefilter); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 188, __pyx_L17_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_tuple__48, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 188, __pyx_L17_error)
              __Pyx_GOTREF(__pyx_t_9);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":189
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 *                 warnings.simplefilter("error", DeprecationWarning)
 *                 try:             # <<<<<<<<<<<<<<
 *                     return asyncio.get_event_loop_policy().get_event_loop()
 *                 # Since version 3.12, DeprecationWarning is emitted if there is no
 */
              {
                __Pyx_PyThreadState_declare
                __Pyx_PyThreadState_assign
                __Pyx_ExceptionSave(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
                __Pyx_XGOTREF(__pyx_t_17);
                __Pyx_XGOTREF(__pyx_t_18);
                __Pyx_XGOTREF(__pyx_t_19);
                /*try:*/ {

                  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":190
 *                 warnings.simplefilter("error", DeprecationWarning)
 *                 try:
 *                     return asyncio.get_event_loop_policy().get_event_loop()             # <<<<<<<<<<<<<<
 *                 # Since version 3.12, DeprecationWarning is emitted if there is no
 *                 # current event loop.
 */
                  __Pyx_XDECREF(__pyx_r);
                  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 190, __pyx_L25_error)
                  __Pyx_GOTREF(__pyx_t_10);
                  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_get_event_loop_policy); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 190, __pyx_L25_error)
                  __Pyx_GOTREF(__pyx_t_13);
                  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                  __pyx_t_10 = NULL;
                  __pyx_t_7 = 0;
                  #if CYTHON_UNPACK_METHODS
                  if (unlikely(PyMethod_Check(__pyx_t_13))) {
                    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_13);
                    if (likely(__pyx_t_10)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
                      __Pyx_INCREF(__pyx_t_10);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_13, function);
                      __pyx_t_7 = 1;
                    }
                  }
                  #endif
                  {
                    PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL};
                    __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
                    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
                    if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 190, __pyx_L25_error)
                    __Pyx_GOTREF(__pyx_t_11);
                    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                  }
                  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_get_event_loop); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 190, __pyx_L25_error)
                  __Pyx_GOTREF(__pyx_t_13);
                  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                  __pyx_t_11 = NULL;
                  __pyx_t_7 = 0;
                  #if CYTHON_UNPACK_METHODS
                  if (likely(PyMethod_Check(__pyx_t_13))) {
                    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_13);
                    if (likely(__pyx_t_11)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
                      __Pyx_INCREF(__pyx_t_11);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_13, function);
                      __pyx_t_7 = 1;
                    }
                  }
                  #endif
                  {
                    PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
                    __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
                    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                    if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 190, __pyx_L25_error)
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                  }
                  __pyx_r = __pyx_t_9;
                  __pyx_t_9 = 0;
                  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                  goto __pyx_L29_try_return;

                  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":189
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 *                 warnings.simplefilter("error", DeprecationWarning)
 *                 try:             # <<<<<<<<<<<<<<
 *                     return asyncio.get_event_loop_policy().get_event_loop()
 *                 # Since version 3.12, DeprecationWarning is emitted if there is no
 */
                }
                __pyx_L25_error:;
                __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
                __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":193
 *                 # Since version 3.12, DeprecationWarning is emitted if there is no
 *                 # current event loop.
 *                 except DeprecationWarning:             # <<<<<<<<<<<<<<
 *                     return asyncio.get_event_loop_policy().new_event_loop()
 * else:
 */
                __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_DeprecationWarning);
                if (__pyx_t_8) {
                  __Pyx_AddTraceback("grpc._cython.cygrpc.get_working_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
                  if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_13, &__pyx_t_11) < 0) __PYX_ERR(6, 193, __pyx_L27_except_error)
                  __Pyx_XGOTREF(__pyx_t_9);
                  __Pyx_XGOTREF(__pyx_t_13);
                  __Pyx_XGOTREF(__pyx_t_11);

                  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":194
 *                 # current event loop.
 *                 except DeprecationWarning:
 *                     return asyncio.get_event_loop_policy().new_event_loop()             # <<<<<<<<<<<<<<
 * else:
 *     def get_working_loop():
 */
                  __Pyx_XDECREF(__pyx_r);
                  __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_21)) __PYX_ERR(6, 194, __pyx_L27_except_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_get_event_loop_policy); if (unlikely(!__pyx_t_22)) __PYX_ERR(6, 194, __pyx_L27_except_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __pyx_t_21 = NULL;
                  __pyx_t_7 = 0;
                  #if CYTHON_UNPACK_METHODS
                  if (unlikely(PyMethod_Check(__pyx_t_22))) {
                    __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_22);
                    if (likely(__pyx_t_21)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
                      __Pyx_INCREF(__pyx_t_21);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_22, function);
                      __pyx_t_7 = 1;
                    }
                  }
                  #endif
                  {
                    PyObject *__pyx_callargs[2] = {__pyx_t_21, NULL};
                    __pyx_t_20 = __Pyx_PyObject_FastCall(__pyx_t_22, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
                    __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
                    if (unlikely(!__pyx_t_20)) __PYX_ERR(6, 194, __pyx_L27_except_error)
                    __Pyx_GOTREF(__pyx_t_20);
                    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  }
                  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_n_s_new_event_loop); if (unlikely(!__pyx_t_22)) __PYX_ERR(6, 194, __pyx_L27_except_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
                  __pyx_t_20 = NULL;
                  __pyx_t_7 = 0;
                  #if CYTHON_UNPACK_METHODS
                  if (likely(PyMethod_Check(__pyx_t_22))) {
                    __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_22);
                    if (likely(__pyx_t_20)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
                      __Pyx_INCREF(__pyx_t_20);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_22, function);
                      __pyx_t_7 = 1;
                    }
                  }
                  #endif
                  {
                    PyObject *__pyx_callargs[2] = {__pyx_t_20, NULL};
                    __pyx_t_10 = __Pyx_PyObject_FastCall(__pyx_t_22, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
                    __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
                    if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 194, __pyx_L27_except_error)
                    __Pyx_GOTREF(__pyx_t_10);
                    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  }
                  __pyx_r = __pyx_t_10;
                  __pyx_t_10 = 0;
                  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                  goto __pyx_L28_except_return;
                }
                goto __pyx_L27_except_error;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":189
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 *                 warnings.simplefilter("error", DeprecationWarning)
 *                 try:             # <<<<<<<<<<<<<<
 *                     return asyncio.get_event_loop_policy().get_event_loop()
 *                 # Since version 3.12, DeprecationWarning is emitted if there is no
 */
                __pyx_L27_except_error:;
                __Pyx_XGIVEREF(__pyx_t_17);
                __Pyx_XGIVEREF(__pyx_t_18);
                __Pyx_XGIVEREF(__pyx_t_19);
                __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
                goto __pyx_L17_error;
                __pyx_L29_try_return:;
                __Pyx_XGIVEREF(__pyx_t_17);
                __Pyx_XGIVEREF(__pyx_t_18);
                __Pyx_XGIVEREF(__pyx_t_19);
                __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
                goto __pyx_L21_try_return;
                __pyx_L28_except_return:;
                __Pyx_XGIVEREF(__pyx_t_17);
                __Pyx_XGIVEREF(__pyx_t_18);
                __Pyx_XGIVEREF(__pyx_t_19);
                __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
                goto __pyx_L21_try_return;
              }

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":186
 *             return asyncio.get_running_loop()
 *         except RuntimeError:
 *             with warnings.catch_warnings():             # <<<<<<<<<<<<<<
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 *                 warnings.simplefilter("error", DeprecationWarning)
 */
            }
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
            __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
            __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            /*except:*/ {
              __Pyx_AddTraceback("grpc._cython.cygrpc.get_working_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_13, &__pyx_t_9) < 0) __PYX_ERR(6, 186, __pyx_L19_except_error)
              __Pyx_XGOTREF(__pyx_t_11);
              __Pyx_XGOTREF(__pyx_t_13);
              __Pyx_XGOTREF(__pyx_t_9);
              __pyx_t_10 = PyTuple_Pack(3, __pyx_t_11, __pyx_t_13, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 186, __pyx_L19_except_error)
              __Pyx_GOTREF(__pyx_t_10);
              __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_10, NULL);
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
              if (unlikely(!__pyx_t_19)) __PYX_ERR(6, 186, __pyx_L19_except_error)
              __Pyx_GOTREF(__pyx_t_19);
              __pyx_t_23 = __Pyx_PyObject_IsTrue(__pyx_t_19);
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              if (__pyx_t_23 < 0) __PYX_ERR(6, 186, __pyx_L19_except_error)
              __pyx_t_24 = (!__pyx_t_23);
              if (unlikely(__pyx_t_24)) {
                __Pyx_GIVEREF(__pyx_t_11);
                __Pyx_GIVEREF(__pyx_t_13);
                __Pyx_XGIVEREF(__pyx_t_9);
                __Pyx_ErrRestoreWithState(__pyx_t_11, __pyx_t_13, __pyx_t_9);
                __pyx_t_11 = 0; __pyx_t_13 = 0; __pyx_t_9 = 0; 
                __PYX_ERR(6, 186, __pyx_L19_except_error)
              }
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_14);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
            goto __pyx_L5_except_error;
            __pyx_L21_try_return:;
            __Pyx_XGIVEREF(__pyx_t_14);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
            goto __pyx_L14_return;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_14);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_12) {
              __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_tuple__11, NULL);
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              if (unlikely(!__pyx_t_16)) __PYX_ERR(6, 186, __pyx_L5_except_error)
              __Pyx_GOTREF(__pyx_t_16);
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L14_return: {
            __pyx_t_16 = __pyx_r;
            __pyx_r = 0;
            if (__pyx_t_12) {
              __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_tuple__11, NULL);
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              if (unlikely(!__pyx_t_15)) __PYX_ERR(6, 186, __pyx_L5_except_error)
              __Pyx_GOTREF(__pyx_t_15);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            }
            __pyx_r = __pyx_t_16;
            __pyx_t_16 = 0;
            goto __pyx_L6_except_return;
          }
          __pyx_L16:;
        }
        goto __pyx_L38;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        goto __pyx_L5_except_error;
        __pyx_L38:;
      }
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":183
 *         not be set as the default event loop for the main thread.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             return asyncio.get_running_loop()
 *         except RuntimeError:
 */
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":177
 * 
 * if PY_MAJOR_VERSION >= 3 and PY_MINOR_VERSION >= 7:
 *     def get_working_loop():             # <<<<<<<<<<<<<<
 *         """Returns a running event loop.
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_AddTraceback("grpc._cython.cygrpc.get_working_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":196
 *                     return asyncio.get_event_loop_policy().new_event_loop()
 * else:
 *     def get_working_loop():             # <<<<<<<<<<<<<<
 *         """Returns a running event loop."""
 *         return asyncio.get_event_loop()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_121get_working_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_120get_working_loop, "Returns a running event loop.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_121get_working_loop = {"get_working_loop", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_121get_working_loop, METH_NOARGS, __pyx_doc_4grpc_7_cython_6cygrpc_120get_working_loop};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_121get_working_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_working_loop (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_120get_working_loop(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_120get_working_loop(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_working_loop", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":198
 *     def get_working_loop():
 *         """Returns a running event loop."""
 *         return asyncio.get_event_loop()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get_event_loop); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":196
 *                     return asyncio.get_event_loop_policy().new_event_loop()
 * else:
 *     def get_working_loop():             # <<<<<<<<<<<<<<
 *         """Returns a running event loop."""
 *         return asyncio.get_event_loop()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.get_working_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":201
 * 
 * 
 * def raise_if_not_valid_trailing_metadata(object metadata):             # <<<<<<<<<<<<<<
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_123raise_if_not_valid_trailing_metadata(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_123raise_if_not_valid_trailing_metadata = {"raise_if_not_valid_trailing_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_123raise_if_not_valid_trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_123raise_if_not_valid_trailing_metadata(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("raise_if_not_valid_trailing_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_metadata,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 201, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "raise_if_not_valid_trailing_metadata") < 0)) __PYX_ERR(6, 201, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_metadata = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("raise_if_not_valid_trailing_metadata", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 201, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.raise_if_not_valid_trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_122raise_if_not_valid_trailing_metadata(__pyx_self, __pyx_v_metadata);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_122raise_if_not_valid_trailing_metadata(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_metadata) {
  PyObject *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  Py_UCS4 __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *(*__pyx_t_9)(PyObject *);
  Py_ssize_t __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("raise_if_not_valid_trailing_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":202
 * 
 * def raise_if_not_valid_trailing_metadata(object metadata):
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):             # <<<<<<<<<<<<<<
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *     for item in metadata:
 */
  __pyx_t_2 = __Pyx_HasAttr(__pyx_v_metadata, __pyx_n_s_iter); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(6, 202, __pyx_L1_error)
  __pyx_t_3 = (!__pyx_t_2);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = PyDict_Check(__pyx_v_metadata); 
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":203
 * def raise_if_not_valid_trailing_metadata(object metadata):
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')             # <<<<<<<<<<<<<<
 *     for item in metadata:
 *         if not isinstance(item, tuple):
 */
    __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 0;
    __pyx_t_6 = 127;
    __Pyx_INCREF(__pyx_kp_u_Invalid_trailing_metadata_type_e);
    __pyx_t_5 += 41;
    __Pyx_GIVEREF(__pyx_kp_u_Invalid_trailing_metadata_type_e);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u_Invalid_trailing_metadata_type_e);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_TYPE_METADATA_STRING); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_6;
    __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_8);
    __pyx_t_8 = 0;
    __Pyx_INCREF(__pyx_kp_u__49);
    __pyx_t_5 += 2;
    __Pyx_GIVEREF(__pyx_kp_u__49);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_kp_u__49);
    __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_metadata, __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_6;
    __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_8);
    __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_4, 4, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(6, 203, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":202
 * 
 * def raise_if_not_valid_trailing_metadata(object metadata):
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):             # <<<<<<<<<<<<<<
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *     for item in metadata:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":204
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *     for item in metadata:             # <<<<<<<<<<<<<<
 *         if not isinstance(item, tuple):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 */
  if (likely(PyList_CheckExact(__pyx_v_metadata)) || PyTuple_CheckExact(__pyx_v_metadata)) {
    __pyx_t_4 = __pyx_v_metadata; __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_metadata); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 204, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_9)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 204, __pyx_L1_error)
          #endif
          if (__pyx_t_5 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_8 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(6, 204, __pyx_L1_error)
        #else
        __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 204, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 204, __pyx_L1_error)
          #endif
          if (__pyx_t_5 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(6, 204, __pyx_L1_error)
        #else
        __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 204, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        #endif
      }
    } else {
      __pyx_t_8 = __pyx_t_9(__pyx_t_4);
      if (unlikely(!__pyx_t_8)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(6, 204, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_8);
    }
    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_8);
    __pyx_t_8 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":205
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *     for item in metadata:
 *         if not isinstance(item, tuple):             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if len(item) != 2:
 */
    __pyx_t_1 = PyTuple_Check(__pyx_v_item); 
    __pyx_t_3 = (!__pyx_t_1);
    if (unlikely(__pyx_t_3)) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":206
 *     for item in metadata:
 *         if not isinstance(item, tuple):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')             # <<<<<<<<<<<<<<
 *         if len(item) != 2:
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 */
      __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_10 = 0;
      __pyx_t_6 = 127;
      __Pyx_INCREF(__pyx_kp_u_Invalid_trailing_metadata_type_e);
      __pyx_t_10 += 41;
      __Pyx_GIVEREF(__pyx_kp_u_Invalid_trailing_metadata_type_e);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_kp_u_Invalid_trailing_metadata_type_e);
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_TYPE_METADATA_STRING); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_11 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11) : __pyx_t_6;
      __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11);
      __Pyx_GIVEREF(__pyx_t_11);
      PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_11);
      __pyx_t_11 = 0;
      __Pyx_INCREF(__pyx_kp_u__49);
      __pyx_t_10 += 2;
      __Pyx_GIVEREF(__pyx_kp_u__49);
      PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_kp_u__49);
      __pyx_t_11 = __Pyx_PyObject_FormatSimple(__pyx_v_metadata, __pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11) : __pyx_t_6;
      __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11);
      __Pyx_GIVEREF(__pyx_t_11);
      PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_11);
      __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_PyUnicode_Join(__pyx_t_8, 4, __pyx_t_10, __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(6, 206, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":205
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *     for item in metadata:
 *         if not isinstance(item, tuple):             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if len(item) != 2:
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":207
 *         if not isinstance(item, tuple):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if len(item) != 2:             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[0], str):
 */
    __pyx_t_10 = PyObject_Length(__pyx_v_item); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(6, 207, __pyx_L1_error)
    __pyx_t_3 = (__pyx_t_10 != 2);
    if (unlikely(__pyx_t_3)) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":208
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if len(item) != 2:
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')             # <<<<<<<<<<<<<<
 *         if not isinstance(item[0], str):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 */
      __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 208, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_10 = 0;
      __pyx_t_6 = 127;
      __Pyx_INCREF(__pyx_kp_u_Invalid_trailing_metadata_type_e);
      __pyx_t_10 += 41;
      __Pyx_GIVEREF(__pyx_kp_u_Invalid_trailing_metadata_type_e);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_kp_u_Invalid_trailing_metadata_type_e);
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_TYPE_METADATA_STRING); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 208, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_t_11, __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 208, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_6;
      __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7);
      __pyx_t_7 = 0;
      __Pyx_INCREF(__pyx_kp_u__49);
      __pyx_t_10 += 2;
      __Pyx_GIVEREF(__pyx_kp_u__49);
      PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_kp_u__49);
      __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_v_metadata, __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 208, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_6;
      __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_8, 4, __pyx_t_10, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 208, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 208, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(6, 208, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":207
 *         if not isinstance(item, tuple):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if len(item) != 2:             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[0], str):
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":209
 *         if len(item) != 2:
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[0], str):             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[1], str) and not isinstance(item[1], bytes):
 */
    __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_item, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 209, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_3 = PyString_Check(__pyx_t_8); 
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_1 = (!__pyx_t_3);
    if (unlikely(__pyx_t_1)) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":210
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[0], str):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')             # <<<<<<<<<<<<<<
 *         if not isinstance(item[1], str) and not isinstance(item[1], bytes):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 */
      __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 210, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_10 = 0;
      __pyx_t_6 = 127;
      __Pyx_INCREF(__pyx_kp_u_Invalid_trailing_metadata_type_e);
      __pyx_t_10 += 41;
      __Pyx_GIVEREF(__pyx_kp_u_Invalid_trailing_metadata_type_e);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_kp_u_Invalid_trailing_metadata_type_e);
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_TYPE_METADATA_STRING); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 210, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_11 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 210, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11) : __pyx_t_6;
      __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11);
      __Pyx_GIVEREF(__pyx_t_11);
      PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_11);
      __pyx_t_11 = 0;
      __Pyx_INCREF(__pyx_kp_u__49);
      __pyx_t_10 += 2;
      __Pyx_GIVEREF(__pyx_kp_u__49);
      PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_kp_u__49);
      __pyx_t_11 = __Pyx_PyObject_FormatSimple(__pyx_v_metadata, __pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 210, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11) : __pyx_t_6;
      __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11);
      __Pyx_GIVEREF(__pyx_t_11);
      PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_11);
      __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_PyUnicode_Join(__pyx_t_8, 4, __pyx_t_10, __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 210, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 210, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(6, 210, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":209
 *         if len(item) != 2:
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[0], str):             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[1], str) and not isinstance(item[1], bytes):
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":211
 *         if not isinstance(item[0], str):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[1], str) and not isinstance(item[1], bytes):             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 */
    __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_item, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_3 = PyString_Check(__pyx_t_8); 
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_2 = (!__pyx_t_3);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L12_bool_binop_done;
    }
    __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_item, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_2 = PyBytes_Check(__pyx_t_8); 
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_3 = (!__pyx_t_2);
    __pyx_t_1 = __pyx_t_3;
    __pyx_L12_bool_binop_done:;
    if (unlikely(__pyx_t_1)) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":212
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[1], str) and not isinstance(item[1], bytes):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')             # <<<<<<<<<<<<<<
 */
      __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 212, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_10 = 0;
      __pyx_t_6 = 127;
      __Pyx_INCREF(__pyx_kp_u_Invalid_trailing_metadata_type_e);
      __pyx_t_10 += 41;
      __Pyx_GIVEREF(__pyx_kp_u_Invalid_trailing_metadata_type_e);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_kp_u_Invalid_trailing_metadata_type_e);
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_TYPE_METADATA_STRING); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 212, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_t_11, __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 212, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_6;
      __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7);
      __pyx_t_7 = 0;
      __Pyx_INCREF(__pyx_kp_u__49);
      __pyx_t_10 += 2;
      __Pyx_GIVEREF(__pyx_kp_u__49);
      PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_kp_u__49);
      __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_v_metadata, __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 212, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_6;
      __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_8, 4, __pyx_t_10, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 212, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 212, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(6, 212, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":211
 *         if not isinstance(item[0], str):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[1], str) and not isinstance(item[1], bytes):             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":204
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *     for item in metadata:             # <<<<<<<<<<<<<<
 *         if not isinstance(item, tuple):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 */
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":201
 * 
 * 
 * def raise_if_not_valid_trailing_metadata(object metadata):             # <<<<<<<<<<<<<<
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("grpc._cython.cygrpc.raise_if_not_valid_trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":21
 *     # The final status of gRPC is represented by three trailing metadata:
 *     # `grpc-status`, `grpc-status-message`, abd `grpc-status-details`.
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   grpc_status_code code,
 *                   str details,
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  grpc_status_code __pyx_v_code;
  PyObject *__pyx_v_details = 0;
  PyObject *__pyx_v_trailing_metadata = 0;
  PyObject *__pyx_v_debug_error_string = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_code,&__pyx_n_s_details,&__pyx_n_s_trailing_metadata,&__pyx_n_s_debug_error_string,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_code)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(30, 21, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(30, 21, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 1); __PYX_ERR(30, 21, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_trailing_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(30, 21, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 2); __PYX_ERR(30, 21, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_debug_error_string)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(30, 21, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 3); __PYX_ERR(30, 21, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(30, 21, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
      values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
    }
    __pyx_v_code = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(30, 22, __pyx_L3_error)
    __pyx_v_details = ((PyObject*)values[1]);
    __pyx_v_trailing_metadata = ((PyObject*)values[2]);
    __pyx_v_debug_error_string = ((PyObject*)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, __pyx_nargs); __PYX_ERR(30, 21, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_details), (&PyString_Type), 1, "details", 1))) __PYX_ERR(30, 23, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_trailing_metadata), (&PyTuple_Type), 1, "trailing_metadata", 1))) __PYX_ERR(30, 24, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_debug_error_string), (&PyString_Type), 1, "debug_error_string", 1))) __PYX_ERR(30, 25, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self), __pyx_v_code, __pyx_v_details, __pyx_v_trailing_metadata, __pyx_v_debug_error_string);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, grpc_status_code __pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata, PyObject *__pyx_v_debug_error_string) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":26
 *                   tuple trailing_metadata,
 *                   str debug_error_string):
 *         self._code = code             # <<<<<<<<<<<<<<
 *         self._details = details
 *         self._trailing_metadata = trailing_metadata
 */
  __pyx_v_self->_code = __pyx_v_code;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":27
 *                   str debug_error_string):
 *         self._code = code
 *         self._details = details             # <<<<<<<<<<<<<<
 *         self._trailing_metadata = trailing_metadata
 *         self._debug_error_string = debug_error_string
 */
  __Pyx_INCREF(__pyx_v_details);
  __Pyx_GIVEREF(__pyx_v_details);
  __Pyx_GOTREF(__pyx_v_self->_details);
  __Pyx_DECREF(__pyx_v_self->_details);
  __pyx_v_self->_details = __pyx_v_details;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":28
 *         self._code = code
 *         self._details = details
 *         self._trailing_metadata = trailing_metadata             # <<<<<<<<<<<<<<
 *         self._debug_error_string = debug_error_string
 * 
 */
  __Pyx_INCREF(__pyx_v_trailing_metadata);
  __Pyx_GIVEREF(__pyx_v_trailing_metadata);
  __Pyx_GOTREF(__pyx_v_self->_trailing_metadata);
  __Pyx_DECREF(__pyx_v_self->_trailing_metadata);
  __pyx_v_self->_trailing_metadata = __pyx_v_trailing_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":29
 *         self._details = details
 *         self._trailing_metadata = trailing_metadata
 *         self._debug_error_string = debug_error_string             # <<<<<<<<<<<<<<
 * 
 *     cpdef grpc_status_code code(self):
 */
  __Pyx_INCREF(__pyx_v_debug_error_string);
  __Pyx_GIVEREF(__pyx_v_debug_error_string);
  __Pyx_GOTREF(__pyx_v_self->_debug_error_string);
  __Pyx_DECREF(__pyx_v_self->_debug_error_string);
  __pyx_v_self->_debug_error_string = __pyx_v_debug_error_string;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":21
 *     # The final status of gRPC is represented by three trailing metadata:
 *     # `grpc-status`, `grpc-status-message`, abd `grpc-status-details`.
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   grpc_status_code code,
 *                   str details,
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":31
 *         self._debug_error_string = debug_error_string
 * 
 *     cpdef grpc_status_code code(self):             # <<<<<<<<<<<<<<
 *         return self._code
 * 
 */

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_3code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static grpc_status_code __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_code(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch) {
  grpc_status_code __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  grpc_status_code __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("code", 1);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 31, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_3code)) {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        __pyx_t_5 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
            __pyx_t_5 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 31, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
        __pyx_t_6 = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(30, 31, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":32
 * 
 *     cpdef grpc_status_code code(self):
 *         return self._code             # <<<<<<<<<<<<<<
 * 
 *     cpdef str details(self):
 */
  __pyx_r = __pyx_v_self->_code;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":31
 *         self._debug_error_string = debug_error_string
 * 
 *     cpdef grpc_status_code code(self):             # <<<<<<<<<<<<<<
 *         return self._code
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = (grpc_status_code) 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_3code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_3code = {"code", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_3code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_3code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("code (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("code", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "code", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_2code(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_2code(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  grpc_status_code __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("code", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_code(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(30, 31, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyInt_From_grpc_status_code(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":34
 *         return self._code
 * 
 *     cpdef str details(self):             # <<<<<<<<<<<<<<
 *         return self._details
 * 
 */

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_details(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("details", 1);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_details); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 34, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5details)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        __pyx_t_5 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
            __pyx_t_5 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 34, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
        if (!(likely(PyString_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(30, 34, __pyx_L1_error)
        __pyx_r = ((PyObject*)__pyx_t_2);
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":35
 * 
 *     cpdef str details(self):
 *         return self._details             # <<<<<<<<<<<<<<
 * 
 *     cpdef tuple trailing_metadata(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_details);
  __pyx_r = __pyx_v_self->_details;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":34
 *         return self._code
 * 
 *     cpdef str details(self):             # <<<<<<<<<<<<<<
 *         return self._details
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.details", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_5details = {"details", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("details (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("details", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "details", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_4details(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_4details(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("details", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_details(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.details", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":37
 *         return self._details
 * 
 *     cpdef tuple trailing_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._trailing_metadata
 * 
 */

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_7trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("trailing_metadata", 1);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trailing_metadata); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 37, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_7trailing_metadata)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        __pyx_t_5 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
            __pyx_t_5 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 37, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
        if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(30, 37, __pyx_L1_error)
        __pyx_r = ((PyObject*)__pyx_t_2);
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":38
 * 
 *     cpdef tuple trailing_metadata(self):
 *         return self._trailing_metadata             # <<<<<<<<<<<<<<
 * 
 *     cpdef str debug_error_string(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_trailing_metadata);
  __pyx_r = __pyx_v_self->_trailing_metadata;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":37
 *         return self._details
 * 
 *     cpdef tuple trailing_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._trailing_metadata
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_7trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_7trailing_metadata = {"trailing_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_7trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_7trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("trailing_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("trailing_metadata", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "trailing_metadata", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_6trailing_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_6trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("trailing_metadata", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_trailing_metadata(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":40
 *         return self._trailing_metadata
 * 
 *     cpdef str debug_error_string(self):             # <<<<<<<<<<<<<<
 *         return self._debug_error_string
 * 
 */

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_9debug_error_string(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_debug_error_string(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("debug_error_string", 1);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_debug_error_string); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 40, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_9debug_error_string)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        __pyx_t_5 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
            __pyx_t_5 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 40, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
        if (!(likely(PyString_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(30, 40, __pyx_L1_error)
        __pyx_r = ((PyObject*)__pyx_t_2);
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":41
 * 
 *     cpdef str debug_error_string(self):
 *         return self._debug_error_string             # <<<<<<<<<<<<<<
 * 
 *     cdef grpc_status_code c_code(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_debug_error_string);
  __pyx_r = __pyx_v_self->_debug_error_string;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":40
 *         return self._trailing_metadata
 * 
 *     cpdef str debug_error_string(self):             # <<<<<<<<<<<<<<
 *         return self._debug_error_string
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.debug_error_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_9debug_error_string(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_9debug_error_string = {"debug_error_string", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_9debug_error_string, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_9debug_error_string(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("debug_error_string (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("debug_error_string", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "debug_error_string", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_8debug_error_string(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_8debug_error_string(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("debug_error_string", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_debug_error_string(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.debug_error_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":43
 *         return self._debug_error_string
 * 
 *     cdef grpc_status_code c_code(self):             # <<<<<<<<<<<<<<
 *         return <grpc_status_code>self._code
 */

static grpc_status_code __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_c_code(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  grpc_status_code __pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":44
 * 
 *     cdef grpc_status_code c_code(self):
 *         return <grpc_status_code>self._code             # <<<<<<<<<<<<<<
 */
  __pyx_r = ((grpc_status_code)__pyx_v_self->_code);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":43
 *         return self._debug_error_string
 * 
 *     cdef grpc_status_code c_code(self):             # <<<<<<<<<<<<<<
 *         return <grpc_status_code>self._code
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pxd.pxi":19
 * cdef class AioRpcStatus(Exception):
 *     cdef readonly:
 *         grpc_status_code _code             # <<<<<<<<<<<<<<
 *         str _details
 *         # Per the spec, only client-side status has trailing metadata.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5_code_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5_code_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_5_code___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_5_code___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_status_code(__pyx_v_self->_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus._code.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pxd.pxi":20
 *     cdef readonly:
 *         grpc_status_code _code
 *         str _details             # <<<<<<<<<<<<<<
 *         # Per the spec, only client-side status has trailing metadata.
 *         tuple _trailing_metadata
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_8_details_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_8_details_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_8_details___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_8_details___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_details);
  __pyx_r = __pyx_v_self->_details;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pxd.pxi":22
 *         str _details
 *         # Per the spec, only client-side status has trailing metadata.
 *         tuple _trailing_metadata             # <<<<<<<<<<<<<<
 *         str _debug_error_string
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_18_trailing_metadata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_18_trailing_metadata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_18_trailing_metadata___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_18_trailing_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_trailing_metadata);
  __pyx_r = __pyx_v_self->_trailing_metadata;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pxd.pxi":23
 *         # Per the spec, only client-side status has trailing metadata.
 *         tuple _trailing_metadata
 *         str _debug_error_string             # <<<<<<<<<<<<<<
 * 
 *     cpdef grpc_status_code code(self)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_19_debug_error_string_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_19_debug_error_string_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_19_debug_error_string___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_19_debug_error_string___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_debug_error_string);
  __pyx_r = __pyx_v_self->_debug_error_string;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_10__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_12__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":30
 *     from posix cimport unistd
 * 
 *     cdef void _unified_socket_write(int fd) nogil:             # <<<<<<<<<<<<<<
 *         unistd.write(fd, b"1", 1)
 * 
 */

static void __pyx_f_4grpc_7_cython_6cygrpc__unified_socket_write(int __pyx_v_fd) {

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":31
 * 
 *     cdef void _unified_socket_write(int fd) nogil:
 *         unistd.write(fd, b"1", 1)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  (void)(write(__pyx_v_fd, ((char *)"1"), 1));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":30
 *     from posix cimport unistd
 * 
 *     cdef void _unified_socket_write(int fd) nogil:             # <<<<<<<<<<<<<<
 *         unistd.write(fd, b"1", 1)
 * 
 */

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":34
 * 
 * 
 * def _handle_callback_wrapper(CallbackWrapper callback_wrapper, int success):             # <<<<<<<<<<<<<<
 *     CallbackWrapper.functor_run(callback_wrapper.c_functor(), success)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_125_handle_callback_wrapper(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_125_handle_callback_wrapper = {"_handle_callback_wrapper", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_125_handle_callback_wrapper, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_125_handle_callback_wrapper(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_callback_wrapper = 0;
  int __pyx_v_success;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_callback_wrapper (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_callback_wrapper,&__pyx_n_s_success,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_callback_wrapper)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 34, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_success)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 34, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_callback_wrapper", 1, 2, 2, 1); __PYX_ERR(7, 34, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_handle_callback_wrapper") < 0)) __PYX_ERR(7, 34, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_callback_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)values[0]);
    __pyx_v_success = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_success == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 34, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_callback_wrapper", 1, 2, 2, __pyx_nargs); __PYX_ERR(7, 34, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_callback_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_callback_wrapper), __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper, 1, "callback_wrapper", 0))) __PYX_ERR(7, 34, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_124_handle_callback_wrapper(__pyx_self, __pyx_v_callback_wrapper, __pyx_v_success);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_124_handle_callback_wrapper(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_callback_wrapper, int __pyx_v_success) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  grpc_completion_queue_functor *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_callback_wrapper", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":35
 * 
 * def _handle_callback_wrapper(CallbackWrapper callback_wrapper, int success):
 *     CallbackWrapper.functor_run(callback_wrapper.c_functor(), success)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_v_callback_wrapper->__pyx_vtab)->c_functor(__pyx_v_callback_wrapper); if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 35, __pyx_L1_error)
  __pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_functor_run(__pyx_t_1, __pyx_v_success);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":34
 * 
 * 
 * def _handle_callback_wrapper(CallbackWrapper callback_wrapper, int success):             # <<<<<<<<<<<<<<
 *     CallbackWrapper.functor_run(callback_wrapper.c_functor(), success)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_callback_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":40
 * cdef class BaseCompletionQueue:
 * 
 *     cdef grpc_completion_queue* c_ptr(self):             # <<<<<<<<<<<<<<
 *         return self._cq
 * 
 */

static grpc_completion_queue *__pyx_f_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_c_ptr(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_v_self) {
  grpc_completion_queue *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":41
 * 
 *     cdef grpc_completion_queue* c_ptr(self):
 *         return self._cq             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_self->_cq;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":40
 * cdef class BaseCompletionQueue:
 * 
 *     cdef grpc_completion_queue* c_ptr(self):             # <<<<<<<<<<<<<<
 *         return self._cq
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BaseCompletionQueue___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BaseCompletionQueue___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self__cq_cannot_be_converted_to, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.BaseCompletionQueue.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.BaseCompletionQueue.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self__cq_cannot_be_converted_to, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.BaseCompletionQueue.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":46
 * cdef class _BoundEventLoop:
 * 
 *     def __cinit__(self, object loop, object read_socket, object handler):             # <<<<<<<<<<<<<<
 *         global _has_fd_monitoring
 *         self.loop = loop
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_loop = 0;
  PyObject *__pyx_v_read_socket = 0;
  PyObject *__pyx_v_handler = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_loop,&__pyx_n_s_read_socket,&__pyx_n_s_handler,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 46, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_read_socket)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 46, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 1); __PYX_ERR(7, 46, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_handler)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 46, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 2); __PYX_ERR(7, 46, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(7, 46, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
    }
    __pyx_v_loop = values[0];
    __pyx_v_read_socket = values[1];
    __pyx_v_handler = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 46, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._BoundEventLoop.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)__pyx_v_self), __pyx_v_loop, __pyx_v_read_socket, __pyx_v_handler);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self, PyObject *__pyx_v_loop, PyObject *__pyx_v_read_socket, PyObject *__pyx_v_handler) {
  PyObject *__pyx_v_reader_function = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":48
 *     def __cinit__(self, object loop, object read_socket, object handler):
 *         global _has_fd_monitoring
 *         self.loop = loop             # <<<<<<<<<<<<<<
 *         self.read_socket = read_socket
 *         reader_function = functools.partial(
 */
  __Pyx_INCREF(__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_v_loop);
  __Pyx_GOTREF(__pyx_v_self->loop);
  __Pyx_DECREF(__pyx_v_self->loop);
  __pyx_v_self->loop = __pyx_v_loop;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":49
 *         global _has_fd_monitoring
 *         self.loop = loop
 *         self.read_socket = read_socket             # <<<<<<<<<<<<<<
 *         reader_function = functools.partial(
 *             handler,
 */
  __Pyx_INCREF(__pyx_v_read_socket);
  __Pyx_GIVEREF(__pyx_v_read_socket);
  __Pyx_GOTREF(__pyx_v_self->read_socket);
  __Pyx_DECREF(__pyx_v_self->read_socket);
  __pyx_v_self->read_socket = __pyx_v_read_socket;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":50
 *         self.loop = loop
 *         self.read_socket = read_socket
 *         reader_function = functools.partial(             # <<<<<<<<<<<<<<
 *             handler,
 *             loop
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_functools); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_partial); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":52
 *         reader_function = functools.partial(
 *             handler,
 *             loop             # <<<<<<<<<<<<<<
 *         )
 *         # NOTE(lidiz) There isn't a way to cleanly pre-check if fd monitoring
 */
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_handler, __pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 50, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_reader_function = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":58
 *         # good enough. The application can has its own loop implementation, or
 *         # uses different types of event loops (e.g., 1 Proactor, 3 Selectors).
 *         if _has_fd_monitoring:             # <<<<<<<<<<<<<<
 *             try:
 *                 self.loop.add_reader(self.read_socket, reader_function)
 */
  if (__pyx_v_4grpc_7_cython_6cygrpc__has_fd_monitoring) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":59
 *         # uses different types of event loops (e.g., 1 Proactor, 3 Selectors).
 *         if _has_fd_monitoring:
 *             try:             # <<<<<<<<<<<<<<
 *                 self.loop.add_reader(self.read_socket, reader_function)
 *                 self._has_reader = True
 */
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":60
 *         if _has_fd_monitoring:
 *             try:
 *                 self.loop.add_reader(self.read_socket, reader_function)             # <<<<<<<<<<<<<<
 *                 self._has_reader = True
 *             except NotImplementedError:
 */
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->loop, __pyx_n_s_add_reader); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 60, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = NULL;
        __pyx_t_4 = 0;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_2)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_2);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
            __pyx_t_4 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_self->read_socket, __pyx_v_reader_function};
          __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 60, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":61
 *             try:
 *                 self.loop.add_reader(self.read_socket, reader_function)
 *                 self._has_reader = True             # <<<<<<<<<<<<<<
 *             except NotImplementedError:
 *                 _has_fd_monitoring = False
 */
        __pyx_v_self->_has_reader = 1;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":59
 *         # uses different types of event loops (e.g., 1 Proactor, 3 Selectors).
 *         if _has_fd_monitoring:
 *             try:             # <<<<<<<<<<<<<<
 *                 self.loop.add_reader(self.read_socket, reader_function)
 *                 self._has_reader = True
 */
      }
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L9_try_end;
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":62
 *                 self.loop.add_reader(self.read_socket, reader_function)
 *                 self._has_reader = True
 *             except NotImplementedError:             # <<<<<<<<<<<<<<
 *                 _has_fd_monitoring = False
 *                 self._has_reader = False
 */
      __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_NotImplementedError);
      if (__pyx_t_8) {
        __Pyx_AddTraceback("grpc._cython.cygrpc._BoundEventLoop.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_2) < 0) __PYX_ERR(7, 62, __pyx_L6_except_error)
        __Pyx_XGOTREF(__pyx_t_1);
        __Pyx_XGOTREF(__pyx_t_3);
        __Pyx_XGOTREF(__pyx_t_2);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":63
 *                 self._has_reader = True
 *             except NotImplementedError:
 *                 _has_fd_monitoring = False             # <<<<<<<<<<<<<<
 *                 self._has_reader = False
 * 
 */
        __pyx_v_4grpc_7_cython_6cygrpc__has_fd_monitoring = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":64
 *             except NotImplementedError:
 *                 _has_fd_monitoring = False
 *                 self._has_reader = False             # <<<<<<<<<<<<<<
 * 
 *     def close(self):
 */
        __pyx_v_self->_has_reader = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        goto __pyx_L5_exception_handled;
      }
      goto __pyx_L6_except_error;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":59
 *         # uses different types of event loops (e.g., 1 Proactor, 3 Selectors).
 *         if _has_fd_monitoring:
 *             try:             # <<<<<<<<<<<<<<
 *                 self.loop.add_reader(self.read_socket, reader_function)
 *                 self._has_reader = True
 */
      __pyx_L6_except_error:;
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
      goto __pyx_L1_error;
      __pyx_L5_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
      __pyx_L9_try_end:;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":58
 *         # good enough. The application can has its own loop implementation, or
 *         # uses different types of event loops (e.g., 1 Proactor, 3 Selectors).
 *         if _has_fd_monitoring:             # <<<<<<<<<<<<<<
 *             try:
 *                 self.loop.add_reader(self.read_socket, reader_function)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":46
 * cdef class _BoundEventLoop:
 * 
 *     def __cinit__(self, object loop, object read_socket, object handler):             # <<<<<<<<<<<<<<
 *         global _has_fd_monitoring
 *         self.loop = loop
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._BoundEventLoop.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_reader_function);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":66
 *                 self._has_reader = False
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         if self.loop:
 *             if self._has_reader:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_3close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15_BoundEventLoop_3close = {"close", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_3close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_3close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("close", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "close", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_2close(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_2close(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("close", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":67
 * 
 *     def close(self):
 *         if self.loop:             # <<<<<<<<<<<<<<
 *             if self._has_reader:
 *                 self.loop.remove_reader(self.read_socket)
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->loop); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(7, 67, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":68
 *     def close(self):
 *         if self.loop:
 *             if self._has_reader:             # <<<<<<<<<<<<<<
 *                 self.loop.remove_reader(self.read_socket)
 * 
 */
    if (__pyx_v_self->_has_reader) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":69
 *         if self.loop:
 *             if self._has_reader:
 *                 self.loop.remove_reader(self.read_socket)             # <<<<<<<<<<<<<<
 * 
 * 
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->loop, __pyx_n_s_remove_reader); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 69, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = NULL;
      __pyx_t_5 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
          __pyx_t_5 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_self->read_socket};
        __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 69, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":68
 *     def close(self):
 *         if self.loop:
 *             if self._has_reader:             # <<<<<<<<<<<<<<
 *                 self.loop.remove_reader(self.read_socket)
 * 
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":67
 * 
 *     def close(self):
 *         if self.loop:             # <<<<<<<<<<<<<<
 *             if self._has_reader:
 *                 self.loop.remove_reader(self.read_socket)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":66
 *                 self._has_reader = False
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         if self.loop:
 *             if self._has_reader:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._BoundEventLoop.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pxd.pxi":36
 * 
 * cdef class _BoundEventLoop:
 *     cdef readonly object loop             # <<<<<<<<<<<<<<
 *     cdef readonly object read_socket  # socket.socket
 *     cdef bint _has_reader
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4loop_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4loop_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4loop___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4loop___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->loop);
  __pyx_r = __pyx_v_self->loop;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pxd.pxi":37
 * cdef class _BoundEventLoop:
 *     cdef readonly object loop
 *     cdef readonly object read_socket  # socket.socket             # <<<<<<<<<<<<<<
 *     cdef bint _has_reader
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_11read_socket_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_11read_socket_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_11read_socket___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_11read_socket___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->read_socket);
  __pyx_r = __pyx_v_self->read_socket;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15_BoundEventLoop_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._BoundEventLoop.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15_BoundEventLoop_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._BoundEventLoop.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._BoundEventLoop.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":74
 * cdef class PollerCompletionQueue(BaseCompletionQueue):
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self._cq = grpc_completion_queue_create_for_next(NULL)
 *         self._shutdown = False
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *(*__pyx_t_6)(PyObject *);
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":75
 * 
 *     def __cinit__(self):
 *         self._cq = grpc_completion_queue_create_for_next(NULL)             # <<<<<<<<<<<<<<
 *         self._shutdown = False
 *         self._poller_thread = threading.Thread(target=self._poll_wrapper, daemon=True)
 */
  __pyx_v_self->__pyx_base._cq = grpc_completion_queue_create_for_next(NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":76
 *     def __cinit__(self):
 *         self._cq = grpc_completion_queue_create_for_next(NULL)
 *         self._shutdown = False             # <<<<<<<<<<<<<<
 *         self._poller_thread = threading.Thread(target=self._poll_wrapper, daemon=True)
 *         self._poller_thread.start()
 */
  __pyx_v_self->_shutdown = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":77
 *         self._cq = grpc_completion_queue_create_for_next(NULL)
 *         self._shutdown = False
 *         self._poller_thread = threading.Thread(target=self._poll_wrapper, daemon=True)             # <<<<<<<<<<<<<<
 *         self._poller_thread.start()
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_threading); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Thread); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_poll_wrapper); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_target, __pyx_t_3) < 0) __PYX_ERR(7, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_daemon, Py_True) < 0) __PYX_ERR(7, 77, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->_poller_thread);
  __Pyx_DECREF(__pyx_v_self->_poller_thread);
  __pyx_v_self->_poller_thread = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":78
 *         self._shutdown = False
 *         self._poller_thread = threading.Thread(target=self._poll_wrapper, daemon=True)
 *         self._poller_thread.start()             # <<<<<<<<<<<<<<
 * 
 *         self._read_socket, self._write_socket = socket.socketpair()
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_poller_thread, __pyx_n_s_start); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 78, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":80
 *         self._poller_thread.start()
 * 
 *         self._read_socket, self._write_socket = socket.socketpair()             # <<<<<<<<<<<<<<
 *         self._write_fd = self._write_socket.fileno()
 *         self._loops = {}
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_socket); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_socketpair); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
    PyObject* sequence = __pyx_t_3;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(7, 80, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_1);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_5);
    index = 0; __pyx_t_2 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_1 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) __PYX_ERR(7, 80, __pyx_L1_error)
    __pyx_t_6 = NULL;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(7, 80, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_read_socket);
  __Pyx_DECREF(__pyx_v_self->_read_socket);
  __pyx_v_self->_read_socket = __pyx_t_2;
  __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_write_socket);
  __Pyx_DECREF(__pyx_v_self->_write_socket);
  __pyx_v_self->_write_socket = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":81
 * 
 *         self._read_socket, self._write_socket = socket.socketpair()
 *         self._write_fd = self._write_socket.fileno()             # <<<<<<<<<<<<<<
 *         self._loops = {}
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_write_socket, __pyx_n_s_fileno); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 81, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->_write_fd = __pyx_t_7;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":82
 *         self._read_socket, self._write_socket = socket.socketpair()
 *         self._write_fd = self._write_socket.fileno()
 *         self._loops = {}             # <<<<<<<<<<<<<<
 * 
 *         # The read socket might be read by multiple threads. But only one of them will
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->_loops);
  __Pyx_DECREF(__pyx_v_self->_loops);
  __pyx_v_self->_loops = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":87
 *         # read the 1 byte sent by the poller thread. This setting is essential to allow
 *         # multiple loops in multiple threads bound to the same poller.
 *         self._read_socket.setblocking(False)             # <<<<<<<<<<<<<<
 * 
 *         self._queue = cpp_event_queue()
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_read_socket, __pyx_n_s_setblocking); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, Py_False};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":89
 *         self._read_socket.setblocking(False)
 * 
 *         self._queue = cpp_event_queue()             # <<<<<<<<<<<<<<
 * 
 *     def bind_loop(self, object loop):
 */
  __pyx_v_self->_queue = __pyx_t_4grpc_7_cython_6cygrpc_cpp_event_queue();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":74
 * cdef class PollerCompletionQueue(BaseCompletionQueue):
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self._cq = grpc_completion_queue_create_for_next(NULL)
 *         self._shutdown = False
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":91
 *         self._queue = cpp_event_queue()
 * 
 *     def bind_loop(self, object loop):             # <<<<<<<<<<<<<<
 *         if loop in self._loops:
 *             return
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_3bind_loop(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_3bind_loop = {"bind_loop", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_3bind_loop, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_3bind_loop(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("bind_loop (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 91, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "bind_loop") < 0)) __PYX_ERR(7, 91, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_loop = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("bind_loop", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 91, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue.bind_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_2bind_loop(((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_self), __pyx_v_loop);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_2bind_loop(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self, PyObject *__pyx_v_loop) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bind_loop", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":92
 * 
 *     def bind_loop(self, object loop):
 *         if loop in self._loops:             # <<<<<<<<<<<<<<
 *             return
 *         else:
 */
  if (unlikely(__pyx_v_self->_loops == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(7, 92, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_loop, __pyx_v_self->_loops, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(7, 92, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":93
 *     def bind_loop(self, object loop):
 *         if loop in self._loops:
 *             return             # <<<<<<<<<<<<<<
 *         else:
 *             self._loops[loop] = _BoundEventLoop(loop, self._read_socket, self._handle_events)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":92
 * 
 *     def bind_loop(self, object loop):
 *         if loop in self._loops:             # <<<<<<<<<<<<<<
 *             return
 *         else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":95
 *             return
 *         else:
 *             self._loops[loop] = _BoundEventLoop(loop, self._read_socket, self._handle_events)             # <<<<<<<<<<<<<<
 * 
 *     cdef void _poll(self) nogil:
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handle_events); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_loop);
    __Pyx_GIVEREF(__pyx_v_loop);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_loop)) __PYX_ERR(7, 95, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_self->_read_socket);
    __Pyx_GIVEREF(__pyx_v_self->_read_socket);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->_read_socket)) __PYX_ERR(7, 95, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(7, 95, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__pyx_v_self->_loops == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(7, 95, __pyx_L1_error)
    }
    if (unlikely((PyDict_SetItem(__pyx_v_self->_loops, __pyx_v_loop, __pyx_t_2) < 0))) __PYX_ERR(7, 95, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":91
 *         self._queue = cpp_event_queue()
 * 
 *     def bind_loop(self, object loop):             # <<<<<<<<<<<<<<
 *         if loop in self._loops:
 *             return
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue.bind_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":97
 *             self._loops[loop] = _BoundEventLoop(loop, self._read_socket, self._handle_events)
 * 
 *     cdef void _poll(self) nogil:             # <<<<<<<<<<<<<<
 *         cdef grpc_event event
 *         cdef CallbackContext *context
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_21PollerCompletionQueue__poll(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self) {
  grpc_event __pyx_v_event;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save;
  #endif
  __Pyx_RefNannySetupContext("_poll", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":101
 *         cdef CallbackContext *context
 * 
 *         while not self._shutdown:             # <<<<<<<<<<<<<<
 *             event = grpc_completion_queue_next(self._cq,
 *                                                _GPR_INF_FUTURE,
 */
  while (1) {
    __pyx_t_1 = (!__pyx_v_self->_shutdown);
    if (!__pyx_t_1) break;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":102
 * 
 *         while not self._shutdown:
 *             event = grpc_completion_queue_next(self._cq,             # <<<<<<<<<<<<<<
 *                                                _GPR_INF_FUTURE,
 *                                                NULL)
 */
    __pyx_v_event = grpc_completion_queue_next(__pyx_v_self->__pyx_base._cq, __pyx_v_4grpc_7_cython_6cygrpc__GPR_INF_FUTURE, NULL);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":106
 *                                                NULL)
 * 
 *             if event.type == GRPC_QUEUE_TIMEOUT:             # <<<<<<<<<<<<<<
 *                 with gil:
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")
 */
    switch (__pyx_v_event.type) {
      case GRPC_QUEUE_TIMEOUT:

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":107
 * 
 *             if event.type == GRPC_QUEUE_TIMEOUT:
 *                 with gil:             # <<<<<<<<<<<<<<
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")
 *             elif event.type == GRPC_QUEUE_SHUTDOWN:
 */
      {
          #ifdef WITH_THREAD
          PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
          #endif
          /*try:*/ {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":108
 *             if event.type == GRPC_QUEUE_TIMEOUT:
 *                 with gil:
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")             # <<<<<<<<<<<<<<
 *             elif event.type == GRPC_QUEUE_SHUTDOWN:
 *                 self._shutdown = True
 */
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_AssertionError, __pyx_tuple__50, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 108, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_Raise(__pyx_t_2, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __PYX_ERR(7, 108, __pyx_L8_error)
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":107
 * 
 *             if event.type == GRPC_QUEUE_TIMEOUT:
 *                 with gil:             # <<<<<<<<<<<<<<
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")
 *             elif event.type == GRPC_QUEUE_SHUTDOWN:
 */
          /*finally:*/ {
            __pyx_L8_error: {
              #ifdef WITH_THREAD
              __Pyx_PyGILState_Release(__pyx_gilstate_save);
              #endif
              goto __pyx_L1_error;
            }
          }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":106
 *                                                NULL)
 * 
 *             if event.type == GRPC_QUEUE_TIMEOUT:             # <<<<<<<<<<<<<<
 *                 with gil:
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")
 */
      break;
      case GRPC_QUEUE_SHUTDOWN:

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":110
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")
 *             elif event.type == GRPC_QUEUE_SHUTDOWN:
 *                 self._shutdown = True             # <<<<<<<<<<<<<<
 *             else:
 *                 self._queue_mutex.lock()
 */
      __pyx_v_self->_shutdown = 1;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":109
 *                 with gil:
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")
 *             elif event.type == GRPC_QUEUE_SHUTDOWN:             # <<<<<<<<<<<<<<
 *                 self._shutdown = True
 *             else:
 */
      break;
      default:

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":112
 *                 self._shutdown = True
 *             else:
 *                 self._queue_mutex.lock()             # <<<<<<<<<<<<<<
 *                 self._queue.push(event)
 *                 self._queue_mutex.unlock()
 */
      __pyx_v_self->_queue_mutex.lock();

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":113
 *             else:
 *                 self._queue_mutex.lock()
 *                 self._queue.push(event)             # <<<<<<<<<<<<<<
 *                 self._queue_mutex.unlock()
 *                 if _has_fd_monitoring:
 */
      __pyx_v_self->_queue.push(__pyx_v_event);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":114
 *                 self._queue_mutex.lock()
 *                 self._queue.push(event)
 *                 self._queue_mutex.unlock()             # <<<<<<<<<<<<<<
 *                 if _has_fd_monitoring:
 *                     _unified_socket_write(self._write_fd)
 */
      __pyx_v_self->_queue_mutex.unlock();

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":115
 *                 self._queue.push(event)
 *                 self._queue_mutex.unlock()
 *                 if _has_fd_monitoring:             # <<<<<<<<<<<<<<
 *                     _unified_socket_write(self._write_fd)
 *                 else:
 */
      if (__pyx_v_4grpc_7_cython_6cygrpc__has_fd_monitoring) {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":116
 *                 self._queue_mutex.unlock()
 *                 if _has_fd_monitoring:
 *                     _unified_socket_write(self._write_fd)             # <<<<<<<<<<<<<<
 *                 else:
 *                     with gil:
 */
        __pyx_f_4grpc_7_cython_6cygrpc__unified_socket_write(__pyx_v_self->_write_fd); if (unlikely(__Pyx_ErrOccurredWithGIL())) __PYX_ERR(7, 116, __pyx_L1_error)

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":115
 *                 self._queue.push(event)
 *                 self._queue_mutex.unlock()
 *                 if _has_fd_monitoring:             # <<<<<<<<<<<<<<
 *                     _unified_socket_write(self._write_fd)
 *                 else:
 */
        goto __pyx_L10;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":118
 *                     _unified_socket_write(self._write_fd)
 *                 else:
 *                     with gil:             # <<<<<<<<<<<<<<
 *                         # Event loops can be paused or killed at any time. So,
 *                         # instead of deligate to any thread, the polling thread
 */
      /*else*/ {
        {
            #ifdef WITH_THREAD
            PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
            #endif
            /*try:*/ {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":122
 *                         # instead of deligate to any thread, the polling thread
 *                         # should handle the distribution of the event.
 *                         self._handle_events(None)             # <<<<<<<<<<<<<<
 * 
 *     def _poll_wrapper(self):
 */
              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handle_events); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 122, __pyx_L14_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_4 = NULL;
              __pyx_t_5 = 0;
              #if CYTHON_UNPACK_METHODS
              if (likely(PyMethod_Check(__pyx_t_3))) {
                __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
                if (likely(__pyx_t_4)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
                  __Pyx_INCREF(__pyx_t_4);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_3, function);
                  __pyx_t_5 = 1;
                }
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_4, Py_None};
                __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
                __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 122, __pyx_L14_error)
                __Pyx_GOTREF(__pyx_t_2);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              }
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":118
 *                     _unified_socket_write(self._write_fd)
 *                 else:
 *                     with gil:             # <<<<<<<<<<<<<<
 *                         # Event loops can be paused or killed at any time. So,
 *                         # instead of deligate to any thread, the polling thread
 */
            /*finally:*/ {
              /*normal exit:*/{
                #ifdef WITH_THREAD
                __Pyx_PyGILState_Release(__pyx_gilstate_save);
                #endif
                goto __pyx_L15;
              }
              __pyx_L14_error: {
                #ifdef WITH_THREAD
                __Pyx_PyGILState_Release(__pyx_gilstate_save);
                #endif
                goto __pyx_L1_error;
              }
              __pyx_L15:;
            }
        }
      }
      __pyx_L10:;
      break;
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":97
 *             self._loops[loop] = _BoundEventLoop(loop, self._read_socket, self._handle_events)
 * 
 *     cdef void _poll(self) nogil:             # <<<<<<<<<<<<<<
 *         cdef grpc_event event
 *         cdef CallbackContext *context
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  #ifdef WITH_THREAD
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue._poll", __pyx_clineno, __pyx_lineno, __pyx_filename);
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  __pyx_L0:;
  __Pyx_RefNannyFinishContextNogil()
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":124
 *                         self._handle_events(None)
 * 
 *     def _poll_wrapper(self):             # <<<<<<<<<<<<<<
 *         with nogil:
 *             self._poll()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_5_poll_wrapper(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_5_poll_wrapper = {"_poll_wrapper", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_5_poll_wrapper, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_5_poll_wrapper(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_poll_wrapper (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("_poll_wrapper", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_poll_wrapper", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_4_poll_wrapper(((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_4_poll_wrapper(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_poll_wrapper", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":125
 * 
 *     def _poll_wrapper(self):
 *         with nogil:             # <<<<<<<<<<<<<<
 *             self._poll()
 * 
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":126
 *     def _poll_wrapper(self):
 *         with nogil:
 *             self._poll()             # <<<<<<<<<<<<<<
 * 
 *     cdef shutdown(self):
 */
        ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_self->__pyx_base.__pyx_vtab)->_poll(__pyx_v_self); if (unlikely(__Pyx_ErrOccurredWithGIL())) __PYX_ERR(7, 126, __pyx_L4_error)
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":125
 * 
 *     def _poll_wrapper(self):
 *         with nogil:             # <<<<<<<<<<<<<<
 *             self._poll()
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L4_error: {
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L1_error;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":124
 *                         self._handle_events(None)
 * 
 *     def _poll_wrapper(self):             # <<<<<<<<<<<<<<
 *         with nogil:
 *             self._poll()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue._poll_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":128
 *             self._poll()
 * 
 *     cdef shutdown(self):             # <<<<<<<<<<<<<<
 *         # Removes the socket hook from loops
 *         for loop in self._loops:
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self) {
  PyObject *__pyx_v_loop = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  unsigned int __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("shutdown", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":130
 *     cdef shutdown(self):
 *         # Removes the socket hook from loops
 *         for loop in self._loops:             # <<<<<<<<<<<<<<
 *             self._loops.get(loop).close()
 * 
 */
  __pyx_t_2 = 0;
  if (unlikely(__pyx_v_self->_loops == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(7, 130, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_self->_loops, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_5;
  __pyx_t_5 = 0;
  while (1) {
    __pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, NULL, NULL, __pyx_t_4);
    if (unlikely(__pyx_t_6 == 0)) break;
    if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(7, 130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XDECREF_SET(__pyx_v_loop, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":131
 *         # Removes the socket hook from loops
 *         for loop in self._loops:
 *             self._loops.get(loop).close()             # <<<<<<<<<<<<<<
 * 
 *         # TODO(https://github.com/grpc/grpc/issues/22365) perform graceful shutdown
 */
    if (unlikely(__pyx_v_self->_loops == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
      __PYX_ERR(7, 131, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->_loops, __pyx_v_loop, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_close); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
      __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_9, 0+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 131, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":134
 * 
 *         # TODO(https://github.com/grpc/grpc/issues/22365) perform graceful shutdown
 *         grpc_completion_queue_shutdown(self._cq)             # <<<<<<<<<<<<<<
 *         while not self._shutdown:
 *             self._poller_thread.join(timeout=_POLL_AWAKE_INTERVAL_S)
 */
  grpc_completion_queue_shutdown(__pyx_v_self->__pyx_base._cq);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":135
 *         # TODO(https://github.com/grpc/grpc/issues/22365) perform graceful shutdown
 *         grpc_completion_queue_shutdown(self._cq)
 *         while not self._shutdown:             # <<<<<<<<<<<<<<
 *             self._poller_thread.join(timeout=_POLL_AWAKE_INTERVAL_S)
 *         grpc_completion_queue_destroy(self._cq)
 */
  while (1) {
    __pyx_t_10 = (!__pyx_v_self->_shutdown);
    if (!__pyx_t_10) break;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":136
 *         grpc_completion_queue_shutdown(self._cq)
 *         while not self._shutdown:
 *             self._poller_thread.join(timeout=_POLL_AWAKE_INTERVAL_S)             # <<<<<<<<<<<<<<
 *         grpc_completion_queue_destroy(self._cq)
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_poller_thread, __pyx_n_s_join); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 136, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 136, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_8 = PyFloat_FromDouble(__pyx_v_4grpc_7_cython_6cygrpc__POLL_AWAKE_INTERVAL_S); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 136, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_timeout, __pyx_t_8) < 0) __PYX_ERR(7, 136, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 136, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":137
 *         while not self._shutdown:
 *             self._poller_thread.join(timeout=_POLL_AWAKE_INTERVAL_S)
 *         grpc_completion_queue_destroy(self._cq)             # <<<<<<<<<<<<<<
 * 
 *         # Clean up socket resources
 */
  grpc_completion_queue_destroy(__pyx_v_self->__pyx_base._cq);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":140
 * 
 *         # Clean up socket resources
 *         self._read_socket.close()             # <<<<<<<<<<<<<<
 *         self._write_socket.close()
 * 
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_read_socket, __pyx_n_s_close); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = NULL;
  __pyx_t_9 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_9 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
    __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_9, 0+__pyx_t_9);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 140, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":141
 *         # Clean up socket resources
 *         self._read_socket.close()
 *         self._write_socket.close()             # <<<<<<<<<<<<<<
 * 
 *     def _handle_events(self, object context_loop):
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_write_socket, __pyx_n_s_close); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = NULL;
  __pyx_t_9 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_9 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
    __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_9, 0+__pyx_t_9);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":128
 *             self._poll()
 * 
 *     cdef shutdown(self):             # <<<<<<<<<<<<<<
 *         # Removes the socket hook from loops
 *         for loop in self._loops:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_loop);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":143
 *         self._write_socket.close()
 * 
 *     def _handle_events(self, object context_loop):             # <<<<<<<<<<<<<<
 *         cdef bytes data
 *         if _has_fd_monitoring:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_7_handle_events(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_7_handle_events = {"_handle_events", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_7_handle_events, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_7_handle_events(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_context_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_events (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_context_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_context_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 143, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_handle_events") < 0)) __PYX_ERR(7, 143, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_context_loop = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_events", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 143, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue._handle_events", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_6_handle_events(((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_self), __pyx_v_context_loop);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_6_handle_events(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self, PyObject *__pyx_v_context_loop) {
  CYTHON_UNUSED PyObject *__pyx_v_data = 0;
  grpc_event __pyx_v_event;
  struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext *__pyx_v_context;
  PyObject *__pyx_v_loop = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_events", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":145
 *     def _handle_events(self, object context_loop):
 *         cdef bytes data
 *         if _has_fd_monitoring:             # <<<<<<<<<<<<<<
 *             # If fd monitoring is working, clean the socket without blocking.
 *             data = self._read_socket.recv(1)
 */
  if (__pyx_v_4grpc_7_cython_6cygrpc__has_fd_monitoring) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":147
 *         if _has_fd_monitoring:
 *             # If fd monitoring is working, clean the socket without blocking.
 *             data = self._read_socket.recv(1)             # <<<<<<<<<<<<<<
 *         cdef grpc_event event
 *         cdef CallbackContext *context
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_read_socket, __pyx_n_s_recv); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 147, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_int_1};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 147, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(7, 147, __pyx_L1_error)
    __pyx_v_data = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":145
 *     def _handle_events(self, object context_loop):
 *         cdef bytes data
 *         if _has_fd_monitoring:             # <<<<<<<<<<<<<<
 *             # If fd monitoring is working, clean the socket without blocking.
 *             data = self._read_socket.recv(1)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":151
 *         cdef CallbackContext *context
 * 
 *         while True:             # <<<<<<<<<<<<<<
 *             self._queue_mutex.lock()
 *             if self._queue.empty():
 */
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":152
 * 
 *         while True:
 *             self._queue_mutex.lock()             # <<<<<<<<<<<<<<
 *             if self._queue.empty():
 *                 self._queue_mutex.unlock()
 */
    __pyx_v_self->_queue_mutex.lock();

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":153
 *         while True:
 *             self._queue_mutex.lock()
 *             if self._queue.empty():             # <<<<<<<<<<<<<<
 *                 self._queue_mutex.unlock()
 *                 break
 */
    __pyx_t_5 = __pyx_v_self->_queue.empty();
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":154
 *             self._queue_mutex.lock()
 *             if self._queue.empty():
 *                 self._queue_mutex.unlock()             # <<<<<<<<<<<<<<
 *                 break
 *             else:
 */
      __pyx_v_self->_queue_mutex.unlock();

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":155
 *             if self._queue.empty():
 *                 self._queue_mutex.unlock()
 *                 break             # <<<<<<<<<<<<<<
 *             else:
 *                 event = self._queue.front()
 */
      goto __pyx_L5_break;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":153
 *         while True:
 *             self._queue_mutex.lock()
 *             if self._queue.empty():             # <<<<<<<<<<<<<<
 *                 self._queue_mutex.unlock()
 *                 break
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":157
 *                 break
 *             else:
 *                 event = self._queue.front()             # <<<<<<<<<<<<<<
 *                 self._queue.pop()
 *                 self._queue_mutex.unlock()
 */
    /*else*/ {
      __pyx_v_event = __pyx_v_self->_queue.front();

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":158
 *             else:
 *                 event = self._queue.front()
 *                 self._queue.pop()             # <<<<<<<<<<<<<<
 *                 self._queue_mutex.unlock()
 * 
 */
      __pyx_v_self->_queue.pop();

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":159
 *                 event = self._queue.front()
 *                 self._queue.pop()
 *                 self._queue_mutex.unlock()             # <<<<<<<<<<<<<<
 * 
 *             context = <CallbackContext *>event.tag
 */
      __pyx_v_self->_queue_mutex.unlock();
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":161
 *                 self._queue_mutex.unlock()
 * 
 *             context = <CallbackContext *>event.tag             # <<<<<<<<<<<<<<
 *             loop = <object>context.loop
 *             if loop is context_loop:
 */
    __pyx_v_context = ((struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext *)__pyx_v_event.tag);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":162
 * 
 *             context = <CallbackContext *>event.tag
 *             loop = <object>context.loop             # <<<<<<<<<<<<<<
 *             if loop is context_loop:
 *                 # Executes callbacks: complete the future
 */
    __pyx_t_1 = ((PyObject *)__pyx_v_context->loop);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_loop, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":163
 *             context = <CallbackContext *>event.tag
 *             loop = <object>context.loop
 *             if loop is context_loop:             # <<<<<<<<<<<<<<
 *                 # Executes callbacks: complete the future
 *                 CallbackWrapper.functor_run(
 */
    __pyx_t_5 = (__pyx_v_loop == __pyx_v_context_loop);
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":165
 *             if loop is context_loop:
 *                 # Executes callbacks: complete the future
 *                 CallbackWrapper.functor_run(             # <<<<<<<<<<<<<<
 *                     <grpc_completion_queue_functor *>event.tag,
 *                     event.success
 */
      __pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_functor_run(((grpc_completion_queue_functor *)__pyx_v_event.tag), __pyx_v_event.success);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":163
 *             context = <CallbackContext *>event.tag
 *             loop = <object>context.loop
 *             if loop is context_loop:             # <<<<<<<<<<<<<<
 *                 # Executes callbacks: complete the future
 *                 CallbackWrapper.functor_run(
 */
      goto __pyx_L7;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":170
 *                 )
 *             else:
 *                 loop.call_soon_threadsafe(             # <<<<<<<<<<<<<<
 *                     _handle_callback_wrapper,
 *                     <CallbackWrapper>context.callback_wrapper,
 */
    /*else*/ {
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_loop, __pyx_n_s_call_soon_threadsafe); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 170, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":171
 *             else:
 *                 loop.call_soon_threadsafe(
 *                     _handle_callback_wrapper,             # <<<<<<<<<<<<<<
 *                     <CallbackWrapper>context.callback_wrapper,
 *                     event.success
 */
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_handle_callback_wrapper); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 171, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":173
 *                     _handle_callback_wrapper,
 *                     <CallbackWrapper>context.callback_wrapper,
 *                     event.success             # <<<<<<<<<<<<<<
 *                 )
 */
      __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_event.success); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = NULL;
      __pyx_t_4 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_4 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_3, ((PyObject *)__pyx_v_context->callback_wrapper), __pyx_t_6};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 170, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L7:;
  }
  __pyx_L5_break:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":143
 *         self._write_socket.close()
 * 
 *     def _handle_events(self, object context_loop):             # <<<<<<<<<<<<<<
 *         cdef bytes data
 *         if _has_fd_monitoring:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue._handle_events", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_data);
  __Pyx_XDECREF(__pyx_v_loop);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_8__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_10__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":18
 * cdef class CallbackFailureHandler:
 * 
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   str core_function_name,
 *                   object error_details,
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_core_function_name = 0;
  PyObject *__pyx_v_error_details = 0;
  PyObject *__pyx_v_exception_type = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_core_function_name,&__pyx_n_s_error_details,&__pyx_n_s_exception_type,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_core_function_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 18, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_error_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 18, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 1); __PYX_ERR(32, 18, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_exception_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 18, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 2); __PYX_ERR(32, 18, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(32, 18, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
    }
    __pyx_v_core_function_name = ((PyObject*)values[0]);
    __pyx_v_error_details = values[1];
    __pyx_v_exception_type = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(32, 18, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackFailureHandler.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_core_function_name), (&PyString_Type), 1, "core_function_name", 1))) __PYX_ERR(32, 19, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_v_self), __pyx_v_core_function_name, __pyx_v_error_details, __pyx_v_exception_type);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self, PyObject *__pyx_v_core_function_name, PyObject *__pyx_v_error_details, PyObject *__pyx_v_exception_type) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":23
 *                   object exception_type):
 *         """Handles failure by raising exception."""
 *         self._core_function_name = core_function_name             # <<<<<<<<<<<<<<
 *         self._error_details = error_details
 *         self._exception_type = exception_type
 */
  __Pyx_INCREF(__pyx_v_core_function_name);
  __Pyx_GIVEREF(__pyx_v_core_function_name);
  __Pyx_GOTREF(__pyx_v_self->_core_function_name);
  __Pyx_DECREF(__pyx_v_self->_core_function_name);
  __pyx_v_self->_core_function_name = __pyx_v_core_function_name;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":24
 *         """Handles failure by raising exception."""
 *         self._core_function_name = core_function_name
 *         self._error_details = error_details             # <<<<<<<<<<<<<<
 *         self._exception_type = exception_type
 * 
 */
  __Pyx_INCREF(__pyx_v_error_details);
  __Pyx_GIVEREF(__pyx_v_error_details);
  __Pyx_GOTREF(__pyx_v_self->_error_details);
  __Pyx_DECREF(__pyx_v_self->_error_details);
  __pyx_v_self->_error_details = __pyx_v_error_details;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":25
 *         self._core_function_name = core_function_name
 *         self._error_details = error_details
 *         self._exception_type = exception_type             # <<<<<<<<<<<<<<
 * 
 *     cdef handle(self, object future):
 */
  __Pyx_INCREF(__pyx_v_exception_type);
  __Pyx_GIVEREF(__pyx_v_exception_type);
  __Pyx_GOTREF(__pyx_v_self->_exception_type);
  __Pyx_DECREF(__pyx_v_self->_exception_type);
  __pyx_v_self->_exception_type = __pyx_v_exception_type;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":18
 * cdef class CallbackFailureHandler:
 * 
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   str core_function_name,
 *                   object error_details,
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":27
 *         self._exception_type = exception_type
 * 
 *     cdef handle(self, object future):             # <<<<<<<<<<<<<<
 *         future.set_exception(self._exception_type(
 *             'Failed "%s": %s' % (self._core_function_name, self._error_details)
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_handle(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self, PyObject *__pyx_v_future) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  unsigned int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("handle", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":28
 * 
 *     cdef handle(self, object future):
 *         future.set_exception(self._exception_type(             # <<<<<<<<<<<<<<
 *             'Failed "%s": %s' % (self._core_function_name, self._error_details)
 *         ))
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_future, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":29
 *     cdef handle(self, object future):
 *         future.set_exception(self._exception_type(
 *             'Failed "%s": %s' % (self._core_function_name, self._error_details)             # <<<<<<<<<<<<<<
 *         ))
 * 
 */
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_self->_core_function_name);
  __Pyx_GIVEREF(__pyx_v_self->_core_function_name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->_core_function_name)) __PYX_ERR(32, 29, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_error_details);
  __Pyx_GIVEREF(__pyx_v_self->_error_details);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_self->_error_details)) __PYX_ERR(32, 29, __pyx_L1_error);
  __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Failed_s_s, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_INCREF(__pyx_v_self->_exception_type);
  __pyx_t_4 = __pyx_v_self->_exception_type; __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":27
 *         self._exception_type = exception_type
 * 
 *     cdef handle(self, object future):             # <<<<<<<<<<<<<<
 *         future.set_exception(self._exception_type(
 *             'Failed "%s": %s' % (self._core_function_name, self._error_details)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackFailureHandler.handle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackFailureHandler.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackFailureHandler.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackFailureHandler.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":35
 * cdef class CallbackWrapper:
 * 
 *     def __cinit__(self, object future, object loop, CallbackFailureHandler failure_handler):             # <<<<<<<<<<<<<<
 *         self.context.functor.functor_run = self.functor_run
 *         self.context.waiter = <cpython.PyObject*>future
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_future = 0;
  PyObject *__pyx_v_loop = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_failure_handler = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_future,&__pyx_n_s_loop,&__pyx_n_s_failure_handler,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_future)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 35, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 35, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 1); __PYX_ERR(32, 35, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_failure_handler)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 35, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 2); __PYX_ERR(32, 35, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(32, 35, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
    }
    __pyx_v_future = values[0];
    __pyx_v_loop = values[1];
    __pyx_v_failure_handler = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(32, 35, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackWrapper.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_failure_handler), __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler, 1, "failure_handler", 0))) __PYX_ERR(32, 35, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_v_self), __pyx_v_future, __pyx_v_loop, __pyx_v_failure_handler);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self, PyObject *__pyx_v_future, PyObject *__pyx_v_loop, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_failure_handler) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  void (*__pyx_t_1)(grpc_completion_queue_functor *, int);
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":36
 * 
 *     def __cinit__(self, object future, object loop, CallbackFailureHandler failure_handler):
 *         self.context.functor.functor_run = self.functor_run             # <<<<<<<<<<<<<<
 *         self.context.waiter = <cpython.PyObject*>future
 *         self.context.loop = <cpython.PyObject*>loop
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_v_self->__pyx_vtab)->functor_run;
  __pyx_v_self->context.functor.functor_run = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":37
 *     def __cinit__(self, object future, object loop, CallbackFailureHandler failure_handler):
 *         self.context.functor.functor_run = self.functor_run
 *         self.context.waiter = <cpython.PyObject*>future             # <<<<<<<<<<<<<<
 *         self.context.loop = <cpython.PyObject*>loop
 *         self.context.failure_handler = <cpython.PyObject*>failure_handler
 */
  __pyx_v_self->context.waiter = ((PyObject *)__pyx_v_future);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":38
 *         self.context.functor.functor_run = self.functor_run
 *         self.context.waiter = <cpython.PyObject*>future
 *         self.context.loop = <cpython.PyObject*>loop             # <<<<<<<<<<<<<<
 *         self.context.failure_handler = <cpython.PyObject*>failure_handler
 *         self.context.callback_wrapper = <cpython.PyObject*>self
 */
  __pyx_v_self->context.loop = ((PyObject *)__pyx_v_loop);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":39
 *         self.context.waiter = <cpython.PyObject*>future
 *         self.context.loop = <cpython.PyObject*>loop
 *         self.context.failure_handler = <cpython.PyObject*>failure_handler             # <<<<<<<<<<<<<<
 *         self.context.callback_wrapper = <cpython.PyObject*>self
 *         # NOTE(lidiz) Not using a list here, because this class is critical in
 */
  __pyx_v_self->context.failure_handler = ((PyObject *)__pyx_v_failure_handler);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":40
 *         self.context.loop = <cpython.PyObject*>loop
 *         self.context.failure_handler = <cpython.PyObject*>failure_handler
 *         self.context.callback_wrapper = <cpython.PyObject*>self             # <<<<<<<<<<<<<<
 *         # NOTE(lidiz) Not using a list here, because this class is critical in
 *         # data path. We should make it as efficient as possible.
 */
  __pyx_v_self->context.callback_wrapper = ((PyObject *)__pyx_v_self);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":43
 *         # NOTE(lidiz) Not using a list here, because this class is critical in
 *         # data path. We should make it as efficient as possible.
 *         self._reference_of_future = future             # <<<<<<<<<<<<<<
 *         self._reference_of_failure_handler = failure_handler
 *         # NOTE(lidiz) We need to ensure when Core invokes our callback, the
 */
  __Pyx_INCREF(__pyx_v_future);
  __Pyx_GIVEREF(__pyx_v_future);
  __Pyx_GOTREF(__pyx_v_self->_reference_of_future);
  __Pyx_DECREF(__pyx_v_self->_reference_of_future);
  __pyx_v_self->_reference_of_future = __pyx_v_future;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":44
 *         # data path. We should make it as efficient as possible.
 *         self._reference_of_future = future
 *         self._reference_of_failure_handler = failure_handler             # <<<<<<<<<<<<<<
 *         # NOTE(lidiz) We need to ensure when Core invokes our callback, the
 *         # callback function itself is not deallocated. Othersise, we will get
 */
  __Pyx_INCREF((PyObject *)__pyx_v_failure_handler);
  __Pyx_GIVEREF((PyObject *)__pyx_v_failure_handler);
  __Pyx_GOTREF(__pyx_v_self->_reference_of_failure_handler);
  __Pyx_DECREF(__pyx_v_self->_reference_of_failure_handler);
  __pyx_v_self->_reference_of_failure_handler = ((PyObject *)__pyx_v_failure_handler);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":48
 *         # callback function itself is not deallocated. Othersise, we will get
 *         # a segfault. We can view this as Core holding a ref.
 *         cpython.Py_INCREF(self)             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  Py_INCREF(((PyObject *)__pyx_v_self));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":35
 * cdef class CallbackWrapper:
 * 
 *     def __cinit__(self, object future, object loop, CallbackFailureHandler failure_handler):             # <<<<<<<<<<<<<<
 *         self.context.functor.functor_run = self.functor_run
 *         self.context.waiter = <cpython.PyObject*>future
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":51
 * 
 *     @staticmethod
 *     cdef void functor_run(             # <<<<<<<<<<<<<<
 *             grpc_completion_queue_functor* functor,
 *             int success) noexcept:
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_functor_run(grpc_completion_queue_functor *__pyx_v_functor, int __pyx_v_success) {
  struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext *__pyx_v_context;
  PyObject *__pyx_v_waiter = 0;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("functor_run", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":54
 *             grpc_completion_queue_functor* functor,
 *             int success) noexcept:
 *         cdef CallbackContext *context = <CallbackContext *>functor             # <<<<<<<<<<<<<<
 *         cdef object waiter = <object>context.waiter
 *         if not waiter.cancelled():
 */
  __pyx_v_context = ((struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext *)__pyx_v_functor);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":55
 *             int success) noexcept:
 *         cdef CallbackContext *context = <CallbackContext *>functor
 *         cdef object waiter = <object>context.waiter             # <<<<<<<<<<<<<<
 *         if not waiter.cancelled():
 *             if success == 0:
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_context->waiter);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_waiter = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":56
 *         cdef CallbackContext *context = <CallbackContext *>functor
 *         cdef object waiter = <object>context.waiter
 *         if not waiter.cancelled():             # <<<<<<<<<<<<<<
 *             if success == 0:
 *                 (<CallbackFailureHandler>context.failure_handler).handle(waiter)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_waiter, __pyx_n_s_cancelled); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 56, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(32, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = (!__pyx_t_5);
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":57
 *         cdef object waiter = <object>context.waiter
 *         if not waiter.cancelled():
 *             if success == 0:             # <<<<<<<<<<<<<<
 *                 (<CallbackFailureHandler>context.failure_handler).handle(waiter)
 *             else:
 */
    __pyx_t_6 = (__pyx_v_success == 0);
    if (__pyx_t_6) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":58
 *         if not waiter.cancelled():
 *             if success == 0:
 *                 (<CallbackFailureHandler>context.failure_handler).handle(waiter)             # <<<<<<<<<<<<<<
 *             else:
 *                 waiter.set_result(None)
 */
      __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_v_context->failure_handler)->__pyx_vtab)->handle(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_v_context->failure_handler), __pyx_v_waiter); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 58, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":57
 *         cdef object waiter = <object>context.waiter
 *         if not waiter.cancelled():
 *             if success == 0:             # <<<<<<<<<<<<<<
 *                 (<CallbackFailureHandler>context.failure_handler).handle(waiter)
 *             else:
 */
      goto __pyx_L4;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":60
 *                 (<CallbackFailureHandler>context.failure_handler).handle(waiter)
 *             else:
 *                 waiter.set_result(None)             # <<<<<<<<<<<<<<
 *         cpython.Py_DECREF(<object>context.callback_wrapper)
 * 
 */
    /*else*/ {
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_waiter, __pyx_n_s_set_result); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 60, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = NULL;
      __pyx_t_4 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_4 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, Py_None};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 60, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L4:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":56
 *         cdef CallbackContext *context = <CallbackContext *>functor
 *         cdef object waiter = <object>context.waiter
 *         if not waiter.cancelled():             # <<<<<<<<<<<<<<
 *             if success == 0:
 *                 (<CallbackFailureHandler>context.failure_handler).handle(waiter)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":61
 *             else:
 *                 waiter.set_result(None)
 *         cpython.Py_DECREF(<object>context.callback_wrapper)             # <<<<<<<<<<<<<<
 * 
 *     cdef grpc_completion_queue_functor *c_functor(self):
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_context->callback_wrapper);
  __Pyx_INCREF(__pyx_t_1);
  Py_DECREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":51
 * 
 *     @staticmethod
 *     cdef void functor_run(             # <<<<<<<<<<<<<<
 *             grpc_completion_queue_functor* functor,
 *             int success) noexcept:
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.CallbackWrapper.functor_run", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_waiter);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":63
 *         cpython.Py_DECREF(<object>context.callback_wrapper)
 * 
 *     cdef grpc_completion_queue_functor *c_functor(self):             # <<<<<<<<<<<<<<
 *         return &self.context.functor
 * 
 */

static grpc_completion_queue_functor *__pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_c_functor(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self) {
  grpc_completion_queue_functor *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":64
 * 
 *     cdef grpc_completion_queue_functor *c_functor(self):
 *         return &self.context.functor             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = (&__pyx_v_self->context.functor);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":63
 *         cpython.Py_DECREF(<object>context.callback_wrapper)
 * 
 *     cdef grpc_completion_queue_functor *c_functor(self):             # <<<<<<<<<<<<<<
 *         return &self.context.functor
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CallbackWrapper_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackWrapper.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CallbackWrapper_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackWrapper.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackWrapper.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_128generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":77
 * 
 * 
 * async def execute_batch(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                tuple operations,
 *                                object loop):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_127execute_batch(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_126execute_batch, "The callback version of start batch operations.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_127execute_batch = {"execute_batch", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_127execute_batch, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_126execute_batch};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_127execute_batch(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper = 0;
  PyObject *__pyx_v_operations = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("execute_batch (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_grpc_call_wrapper,&__pyx_n_s_operations,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_grpc_call_wrapper)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 77, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_operations)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 77, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("execute_batch", 1, 3, 3, 1); __PYX_ERR(32, 77, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 77, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("execute_batch", 1, 3, 3, 2); __PYX_ERR(32, 77, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "execute_batch") < 0)) __PYX_ERR(32, 77, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_grpc_call_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
    __pyx_v_operations = ((PyObject*)values[1]);
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("execute_batch", 1, 3, 3, __pyx_nargs); __PYX_ERR(32, 77, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.execute_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grpc_call_wrapper), __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "grpc_call_wrapper", 0))) __PYX_ERR(32, 77, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_operations), (&PyTuple_Type), 1, "operations", 1))) __PYX_ERR(32, 78, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_126execute_batch(__pyx_self, __pyx_v_grpc_call_wrapper, __pyx_v_operations, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_126execute_batch(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_operations, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("execute_batch", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(32, 77, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_grpc_call_wrapper = __pyx_v_grpc_call_wrapper;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __pyx_cur_scope->__pyx_v_operations = __pyx_v_operations;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_operations);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_operations);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_128generator2, __pyx_codeobj__51, (PyObject *) __pyx_cur_scope, __pyx_n_s_execute_batch, __pyx_n_s_execute_batch, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(32, 77, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.execute_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_128generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  grpc_completion_queue_functor *__pyx_t_5;
  int __pyx_t_6;
  char const *__pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("execute_batch", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 77, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":81
 *                                object loop):
 *     """The callback version of start batch operations."""
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(None, operations, None)             # <<<<<<<<<<<<<<
 *     batch_operation_tag.prepare()
 * 
 */
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, Py_None)) __PYX_ERR(32, 81, __pyx_L1_error);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_operations);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_operations);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_cur_scope->__pyx_v_operations)) __PYX_ERR(32, 81, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(32, 81, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_batch_operation_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":82
 *     """The callback version of start batch operations."""
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(None, operations, None)
 *     batch_operation_tag.prepare()             # <<<<<<<<<<<<<<
 * 
 *     cdef object future = loop.create_future()
 */
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_cur_scope->__pyx_v_batch_operation_tag->__pyx_base.__pyx_vtab)->prepare(__pyx_cur_scope->__pyx_v_batch_operation_tag); if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 82, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":84
 *     batch_operation_tag.prepare()
 * 
 *     cdef object future = loop.create_future()             # <<<<<<<<<<<<<<
 *     cdef CallbackWrapper wrapper = CallbackWrapper(
 *         future,
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_loop, __pyx_n_s_create_future); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_future = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":88
 *         future,
 *         loop,
 *         CallbackFailureHandler('execute_batch', operations, ExecuteBatchError))             # <<<<<<<<<<<<<<
 *     cdef grpc_call_error error = grpc_call_start_batch(
 *         grpc_call_wrapper.call,
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ExecuteBatchError); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_execute_batch);
  __Pyx_GIVEREF(__pyx_n_s_execute_batch);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_execute_batch)) __PYX_ERR(32, 88, __pyx_L1_error);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_operations);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_operations);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_cur_scope->__pyx_v_operations)) __PYX_ERR(32, 88, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_2)) __PYX_ERR(32, 88, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":85
 * 
 *     cdef object future = loop.create_future()
 *     cdef CallbackWrapper wrapper = CallbackWrapper(             # <<<<<<<<<<<<<<
 *         future,
 *         loop,
 */
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_future);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_future);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_future)) __PYX_ERR(32, 85, __pyx_L1_error);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_cur_scope->__pyx_v_loop)) __PYX_ERR(32, 85, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_2)) __PYX_ERR(32, 85, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":93
 *         batch_operation_tag.c_ops,
 *         batch_operation_tag.c_nops,
 *         wrapper.c_functor(), NULL)             # <<<<<<<<<<<<<<
 * 
 *     if error != GRPC_CALL_OK:
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_cur_scope->__pyx_v_wrapper->__pyx_vtab)->c_functor(__pyx_cur_scope->__pyx_v_wrapper); if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 93, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":89
 *         loop,
 *         CallbackFailureHandler('execute_batch', operations, ExecuteBatchError))
 *     cdef grpc_call_error error = grpc_call_start_batch(             # <<<<<<<<<<<<<<
 *         grpc_call_wrapper.call,
 *         batch_operation_tag.c_ops,
 */
  __pyx_cur_scope->__pyx_v_error = grpc_call_start_batch(__pyx_cur_scope->__pyx_v_grpc_call_wrapper->call, __pyx_cur_scope->__pyx_v_batch_operation_tag->c_ops, __pyx_cur_scope->__pyx_v_batch_operation_tag->c_nops, __pyx_t_5, NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":95
 *         wrapper.c_functor(), NULL)
 * 
 *     if error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *         grpc_call_error_string = grpc_call_error_to_string(error).decode()
 *         raise ExecuteBatchError("Failed grpc_call_start_batch: {} with grpc_call_error value: '{}'".format(error, grpc_call_error_string))
 */
  __pyx_t_6 = (__pyx_cur_scope->__pyx_v_error != GRPC_CALL_OK);
  if (unlikely(__pyx_t_6)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":96
 * 
 *     if error != GRPC_CALL_OK:
 *         grpc_call_error_string = grpc_call_error_to_string(error).decode()             # <<<<<<<<<<<<<<
 *         raise ExecuteBatchError("Failed grpc_call_start_batch: {} with grpc_call_error value: '{}'".format(error, grpc_call_error_string))
 * 
 */
    __pyx_t_7 = grpc_call_error_to_string(__pyx_cur_scope->__pyx_v_error);
    __pyx_t_8 = __Pyx_ssize_strlen(__pyx_t_7); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(32, 96, __pyx_L1_error)
    __pyx_t_2 = __Pyx_decode_c_string(__pyx_t_7, 0, __pyx_t_8, NULL, NULL, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 96, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_cur_scope->__pyx_v_grpc_call_error_string = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":97
 *     if error != GRPC_CALL_OK:
 *         grpc_call_error_string = grpc_call_error_to_string(error).decode()
 *         raise ExecuteBatchError("Failed grpc_call_start_batch: {} with grpc_call_error value: '{}'".format(error, grpc_call_error_string))             # <<<<<<<<<<<<<<
 * 
 *     await future
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ExecuteBatchError); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 97, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Failed_grpc_call_start_batch_wit, __pyx_n_s_format); if (unlikely(!__pyx_t_9)) __PYX_ERR(32, 97, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = __Pyx_PyInt_From_grpc_call_error(__pyx_cur_scope->__pyx_v_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(32, 97, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_11 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_11)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_11, __pyx_t_10, __pyx_cur_scope->__pyx_v_grpc_call_error_string};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 97, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __pyx_t_9 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_3};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 97, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(32, 97, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":95
 *         wrapper.c_functor(), NULL)
 * 
 *     if error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *         grpc_call_error_string = grpc_call_error_to_string(error).decode()
 *         raise ExecuteBatchError("Failed grpc_call_start_batch: {} with grpc_call_error value: '{}'".format(error, grpc_call_error_string))
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":99
 *         raise ExecuteBatchError("Failed grpc_call_start_batch: {} with grpc_call_error value: '{}'".format(error, grpc_call_error_string))
 * 
 *     await future             # <<<<<<<<<<<<<<
 * 
 *     cdef grpc_event c_event
 */
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_future);
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 99, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(32, 99, __pyx_L1_error)
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":103
 *     cdef grpc_event c_event
 *     # Tag.event must be called, otherwise messages won't be parsed from C
 *     batch_operation_tag.event(c_event)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_cur_scope->__pyx_v_batch_operation_tag->__pyx_base.__pyx_vtab)->event(__pyx_cur_scope->__pyx_v_batch_operation_tag, __pyx_cur_scope->__pyx_v_c_event)); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":77
 * 
 * 
 * async def execute_batch(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                tuple operations,
 *                                object loop):
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("execute_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":106
 * 
 * 
 * cdef prepend_send_initial_metadata_op(tuple ops, tuple metadata):             # <<<<<<<<<<<<<<
 *     # Eventually, this function should be the only function that produces
 *     # SendInitialMetadataOperation. So we have more control over the flag.
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_prepend_send_initial_metadata_op(PyObject *__pyx_v_ops, PyObject *__pyx_v_metadata) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("prepend_send_initial_metadata_op", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":109
 *     # Eventually, this function should be the only function that produces
 *     # SendInitialMetadataOperation. So we have more control over the flag.
 *     return (SendInitialMetadataOperation(             # <<<<<<<<<<<<<<
 *         metadata,
 *         _EMPTY_FLAG
 */
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":111
 *     return (SendInitialMetadataOperation(
 *         metadata,
 *         _EMPTY_FLAG             # <<<<<<<<<<<<<<
 *     ),) + ops
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":109
 *     # Eventually, this function should be the only function that produces
 *     # SendInitialMetadataOperation. So we have more control over the flag.
 *     return (SendInitialMetadataOperation(             # <<<<<<<<<<<<<<
 *         metadata,
 *         _EMPTY_FLAG
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_metadata);
  __Pyx_GIVEREF(__pyx_v_metadata);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_metadata)) __PYX_ERR(32, 109, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(32, 109, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(32, 109, __pyx_L1_error);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":112
 *         metadata,
 *         _EMPTY_FLAG
 *     ),) + ops             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_v_ops); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":106
 * 
 * 
 * cdef prepend_send_initial_metadata_op(tuple ops, tuple metadata):             # <<<<<<<<<<<<<<
 *     # Eventually, this function should be the only function that produces
 *     # SendInitialMetadataOperation. So we have more control over the flag.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.prepend_send_initial_metadata_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_131generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":115
 * 
 * 
 * async def _receive_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                            object loop):
 *     """Retrives parsed messages from Core.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_130_receive_message(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_129_receive_message, "Retrives parsed messages from Core.\n\n    The messages maybe already in Core's buffer, so there isn't a 1-to-1\n    mapping between this and the underlying \"socket.read()\". Also, eventually,\n    this function will end with an EOF, which reads empty message.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_130_receive_message = {"_receive_message", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_130_receive_message, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_129_receive_message};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_130_receive_message(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_receive_message (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_grpc_call_wrapper,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_grpc_call_wrapper)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 115, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 115, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_receive_message", 1, 2, 2, 1); __PYX_ERR(32, 115, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_receive_message") < 0)) __PYX_ERR(32, 115, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_grpc_call_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
    __pyx_v_loop = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_receive_message", 1, 2, 2, __pyx_nargs); __PYX_ERR(32, 115, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._receive_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grpc_call_wrapper), __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "grpc_call_wrapper", 0))) __PYX_ERR(32, 115, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_129_receive_message(__pyx_self, __pyx_v_grpc_call_wrapper, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_129_receive_message(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_receive_message", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(32, 115, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_grpc_call_wrapper = __pyx_v_grpc_call_wrapper;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_131generator3, __pyx_codeobj__52, (PyObject *) __pyx_cur_scope, __pyx_n_s_receive_message, __pyx_n_s_receive_message, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(32, 115, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._receive_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_131generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  unsigned int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  char const *__pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_receive_message", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L10_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 115, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":123
 *     this function will end with an EOF, which reads empty message.
 *     """
 *     cdef ReceiveMessageOperation receive_op = ReceiveMessageOperation(_EMPTY_FLAG)             # <<<<<<<<<<<<<<
 *     cdef tuple ops = (receive_op,)
 *     try:
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_receive_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":124
 *     """
 *     cdef ReceiveMessageOperation receive_op = ReceiveMessageOperation(_EMPTY_FLAG)
 *     cdef tuple ops = (receive_op,)             # <<<<<<<<<<<<<<
 *     try:
 *         await execute_batch(grpc_call_wrapper, ops, loop)
 */
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_receive_op))) __PYX_ERR(32, 124, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":125
 *     cdef ReceiveMessageOperation receive_op = ReceiveMessageOperation(_EMPTY_FLAG)
 *     cdef tuple ops = (receive_op,)
 *     try:             # <<<<<<<<<<<<<<
 *         await execute_batch(grpc_call_wrapper, ops, loop)
 *     except ExecuteBatchError as e:
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":126
 *     cdef tuple ops = (receive_op,)
 *     try:
 *         await execute_batch(grpc_call_wrapper, ops, loop)             # <<<<<<<<<<<<<<
 *     except ExecuteBatchError as e:
 *         # NOTE(lidiz) The receive message operation has two ways to indicate
 */
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_execute_batch); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 126, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = NULL;
      __pyx_t_7 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_7 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[4] = {__pyx_t_6, ((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_loop};
        __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_7, 3+__pyx_t_7);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 126, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XGOTREF(__pyx_r);
      if (likely(__pyx_r)) {
        __Pyx_XGIVEREF(__pyx_t_3);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_3;
        __Pyx_XGIVEREF(__pyx_t_4);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
        __Pyx_XGIVEREF(__pyx_t_5);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 1;
        return __pyx_r;
        __pyx_L10_resume_from_await:;
        __pyx_t_3 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_5);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 126, __pyx_L4_error)
      } else {
        PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
        if (exc_type) {
          if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
          else __PYX_ERR(32, 126, __pyx_L4_error)
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":125
 *     cdef ReceiveMessageOperation receive_op = ReceiveMessageOperation(_EMPTY_FLAG)
 *     cdef tuple ops = (receive_op,)
 *     try:             # <<<<<<<<<<<<<<
 *         await execute_batch(grpc_call_wrapper, ops, loop)
 *     except ExecuteBatchError as e:
 */
    }
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":127
 *     try:
 *         await execute_batch(grpc_call_wrapper, ops, loop)
 *     except ExecuteBatchError as e:             # <<<<<<<<<<<<<<
 *         # NOTE(lidiz) The receive message operation has two ways to indicate
 *         # finish state : 1) returns empty message due to EOF; 2) fails inside
 */
    __Pyx_ErrFetch(&__pyx_t_2, &__pyx_t_1, &__pyx_t_6);
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_ExecuteBatchError); if (unlikely(!__pyx_t_8)) __PYX_ERR(32, 127, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_2, __pyx_t_8);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_ErrRestore(__pyx_t_2, __pyx_t_1, __pyx_t_6);
    __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_6 = 0;
    if (__pyx_t_9) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._receive_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(32, 127, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_v_e = __pyx_t_1;
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":133
 *         #
 *         # Since they all indicates finish, they are better be merged.
 *         _LOGGER.debug('Failed to receive any message from Core')             # <<<<<<<<<<<<<<
 *     # NOTE(lidiz) The returned message might be an empty bytes (aka. b'').
 *     # Please explicitly check if it is None or falsey string object!
 */
        __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_10)) __PYX_ERR(32, 133, __pyx_L16_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_debug); if (unlikely(!__pyx_t_11)) __PYX_ERR(32, 133, __pyx_L16_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = NULL;
        __pyx_t_7 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_11))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
          if (likely(__pyx_t_10)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
            __Pyx_INCREF(__pyx_t_10);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_11, function);
            __pyx_t_7 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_kp_s_Failed_to_receive_any_message_fr};
          __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(32, 133, __pyx_L16_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":127
 *     try:
 *         await execute_batch(grpc_call_wrapper, ops, loop)
 *     except ExecuteBatchError as e:             # <<<<<<<<<<<<<<
 *         # NOTE(lidiz) The receive message operation has two ways to indicate
 *         # finish state : 1) returns empty message due to EOF; 2) fails inside
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e);
          __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0;
          goto __pyx_L17;
        }
        __pyx_L16_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_assign
          __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_14);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __pyx_t_9 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename;
          {
            __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e);
            __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_17);
            __Pyx_XGIVEREF(__pyx_t_18);
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
          }
          __Pyx_XGIVEREF(__pyx_t_14);
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16);
          __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
          __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13;
          goto __pyx_L6_except_error;
        }
        __pyx_L17:;
      }
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L5_exception_handled;
    }
    goto __pyx_L6_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":125
 *     cdef ReceiveMessageOperation receive_op = ReceiveMessageOperation(_EMPTY_FLAG)
 *     cdef tuple ops = (receive_op,)
 *     try:             # <<<<<<<<<<<<<<
 *         await execute_batch(grpc_call_wrapper, ops, loop)
 *     except ExecuteBatchError as e:
 */
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L5_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    __pyx_L9_try_end:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":136
 *     # NOTE(lidiz) The returned message might be an empty bytes (aka. b'').
 *     # Please explicitly check if it is None or falsey string object!
 *     return receive_op.message()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_receive_op), __pyx_n_s_message); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 136, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  goto __pyx_L0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":115
 * 
 * 
 * async def _receive_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                            object loop):
 *     """Retrives parsed messages from Core.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("_receive_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_134generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":139
 * 
 * 
 * async def _send_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                         bytes message,
 *                         Operation send_initial_metadata_op,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_133_send_message(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_133_send_message = {"_send_message", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_133_send_message, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_133_send_message(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper = 0;
  PyObject *__pyx_v_message = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op = 0;
  int __pyx_v_write_flag;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_send_message (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_grpc_call_wrapper,&__pyx_n_s_message,&__pyx_n_s_send_initial_metadata_op,&__pyx_n_s_write_flag,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_grpc_call_wrapper)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 139, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_message)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 139, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_send_message", 1, 5, 5, 1); __PYX_ERR(32, 139, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_send_initial_metadata_op)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 139, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_send_message", 1, 5, 5, 2); __PYX_ERR(32, 139, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_write_flag)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 139, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_send_message", 1, 5, 5, 3); __PYX_ERR(32, 139, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 139, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_send_message", 1, 5, 5, 4); __PYX_ERR(32, 139, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_send_message") < 0)) __PYX_ERR(32, 139, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_grpc_call_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
    __pyx_v_message = ((PyObject*)values[1]);
    __pyx_v_send_initial_metadata_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)values[2]);
    __pyx_v_write_flag = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_write_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(32, 142, __pyx_L3_error)
    __pyx_v_loop = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_send_message", 1, 5, 5, __pyx_nargs); __PYX_ERR(32, 139, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._send_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grpc_call_wrapper), __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "grpc_call_wrapper", 0))) __PYX_ERR(32, 139, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_message), (&PyBytes_Type), 1, "message", 1))) __PYX_ERR(32, 140, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_send_initial_metadata_op), __pyx_ptype_4grpc_7_cython_6cygrpc_Operation, 1, "send_initial_metadata_op", 0))) __PYX_ERR(32, 141, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_132_send_message(__pyx_self, __pyx_v_grpc_call_wrapper, __pyx_v_message, __pyx_v_send_initial_metadata_op, __pyx_v_write_flag, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_132_send_message(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_message, struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op, int __pyx_v_write_flag, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_send_message", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(32, 139, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_grpc_call_wrapper = __pyx_v_grpc_call_wrapper;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __pyx_cur_scope->__pyx_v_message = __pyx_v_message;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_message);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_message);
  __pyx_cur_scope->__pyx_v_send_initial_metadata_op = __pyx_v_send_initial_metadata_op;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
  __pyx_cur_scope->__pyx_v_write_flag = __pyx_v_write_flag;
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_134generator4, __pyx_codeobj__53, (PyObject *) __pyx_cur_scope, __pyx_n_s_send_message, __pyx_n_s_send_message, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(32, 139, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._send_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_134generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_send_message", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 139, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":144
 *                         int write_flag,
 *                         object loop):
 *     cdef SendMessageOperation op = SendMessageOperation(message, write_flag)             # <<<<<<<<<<<<<<
 *     cdef tuple ops = (op,)
 *     if send_initial_metadata_op is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_write_flag); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_message);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_message);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_message)) __PYX_ERR(32, 144, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(32, 144, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":145
 *                         object loop):
 *     cdef SendMessageOperation op = SendMessageOperation(message, write_flag)
 *     cdef tuple ops = (op,)             # <<<<<<<<<<<<<<
 *     if send_initial_metadata_op is not None:
 *         ops = (send_initial_metadata_op,) + ops
 */
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op))) __PYX_ERR(32, 145, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":146
 *     cdef SendMessageOperation op = SendMessageOperation(message, write_flag)
 *     cdef tuple ops = (op,)
 *     if send_initial_metadata_op is not None:             # <<<<<<<<<<<<<<
 *         ops = (send_initial_metadata_op,) + ops
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 */
  __pyx_t_3 = (((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op) != Py_None);
  if (__pyx_t_3) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":147
 *     cdef tuple ops = (op,)
 *     if send_initial_metadata_op is not None:
 *         ops = (send_initial_metadata_op,) + ops             # <<<<<<<<<<<<<<
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 * 
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 147, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op))) __PYX_ERR(32, 147, __pyx_L1_error);
    __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_cur_scope->__pyx_v_ops); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 147, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_ops);
    __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_ops, ((PyObject*)__pyx_t_2));
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":146
 *     cdef SendMessageOperation op = SendMessageOperation(message, write_flag)
 *     cdef tuple ops = (op,)
 *     if send_initial_metadata_op is not None:             # <<<<<<<<<<<<<<
 *         ops = (send_initial_metadata_op,) + ops
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":148
 *     if send_initial_metadata_op is not None:
 *         ops = (send_initial_metadata_op,) + ops
 *     await execute_batch(grpc_call_wrapper, ops, loop)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_execute_batch); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, ((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 3+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 148, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(32, 148, __pyx_L1_error)
    }
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":139
 * 
 * 
 * async def _send_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                         bytes message,
 *                         Operation send_initial_metadata_op,
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("_send_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_137generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":151
 * 
 * 
 * async def _send_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                  tuple metadata,
 *                                  int flags,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_136_send_initial_metadata(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_136_send_initial_metadata = {"_send_initial_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_136_send_initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_136_send_initial_metadata(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper = 0;
  PyObject *__pyx_v_metadata = 0;
  int __pyx_v_flags;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_send_initial_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_grpc_call_wrapper,&__pyx_n_s_metadata,&__pyx_n_s_flags,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_grpc_call_wrapper)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 151, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 151, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_send_initial_metadata", 1, 4, 4, 1); __PYX_ERR(32, 151, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flags)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 151, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_send_initial_metadata", 1, 4, 4, 2); __PYX_ERR(32, 151, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 151, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_send_initial_metadata", 1, 4, 4, 3); __PYX_ERR(32, 151, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_send_initial_metadata") < 0)) __PYX_ERR(32, 151, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_grpc_call_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
    __pyx_v_metadata = ((PyObject*)values[1]);
    __pyx_v_flags = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(32, 153, __pyx_L3_error)
    __pyx_v_loop = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_send_initial_metadata", 1, 4, 4, __pyx_nargs); __PYX_ERR(32, 151, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grpc_call_wrapper), __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "grpc_call_wrapper", 0))) __PYX_ERR(32, 151, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metadata), (&PyTuple_Type), 1, "metadata", 1))) __PYX_ERR(32, 152, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_135_send_initial_metadata(__pyx_self, __pyx_v_grpc_call_wrapper, __pyx_v_metadata, __pyx_v_flags, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_135_send_initial_metadata(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_metadata, int __pyx_v_flags, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_send_initial_metadata", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(32, 151, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_grpc_call_wrapper = __pyx_v_grpc_call_wrapper;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __pyx_cur_scope->__pyx_v_metadata = __pyx_v_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_metadata);
  __pyx_cur_scope->__pyx_v_flags = __pyx_v_flags;
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_137generator5, __pyx_codeobj__54, (PyObject *) __pyx_cur_scope, __pyx_n_s_send_initial_metadata, __pyx_n_s_send_initial_metadata, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(32, 151, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_137generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_send_initial_metadata", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 151, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":157
 *     cdef SendInitialMetadataOperation op = SendInitialMetadataOperation(
 *         metadata,
 *         flags)             # <<<<<<<<<<<<<<
 *     cdef tuple ops = (op,)
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":155
 *                                  int flags,
 *                                  object loop):
 *     cdef SendInitialMetadataOperation op = SendInitialMetadataOperation(             # <<<<<<<<<<<<<<
 *         metadata,
 *         flags)
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_metadata);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_metadata)) __PYX_ERR(32, 155, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(32, 155, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":158
 *         metadata,
 *         flags)
 *     cdef tuple ops = (op,)             # <<<<<<<<<<<<<<
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 * 
 */
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op))) __PYX_ERR(32, 158, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":159
 *         flags)
 *     cdef tuple ops = (op,)
 *     await execute_batch(grpc_call_wrapper, ops, loop)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_execute_batch); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 159, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(32, 159, __pyx_L1_error)
    }
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":151
 * 
 * 
 * async def _send_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                  tuple metadata,
 *                                  int flags,
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("_send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_140generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":162
 * 
 * 
 * async def _receive_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                     object loop):
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_139_receive_initial_metadata(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_139_receive_initial_metadata = {"_receive_initial_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_139_receive_initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_139_receive_initial_metadata(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_receive_initial_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_grpc_call_wrapper,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_grpc_call_wrapper)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 162, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 162, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_receive_initial_metadata", 1, 2, 2, 1); __PYX_ERR(32, 162, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_receive_initial_metadata") < 0)) __PYX_ERR(32, 162, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_grpc_call_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
    __pyx_v_loop = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_receive_initial_metadata", 1, 2, 2, __pyx_nargs); __PYX_ERR(32, 162, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._receive_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grpc_call_wrapper), __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "grpc_call_wrapper", 0))) __PYX_ERR(32, 162, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_138_receive_initial_metadata(__pyx_self, __pyx_v_grpc_call_wrapper, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_138_receive_initial_metadata(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_receive_initial_metadata", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(32, 162, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_grpc_call_wrapper = __pyx_v_grpc_call_wrapper;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_140generator6, __pyx_codeobj__55, (PyObject *) __pyx_cur_scope, __pyx_n_s_receive_initial_metadata, __pyx_n_s_receive_initial_metadata, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(32, 162, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._receive_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_140generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_receive_initial_metadata", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 162, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":164
 * async def _receive_initial_metadata(GrpcCallWrapper grpc_call_wrapper,
 *                                     object loop):
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *     cdef tuple ops = (op,)
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":165
 *                                     object loop):
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 *     cdef tuple ops = (op,)             # <<<<<<<<<<<<<<
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 *     return op.initial_metadata()
 */
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op))) __PYX_ERR(32, 165, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":166
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 *     cdef tuple ops = (op,)
 *     await execute_batch(grpc_call_wrapper, ops, loop)             # <<<<<<<<<<<<<<
 *     return op.initial_metadata()
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_execute_batch); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 166, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(32, 166, __pyx_L1_error)
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":167
 *     cdef tuple ops = (op,)
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 *     return op.initial_metadata()             # <<<<<<<<<<<<<<
 * 
 * async def _send_error_status_from_server(GrpcCallWrapper grpc_call_wrapper,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_op), __pyx_n_s_initial_metadata); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 167, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  goto __pyx_L0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":162
 * 
 * 
 * async def _receive_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                     object loop):
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("_receive_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_143generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":169
 *     return op.initial_metadata()
 * 
 * async def _send_error_status_from_server(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                          grpc_status_code code,
 *                                          str details,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_142_send_error_status_from_server(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_142_send_error_status_from_server = {"_send_error_status_from_server", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_142_send_error_status_from_server, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_142_send_error_status_from_server(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper = 0;
  grpc_status_code __pyx_v_code;
  PyObject *__pyx_v_details = 0;
  PyObject *__pyx_v_trailing_metadata = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_send_error_status_from_server (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_grpc_call_wrapper,&__pyx_n_s_code,&__pyx_n_s_details,&__pyx_n_s_trailing_metadata,&__pyx_n_s_send_initial_metadata_op,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_grpc_call_wrapper)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 169, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_code)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 169, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_send_error_status_from_server", 1, 6, 6, 1); __PYX_ERR(32, 169, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 169, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_send_error_status_from_server", 1, 6, 6, 2); __PYX_ERR(32, 169, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_trailing_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 169, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_send_error_status_from_server", 1, 6, 6, 3); __PYX_ERR(32, 169, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_send_initial_metadata_op)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 169, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_send_error_status_from_server", 1, 6, 6, 4); __PYX_ERR(32, 169, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 169, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_send_error_status_from_server", 1, 6, 6, 5); __PYX_ERR(32, 169, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_send_error_status_from_server") < 0)) __PYX_ERR(32, 169, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_grpc_call_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
    __pyx_v_code = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(values[1])); if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 170, __pyx_L3_error)
    __pyx_v_details = ((PyObject*)values[2]);
    __pyx_v_trailing_metadata = ((PyObject*)values[3]);
    __pyx_v_send_initial_metadata_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)values[4]);
    __pyx_v_loop = values[5];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_send_error_status_from_server", 1, 6, 6, __pyx_nargs); __PYX_ERR(32, 169, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._send_error_status_from_server", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grpc_call_wrapper), __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "grpc_call_wrapper", 0))) __PYX_ERR(32, 169, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_details), (&PyString_Type), 1, "details", 1))) __PYX_ERR(32, 171, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_trailing_metadata), (&PyTuple_Type), 1, "trailing_metadata", 1))) __PYX_ERR(32, 172, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_send_initial_metadata_op), __pyx_ptype_4grpc_7_cython_6cygrpc_Operation, 1, "send_initial_metadata_op", 0))) __PYX_ERR(32, 173, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_141_send_error_status_from_server(__pyx_self, __pyx_v_grpc_call_wrapper, __pyx_v_code, __pyx_v_details, __pyx_v_trailing_metadata, __pyx_v_send_initial_metadata_op, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_141_send_error_status_from_server(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, grpc_status_code __pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_send_error_status_from_server", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(32, 169, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_grpc_call_wrapper = __pyx_v_grpc_call_wrapper;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __pyx_cur_scope->__pyx_v_code = __pyx_v_code;
  __pyx_cur_scope->__pyx_v_details = __pyx_v_details;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_details);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_details);
  __pyx_cur_scope->__pyx_v_trailing_metadata = __pyx_v_trailing_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
  __pyx_cur_scope->__pyx_v_send_initial_metadata_op = __pyx_v_send_initial_metadata_op;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_143generator7, __pyx_codeobj__56, (PyObject *) __pyx_cur_scope, __pyx_n_s_send_error_status_from_server, __pyx_n_s_send_error_status_from_server, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(32, 169, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._send_error_status_from_server", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_143generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_send_error_status_from_server", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 169, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":175
 *                                          Operation send_initial_metadata_op,
 *                                          object loop):
 *     assert code != StatusCode.ok, 'Expecting non-ok status code.'             # <<<<<<<<<<<<<<
 *     cdef SendStatusFromServerOperation op = SendStatusFromServerOperation(
 *         trailing_metadata,
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_1 = __Pyx_PyInt_From_grpc_status_code(__pyx_cur_scope->__pyx_v_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ok); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 175, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(32, 175, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_4)) {
      __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_kp_s_Expecting_non_ok_status_code, 0, 0);
      __PYX_ERR(32, 175, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(32, 175, __pyx_L1_error)
  #endif

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":178
 *     cdef SendStatusFromServerOperation op = SendStatusFromServerOperation(
 *         trailing_metadata,
 *         code,             # <<<<<<<<<<<<<<
 *         details,
 *         _EMPTY_FLAGS,
 */
  __pyx_t_2 = __Pyx_PyInt_From_grpc_status_code(__pyx_cur_scope->__pyx_v_code); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":180
 *         code,
 *         details,
 *         _EMPTY_FLAGS,             # <<<<<<<<<<<<<<
 *     )
 *     cdef tuple ops = (op,)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":176
 *                                          object loop):
 *     assert code != StatusCode.ok, 'Expecting non-ok status code.'
 *     cdef SendStatusFromServerOperation op = SendStatusFromServerOperation(             # <<<<<<<<<<<<<<
 *         trailing_metadata,
 *         code,
 */
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_trailing_metadata)) __PYX_ERR(32, 176, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2)) __PYX_ERR(32, 176, __pyx_L1_error);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_details);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_details);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_cur_scope->__pyx_v_details)) __PYX_ERR(32, 176, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_3)) __PYX_ERR(32, 176, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation), __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":182
 *         _EMPTY_FLAGS,
 *     )
 *     cdef tuple ops = (op,)             # <<<<<<<<<<<<<<
 *     if send_initial_metadata_op is not None:
 *         ops = (send_initial_metadata_op,) + ops
 */
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op))) __PYX_ERR(32, 182, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":183
 *     )
 *     cdef tuple ops = (op,)
 *     if send_initial_metadata_op is not None:             # <<<<<<<<<<<<<<
 *         ops = (send_initial_metadata_op,) + ops
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 */
  __pyx_t_4 = (((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op) != Py_None);
  if (__pyx_t_4) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":184
 *     cdef tuple ops = (op,)
 *     if send_initial_metadata_op is not None:
 *         ops = (send_initial_metadata_op,) + ops             # <<<<<<<<<<<<<<
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 184, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op))) __PYX_ERR(32, 184, __pyx_L1_error);
    __pyx_t_1 = PyNumber_Add(__pyx_t_3, __pyx_cur_scope->__pyx_v_ops); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 184, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_ops);
    __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_ops, ((PyObject*)__pyx_t_1));
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":183
 *     )
 *     cdef tuple ops = (op,)
 *     if send_initial_metadata_op is not None:             # <<<<<<<<<<<<<<
 *         ops = (send_initial_metadata_op,) + ops
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":185
 *     if send_initial_metadata_op is not None:
 *         ops = (send_initial_metadata_op,) + ops
 *     await execute_batch(grpc_call_wrapper, ops, loop)             # <<<<<<<<<<<<<<
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_execute_batch); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 3+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 185, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 185, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(32, 185, __pyx_L1_error)
    }
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":169
 *     return op.initial_metadata()
 * 
 * async def _send_error_status_from_server(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                          grpc_status_code code,
 *                                          str details,
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("_send_error_status_from_server", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":28
 * 
 * 
 * cdef _default_asyncio_engine():             # <<<<<<<<<<<<<<
 *     return AsyncIOEngine.POLLER
 * 
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__default_asyncio_engine(void) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_default_asyncio_engine", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":29
 * 
 * cdef _default_asyncio_engine():
 *     return AsyncIOEngine.POLLER             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_AsyncIOEngine); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_POLLER); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":28
 * 
 * 
 * cdef _default_asyncio_engine():             # <<<<<<<<<<<<<<
 *     return AsyncIOEngine.POLLER
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._default_asyncio_engine", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":32
 * 
 * 
 * cdef grpc_completion_queue *global_completion_queue():             # <<<<<<<<<<<<<<
 *     return _global_aio_state.cq.c_ptr()
 * 
 */

static grpc_completion_queue *__pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(void) {
  grpc_completion_queue *__pyx_r;
  grpc_completion_queue *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":33
 * 
 * cdef grpc_completion_queue *global_completion_queue():
 *     return _global_aio_state.cq.c_ptr()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq->__pyx_vtab)->c_ptr(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq); if (unlikely(PyErr_Occurred())) __PYX_ERR(33, 33, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":32
 * 
 * 
 * cdef grpc_completion_queue *global_completion_queue():             # <<<<<<<<<<<<<<
 *     return _global_aio_state.cq.c_ptr()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.global_completion_queue", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":38
 * cdef class _AioState:
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.lock = threading.RLock()
 *         self.refcount = 0
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9_AioState___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_9_AioState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":39
 * 
 *     def __cinit__(self):
 *         self.lock = threading.RLock()             # <<<<<<<<<<<<<<
 *         self.refcount = 0
 *         self.engine = None
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_threading); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_RLock); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 39, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->lock);
  __Pyx_DECREF(__pyx_v_self->lock);
  __pyx_v_self->lock = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":40
 *     def __cinit__(self):
 *         self.lock = threading.RLock()
 *         self.refcount = 0             # <<<<<<<<<<<<<<
 *         self.engine = None
 *         self.cq = None
 */
  __pyx_v_self->refcount = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":41
 *         self.lock = threading.RLock()
 *         self.refcount = 0
 *         self.engine = None             # <<<<<<<<<<<<<<
 *         self.cq = None
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->engine);
  __Pyx_DECREF(__pyx_v_self->engine);
  __pyx_v_self->engine = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":42
 *         self.refcount = 0
 *         self.engine = None
 *         self.cq = None             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->cq);
  __Pyx_DECREF((PyObject *)__pyx_v_self->cq);
  __pyx_v_self->cq = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)Py_None);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":38
 * cdef class _AioState:
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.lock = threading.RLock()
 *         self.refcount = 0
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9_AioState_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9_AioState_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9_AioState_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioState.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9_AioState_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9_AioState_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9_AioState_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":45
 * 
 * 
 * cdef _initialize_poller():             # <<<<<<<<<<<<<<
 *     # Initializes gRPC Core, must be called before other Core API
 *     grpc_init()
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__initialize_poller(void) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_initialize_poller", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":47
 * cdef _initialize_poller():
 *     # Initializes gRPC Core, must be called before other Core API
 *     grpc_init()             # <<<<<<<<<<<<<<
 * 
 *     # Creates the only completion queue
 */
  grpc_init();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":50
 * 
 *     # Creates the only completion queue
 *     _global_aio_state.cq = PollerCompletionQueue()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue)); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq);
  __Pyx_DECREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq);
  __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":45
 * 
 * 
 * cdef _initialize_poller():             # <<<<<<<<<<<<<<
 *     # Initializes gRPC Core, must be called before other Core API
 *     grpc_init()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._initialize_poller", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":53
 * 
 * 
 * cdef _actual_aio_initialization():             # <<<<<<<<<<<<<<
 *     # Picks the engine for gRPC AsyncIO Stack
 *     _global_aio_state.engine = AsyncIOEngine.__members__.get(
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__actual_aio_initialization(void) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_actual_aio_initialization", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":55
 * cdef _actual_aio_initialization():
 *     # Picks the engine for gRPC AsyncIO Stack
 *     _global_aio_state.engine = AsyncIOEngine.__members__.get(             # <<<<<<<<<<<<<<
 *         _GRPC_ASYNCIO_ENGINE,
 *         _default_asyncio_engine(),
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_AsyncIOEngine); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_members); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":57
 *     _global_aio_state.engine = AsyncIOEngine.__members__.get(
 *         _GRPC_ASYNCIO_ENGINE,
 *         _default_asyncio_engine(),             # <<<<<<<<<<<<<<
 *     )
 *     _LOGGER.debug('Using %s as I/O engine', _global_aio_state.engine)
 */
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__default_asyncio_engine(); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_4grpc_7_cython_6cygrpc__GRPC_ASYNCIO_ENGINE, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 55, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":55
 * cdef _actual_aio_initialization():
 *     # Picks the engine for gRPC AsyncIO Stack
 *     _global_aio_state.engine = AsyncIOEngine.__members__.get(             # <<<<<<<<<<<<<<
 *         _GRPC_ASYNCIO_ENGINE,
 *         _default_asyncio_engine(),
 */
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine);
  __Pyx_DECREF(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine);
  __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":59
 *         _default_asyncio_engine(),
 *     )
 *     _LOGGER.debug('Using %s as I/O engine', _global_aio_state.engine)             # <<<<<<<<<<<<<<
 * 
 *     # Initializes the process-level state accordingly
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_kp_s_Using_s_as_I_O_engine, __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 59, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":62
 * 
 *     # Initializes the process-level state accordingly
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:             # <<<<<<<<<<<<<<
 *         _initialize_poller()
 *     else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_AsyncIOEngine); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_POLLER); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = (__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine == __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (likely(__pyx_t_6)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":63
 *     # Initializes the process-level state accordingly
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 *         _initialize_poller()             # <<<<<<<<<<<<<<
 *     else:
 *         raise ValueError('Unsupported engine type [%s]' % _global_aio_state.engine)
 */
    __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__initialize_poller(); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 63, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":62
 * 
 *     # Initializes the process-level state accordingly
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:             # <<<<<<<<<<<<<<
 *         _initialize_poller()
 *     else:
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":65
 *         _initialize_poller()
 *     else:
 *         raise ValueError('Unsupported engine type [%s]' % _global_aio_state.engine)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Unsupported_engine_type_s, __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(33, 65, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":53
 * 
 * 
 * cdef _actual_aio_initialization():             # <<<<<<<<<<<<<<
 *     # Picks the engine for gRPC AsyncIO Stack
 *     _global_aio_state.engine = AsyncIOEngine.__members__.get(
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._actual_aio_initialization", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":68
 * 
 * 
 * def _grpc_shutdown_wrapper(_):             # <<<<<<<<<<<<<<
 *     """A thin Python wrapper of Core's shutdown function.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_145_grpc_shutdown_wrapper(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_144_grpc_shutdown_wrapper, "A thin Python wrapper of Core's shutdown function.\n\n    Define functions are not allowed in \"cdef\" functions, and Cython complains\n    about a simple lambda with a C function.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_145_grpc_shutdown_wrapper = {"_grpc_shutdown_wrapper", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_145_grpc_shutdown_wrapper, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_144_grpc_shutdown_wrapper};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_145_grpc_shutdown_wrapper(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v__ = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_grpc_shutdown_wrapper (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s__57,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s__57)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(33, 68, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_grpc_shutdown_wrapper") < 0)) __PYX_ERR(33, 68, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v__ = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_grpc_shutdown_wrapper", 1, 1, 1, __pyx_nargs); __PYX_ERR(33, 68, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._grpc_shutdown_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_144_grpc_shutdown_wrapper(__pyx_self, __pyx_v__);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_144_grpc_shutdown_wrapper(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v__) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_grpc_shutdown_wrapper", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":74
 *     about a simple lambda with a C function.
 *     """
 *     grpc_shutdown()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  grpc_shutdown();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":68
 * 
 * 
 * def _grpc_shutdown_wrapper(_):             # <<<<<<<<<<<<<<
 *     """A thin Python wrapper of Core's shutdown function.
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":77
 * 
 * 
 * cdef _actual_aio_shutdown():             # <<<<<<<<<<<<<<
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 *         (<PollerCompletionQueue>_global_aio_state.cq).shutdown()
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__actual_aio_shutdown(void) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_actual_aio_shutdown", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":78
 * 
 * cdef _actual_aio_shutdown():
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:             # <<<<<<<<<<<<<<
 *         (<PollerCompletionQueue>_global_aio_state.cq).shutdown()
 *         grpc_shutdown()
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_AsyncIOEngine); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_POLLER); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine == __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(__pyx_t_3)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":79
 * cdef _actual_aio_shutdown():
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 *         (<PollerCompletionQueue>_global_aio_state.cq).shutdown()             # <<<<<<<<<<<<<<
 *         grpc_shutdown()
 *     else:
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq)->__pyx_base.__pyx_vtab)->shutdown(((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq)); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 79, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":80
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 *         (<PollerCompletionQueue>_global_aio_state.cq).shutdown()
 *         grpc_shutdown()             # <<<<<<<<<<<<<<
 *     else:
 *         raise ValueError('Unsupported engine type [%s]' % _global_aio_state.engine)
 */
    grpc_shutdown();

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":78
 * 
 * cdef _actual_aio_shutdown():
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:             # <<<<<<<<<<<<<<
 *         (<PollerCompletionQueue>_global_aio_state.cq).shutdown()
 *         grpc_shutdown()
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":82
 *         grpc_shutdown()
 *     else:
 *         raise ValueError('Unsupported engine type [%s]' % _global_aio_state.engine)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Unsupported_engine_type_s, __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(33, 82, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":77
 * 
 * 
 * cdef _actual_aio_shutdown():             # <<<<<<<<<<<<<<
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 *         (<PollerCompletionQueue>_global_aio_state.cq).shutdown()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._actual_aio_shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":85
 * 
 * 
 * cdef _initialize_per_loop():             # <<<<<<<<<<<<<<
 *     cdef object loop = get_working_loop()
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__initialize_per_loop(void) {
  PyObject *__pyx_v_loop = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_initialize_per_loop", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":86
 * 
 * cdef _initialize_per_loop():
 *     cdef object loop = get_working_loop()             # <<<<<<<<<<<<<<
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 *         _global_aio_state.cq.bind_loop(loop)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_working_loop); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_loop = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":87
 * cdef _initialize_per_loop():
 *     cdef object loop = get_working_loop()
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:             # <<<<<<<<<<<<<<
 *         _global_aio_state.cq.bind_loop(loop)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_AsyncIOEngine); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_POLLER); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_5 = (__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine == __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":88
 *     cdef object loop = get_working_loop()
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 *         _global_aio_state.cq.bind_loop(loop)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq), __pyx_n_s_bind_loop); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 88, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_loop};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 88, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":87
 * cdef _initialize_per_loop():
 *     cdef object loop = get_working_loop()
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:             # <<<<<<<<<<<<<<
 *         _global_aio_state.cq.bind_loop(loop)
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":85
 * 
 * 
 * cdef _initialize_per_loop():             # <<<<<<<<<<<<<<
 *     cdef object loop = get_working_loop()
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._initialize_per_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_loop);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":91
 * 
 * 
 * cpdef init_grpc_aio():             # <<<<<<<<<<<<<<
 *     """Initializes the gRPC AsyncIO module.
 * 
 */

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_147init_grpc_aio(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio(CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("init_grpc_aio", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":97
 *     E.g., AioChannel, AioServer.
 *     """
 *     with _global_aio_state.lock:             # <<<<<<<<<<<<<<
 *         _global_aio_state.refcount += 1
 *         if _global_aio_state.refcount == 1:
 */
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->lock, __pyx_n_s_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 97, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->lock, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 97, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 97, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":98
 *     """
 *     with _global_aio_state.lock:
 *         _global_aio_state.refcount += 1             # <<<<<<<<<<<<<<
 *         if _global_aio_state.refcount == 1:
 *             _actual_aio_initialization()
 */
          __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->refcount = (__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->refcount + 1);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":99
 *     with _global_aio_state.lock:
 *         _global_aio_state.refcount += 1
 *         if _global_aio_state.refcount == 1:             # <<<<<<<<<<<<<<
 *             _actual_aio_initialization()
 *         _initialize_per_loop()
 */
          __pyx_t_9 = (__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->refcount == 1);
          if (__pyx_t_9) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":100
 *         _global_aio_state.refcount += 1
 *         if _global_aio_state.refcount == 1:
 *             _actual_aio_initialization()             # <<<<<<<<<<<<<<
 *         _initialize_per_loop()
 * 
 */
            __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__actual_aio_initialization(); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 100, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":99
 *     with _global_aio_state.lock:
 *         _global_aio_state.refcount += 1
 *         if _global_aio_state.refcount == 1:             # <<<<<<<<<<<<<<
 *             _actual_aio_initialization()
 *         _initialize_per_loop()
 */
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":101
 *         if _global_aio_state.refcount == 1:
 *             _actual_aio_initialization()
 *         _initialize_per_loop()             # <<<<<<<<<<<<<<
 * 
 * 
 */
          __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__initialize_per_loop(); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 101, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":97
 *     E.g., AioChannel, AioServer.
 *     """
 *     with _global_aio_state.lock:             # <<<<<<<<<<<<<<
 *         _global_aio_state.refcount += 1
 *         if _global_aio_state.refcount == 1:
 */
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc.init_grpc_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(33, 97, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_10 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(33, 97, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(33, 97, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(33, 97, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_9);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_3, __pyx_t_4);
            __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; 
            __PYX_ERR(33, 97, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(33, 97, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":91
 * 
 * 
 * cpdef init_grpc_aio():             # <<<<<<<<<<<<<<
 *     """Initializes the gRPC AsyncIO module.
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("grpc._cython.cygrpc.init_grpc_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_147init_grpc_aio(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_146init_grpc_aio, "Initializes the gRPC AsyncIO module.\n\n    Expected to be invoked on critical class constructors.\n    E.g., AioChannel, AioServer.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_147init_grpc_aio = {"init_grpc_aio", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_147init_grpc_aio, METH_NOARGS, __pyx_doc_4grpc_7_cython_6cygrpc_146init_grpc_aio};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_147init_grpc_aio(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("init_grpc_aio (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_146init_grpc_aio(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_146init_grpc_aio(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("init_grpc_aio", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.init_grpc_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":104
 * 
 * 
 * cpdef shutdown_grpc_aio():             # <<<<<<<<<<<<<<
 *     """Shuts down the gRPC AsyncIO module.
 * 
 */

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_149shutdown_grpc_aio(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio(CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("shutdown_grpc_aio", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":110
 *     E.g., AioChannel, AioServer.
 *     """
 *     with _global_aio_state.lock:             # <<<<<<<<<<<<<<
 *         assert _global_aio_state.refcount > 0
 *         _global_aio_state.refcount -= 1
 */
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->lock, __pyx_n_s_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->lock, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 110, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 110, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":111
 *     """
 *     with _global_aio_state.lock:
 *         assert _global_aio_state.refcount > 0             # <<<<<<<<<<<<<<
 *         _global_aio_state.refcount -= 1
 *         if not _global_aio_state.refcount:
 */
          #ifndef CYTHON_WITHOUT_ASSERTIONS
          if (unlikely(__pyx_assertions_enabled())) {
            __pyx_t_9 = (__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->refcount > 0);
            if (unlikely(!__pyx_t_9)) {
              __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
              __PYX_ERR(33, 111, __pyx_L7_error)
            }
          }
          #else
          if ((1)); else __PYX_ERR(33, 111, __pyx_L7_error)
          #endif

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":112
 *     with _global_aio_state.lock:
 *         assert _global_aio_state.refcount > 0
 *         _global_aio_state.refcount -= 1             # <<<<<<<<<<<<<<
 *         if not _global_aio_state.refcount:
 *             _actual_aio_shutdown()
 */
          __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->refcount = (__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->refcount - 1);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":113
 *         assert _global_aio_state.refcount > 0
 *         _global_aio_state.refcount -= 1
 *         if not _global_aio_state.refcount:             # <<<<<<<<<<<<<<
 *             _actual_aio_shutdown()
 */
          __pyx_t_9 = (!(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->refcount != 0));
          if (__pyx_t_9) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":114
 *         _global_aio_state.refcount -= 1
 *         if not _global_aio_state.refcount:
 *             _actual_aio_shutdown()             # <<<<<<<<<<<<<<
 */
            __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__actual_aio_shutdown(); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 114, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":113
 *         assert _global_aio_state.refcount > 0
 *         _global_aio_state.refcount -= 1
 *         if not _global_aio_state.refcount:             # <<<<<<<<<<<<<<
 *             _actual_aio_shutdown()
 */
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":110
 *     E.g., AioChannel, AioServer.
 *     """
 *     with _global_aio_state.lock:             # <<<<<<<<<<<<<<
 *         assert _global_aio_state.refcount > 0
 *         _global_aio_state.refcount -= 1
 */
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc.shutdown_grpc_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(33, 110, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_10 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(33, 110, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(33, 110, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(33, 110, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_9);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_3, __pyx_t_4);
            __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; 
            __PYX_ERR(33, 110, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(33, 110, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":104
 * 
 * 
 * cpdef shutdown_grpc_aio():             # <<<<<<<<<<<<<<
 *     """Shuts down the gRPC AsyncIO module.
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("grpc._cython.cygrpc.shutdown_grpc_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_149shutdown_grpc_aio(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_148shutdown_grpc_aio, "Shuts down the gRPC AsyncIO module.\n\n    Expected to be invoked on critical class destructors.\n    E.g., AioChannel, AioServer.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_149shutdown_grpc_aio = {"shutdown_grpc_aio", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_149shutdown_grpc_aio, METH_NOARGS, __pyx_doc_4grpc_7_cython_6cygrpc_148shutdown_grpc_aio};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_149shutdown_grpc_aio(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown_grpc_aio (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_148shutdown_grpc_aio(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_148shutdown_grpc_aio(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("shutdown_grpc_aio", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.shutdown_grpc_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":33
 * 
 * 
 * cdef int _get_send_initial_metadata_flags(object wait_for_ready) except *:             # <<<<<<<<<<<<<<
 *     cdef int flags = 0
 *     # Wait-for-ready can be None, which means using default value in Core.
 */

static int __pyx_f_4grpc_7_cython_6cygrpc__get_send_initial_metadata_flags(PyObject *__pyx_v_wait_for_ready) {
  int __pyx_v_flags;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_get_send_initial_metadata_flags", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":34
 * 
 * cdef int _get_send_initial_metadata_flags(object wait_for_ready) except *:
 *     cdef int flags = 0             # <<<<<<<<<<<<<<
 *     # Wait-for-ready can be None, which means using default value in Core.
 *     if wait_for_ready is not None:
 */
  __pyx_v_flags = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":36
 *     cdef int flags = 0
 *     # Wait-for-ready can be None, which means using default value in Core.
 *     if wait_for_ready is not None:             # <<<<<<<<<<<<<<
 *         flags |= InitialMetadataFlags.wait_for_ready_explicitly_set
 *         if wait_for_ready:
 */
  __pyx_t_1 = (__pyx_v_wait_for_ready != Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":37
 *     # Wait-for-ready can be None, which means using default value in Core.
 *     if wait_for_ready is not None:
 *         flags |= InitialMetadataFlags.wait_for_ready_explicitly_set             # <<<<<<<<<<<<<<
 *         if wait_for_ready:
 *             flags |= InitialMetadataFlags.wait_for_ready
 */
    __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_InitialMetadataFlags); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_wait_for_ready_explicitly_set); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_InPlaceOr(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(34, 37, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_flags = __pyx_t_5;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":38
 *     if wait_for_ready is not None:
 *         flags |= InitialMetadataFlags.wait_for_ready_explicitly_set
 *         if wait_for_ready:             # <<<<<<<<<<<<<<
 *             flags |= InitialMetadataFlags.wait_for_ready
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_wait_for_ready); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(34, 38, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":39
 *         flags |= InitialMetadataFlags.wait_for_ready_explicitly_set
 *         if wait_for_ready:
 *             flags |= InitialMetadataFlags.wait_for_ready             # <<<<<<<<<<<<<<
 * 
 *     flags &= InitialMetadataFlags.used_mask
 */
      __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 39, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_InitialMetadataFlags); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 39, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_wait_for_ready); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 39, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_InPlaceOr(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 39, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(34, 39, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_v_flags = __pyx_t_5;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":38
 *     if wait_for_ready is not None:
 *         flags |= InitialMetadataFlags.wait_for_ready_explicitly_set
 *         if wait_for_ready:             # <<<<<<<<<<<<<<
 *             flags |= InitialMetadataFlags.wait_for_ready
 * 
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":36
 *     cdef int flags = 0
 *     # Wait-for-ready can be None, which means using default value in Core.
 *     if wait_for_ready is not None:             # <<<<<<<<<<<<<<
 *         flags |= InitialMetadataFlags.wait_for_ready_explicitly_set
 *         if wait_for_ready:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":41
 *             flags |= InitialMetadataFlags.wait_for_ready
 * 
 *     flags &= InitialMetadataFlags.used_mask             # <<<<<<<<<<<<<<
 *     return flags
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_InitialMetadataFlags); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_used_mask); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_InPlaceAnd(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(34, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_flags = __pyx_t_5;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":42
 * 
 *     flags &= InitialMetadataFlags.used_mask
 *     return flags             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_flags;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":33
 * 
 * 
 * cdef int _get_send_initial_metadata_flags(object wait_for_ready) except *:             # <<<<<<<<<<<<<<
 *     cdef int flags = 0
 *     # Wait-for-ready can be None, which means using default value in Core.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._get_send_initial_metadata_flags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":47
 * cdef class _AioCall(GrpcCallWrapper):
 * 
 *     def __cinit__(self, AioChannel channel, object deadline,             # <<<<<<<<<<<<<<
 *                   bytes method, CallCredentials call_credentials, object wait_for_ready):
 *         init_grpc_aio()
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_channel = 0;
  PyObject *__pyx_v_deadline = 0;
  PyObject *__pyx_v_method = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_credentials = 0;
  PyObject *__pyx_v_wait_for_ready = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_channel,&__pyx_n_s_deadline,&__pyx_n_s_method,&__pyx_n_s_call_credentials,&__pyx_n_s_wait_for_ready,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_channel)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 47, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_deadline)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 47, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 5, 5, 1); __PYX_ERR(34, 47, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 47, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 5, 5, 2); __PYX_ERR(34, 47, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_call_credentials)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 47, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 5, 5, 3); __PYX_ERR(34, 47, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_wait_for_ready)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 47, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 5, 5, 4); __PYX_ERR(34, 47, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(34, 47, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
      values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
      values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
    }
    __pyx_v_channel = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)values[0]);
    __pyx_v_deadline = values[1];
    __pyx_v_method = ((PyObject*)values[2]);
    __pyx_v_call_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)values[3]);
    __pyx_v_wait_for_ready = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 5, 5, __pyx_nargs); __PYX_ERR(34, 47, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_channel), __pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel, 1, "channel", 0))) __PYX_ERR(34, 47, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyBytes_Type), 1, "method", 1))) __PYX_ERR(34, 48, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_credentials), __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, 1, "call_credentials", 0))) __PYX_ERR(34, 48, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_channel, __pyx_v_deadline, __pyx_v_method, __pyx_v_call_credentials, __pyx_v_wait_for_ready);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_channel, PyObject *__pyx_v_deadline, PyObject *__pyx_v_method, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_credentials, PyObject *__pyx_v_wait_for_ready) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":49
 *     def __cinit__(self, AioChannel channel, object deadline,
 *                   bytes method, CallCredentials call_credentials, object wait_for_ready):
 *         init_grpc_aio()             # <<<<<<<<<<<<<<
 *         self.call = NULL
 *         self._channel = channel
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":50
 *                   bytes method, CallCredentials call_credentials, object wait_for_ready):
 *         init_grpc_aio()
 *         self.call = NULL             # <<<<<<<<<<<<<<
 *         self._channel = channel
 *         self._loop = channel.loop
 */
  __pyx_v_self->__pyx_base.call = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":51
 *         init_grpc_aio()
 *         self.call = NULL
 *         self._channel = channel             # <<<<<<<<<<<<<<
 *         self._loop = channel.loop
 *         self._references = []
 */
  __Pyx_INCREF((PyObject *)__pyx_v_channel);
  __Pyx_GIVEREF((PyObject *)__pyx_v_channel);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_channel);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_channel);
  __pyx_v_self->_channel = __pyx_v_channel;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":52
 *         self.call = NULL
 *         self._channel = channel
 *         self._loop = channel.loop             # <<<<<<<<<<<<<<
 *         self._references = []
 *         self._status = None
 */
  __pyx_t_1 = __pyx_v_channel->loop;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_loop);
  __Pyx_DECREF(__pyx_v_self->_loop);
  __pyx_v_self->_loop = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":53
 *         self._channel = channel
 *         self._loop = channel.loop
 *         self._references = []             # <<<<<<<<<<<<<<
 *         self._status = None
 *         self._initial_metadata = None
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_references);
  __Pyx_DECREF(__pyx_v_self->_references);
  __pyx_v_self->_references = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":54
 *         self._loop = channel.loop
 *         self._references = []
 *         self._status = None             # <<<<<<<<<<<<<<
 *         self._initial_metadata = None
 *         self._waiters_status = []
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_status);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_status);
  __pyx_v_self->_status = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)Py_None);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":55
 *         self._references = []
 *         self._status = None
 *         self._initial_metadata = None             # <<<<<<<<<<<<<<
 *         self._waiters_status = []
 *         self._waiters_initial_metadata = []
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_initial_metadata);
  __Pyx_DECREF(__pyx_v_self->_initial_metadata);
  __pyx_v_self->_initial_metadata = ((PyObject*)Py_None);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":56
 *         self._status = None
 *         self._initial_metadata = None
 *         self._waiters_status = []             # <<<<<<<<<<<<<<
 *         self._waiters_initial_metadata = []
 *         self._done_callbacks = []
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_waiters_status);
  __Pyx_DECREF(__pyx_v_self->_waiters_status);
  __pyx_v_self->_waiters_status = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":57
 *         self._initial_metadata = None
 *         self._waiters_status = []
 *         self._waiters_initial_metadata = []             # <<<<<<<<<<<<<<
 *         self._done_callbacks = []
 *         self._is_locally_cancelled = False
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_waiters_initial_metadata);
  __Pyx_DECREF(__pyx_v_self->_waiters_initial_metadata);
  __pyx_v_self->_waiters_initial_metadata = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":58
 *         self._waiters_status = []
 *         self._waiters_initial_metadata = []
 *         self._done_callbacks = []             # <<<<<<<<<<<<<<
 *         self._is_locally_cancelled = False
 *         self._deadline = deadline
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_done_callbacks);
  __Pyx_DECREF(__pyx_v_self->_done_callbacks);
  __pyx_v_self->_done_callbacks = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":59
 *         self._waiters_initial_metadata = []
 *         self._done_callbacks = []
 *         self._is_locally_cancelled = False             # <<<<<<<<<<<<<<
 *         self._deadline = deadline
 *         self._send_initial_metadata_flags = _get_send_initial_metadata_flags(wait_for_ready)
 */
  __pyx_v_self->_is_locally_cancelled = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":60
 *         self._done_callbacks = []
 *         self._is_locally_cancelled = False
 *         self._deadline = deadline             # <<<<<<<<<<<<<<
 *         self._send_initial_metadata_flags = _get_send_initial_metadata_flags(wait_for_ready)
 *         self._create_grpc_call(deadline, method, call_credentials)
 */
  __Pyx_INCREF(__pyx_v_deadline);
  __Pyx_GIVEREF(__pyx_v_deadline);
  __Pyx_GOTREF(__pyx_v_self->_deadline);
  __Pyx_DECREF(__pyx_v_self->_deadline);
  __pyx_v_self->_deadline = __pyx_v_deadline;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":61
 *         self._is_locally_cancelled = False
 *         self._deadline = deadline
 *         self._send_initial_metadata_flags = _get_send_initial_metadata_flags(wait_for_ready)             # <<<<<<<<<<<<<<
 *         self._create_grpc_call(deadline, method, call_credentials)
 * 
 */
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__get_send_initial_metadata_flags(__pyx_v_wait_for_ready); if (unlikely(__pyx_t_2 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(34, 61, __pyx_L1_error)
  __pyx_v_self->_send_initial_metadata_flags = __pyx_t_2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":62
 *         self._deadline = deadline
 *         self._send_initial_metadata_flags = _get_send_initial_metadata_flags(wait_for_ready)
 *         self._create_grpc_call(deadline, method, call_credentials)             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self->__pyx_vtab)->_create_grpc_call(__pyx_v_self, __pyx_v_deadline, __pyx_v_method, __pyx_v_call_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 62, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":47
 * cdef class _AioCall(GrpcCallWrapper):
 * 
 *     def __cinit__(self, AioChannel channel, object deadline,             # <<<<<<<<<<<<<<
 *                   bytes method, CallCredentials call_credentials, object wait_for_ready):
 *         init_grpc_aio()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":64
 *         self._create_grpc_call(deadline, method, call_credentials)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self.call:
 *             grpc_call_unref(self.call)
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":65
 * 
 *     def __dealloc__(self):
 *         if self.call:             # <<<<<<<<<<<<<<
 *             grpc_call_unref(self.call)
 *         shutdown_grpc_aio()
 */
  __pyx_t_1 = (__pyx_v_self->__pyx_base.call != 0);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":66
 *     def __dealloc__(self):
 *         if self.call:
 *             grpc_call_unref(self.call)             # <<<<<<<<<<<<<<
 *         shutdown_grpc_aio()
 * 
 */
    grpc_call_unref(__pyx_v_self->__pyx_base.call);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":65
 * 
 *     def __dealloc__(self):
 *         if self.call:             # <<<<<<<<<<<<<<
 *             grpc_call_unref(self.call)
 *         shutdown_grpc_aio()
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":67
 *         if self.call:
 *             grpc_call_unref(self.call)
 *         shutdown_grpc_aio()             # <<<<<<<<<<<<<<
 * 
 *     def _repr(self) -> str:
 */
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":64
 *         self._create_grpc_call(deadline, method, call_credentials)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self.call:
 *             grpc_call_unref(self.call)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc._AioCall.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":69
 *         shutdown_grpc_aio()
 * 
 *     def _repr(self) -> str:             # <<<<<<<<<<<<<<
 *         """Assembles the RPC representation string."""
 *         # This needs to be loaded at run time once everything
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_5_repr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_4_repr, "Assembles the RPC representation string.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_5_repr = {"_repr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_5_repr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_4_repr};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_5_repr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_repr (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("_repr", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_repr", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_4_repr(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_4_repr(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_v__common = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  grpc_status_code __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_repr", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":73
 *         # This needs to be loaded at run time once everything
 *         # has been loaded.
 *         from grpc import _common             # <<<<<<<<<<<<<<
 * 
 *         if not self.done():
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_common);
  __Pyx_GIVEREF(__pyx_n_s_common);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_common)) __PYX_ERR(34, 73, __pyx_L1_error);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_grpc, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_common); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v__common = __pyx_t_1;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":75
 *         from grpc import _common
 * 
 *         if not self.done():             # <<<<<<<<<<<<<<
 *             return '<{} object>'.format(self.__class__.__name__)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_done); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(34, 75, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = (!__pyx_t_5);
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":76
 * 
 *         if not self.done():
 *             return '<{} object>'.format(self.__class__.__name__)             # <<<<<<<<<<<<<<
 * 
 *         if self._status.code() is StatusCode.ok:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_object_2, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_7};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    if (!(likely(PyString_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(34, 76, __pyx_L1_error)
    __pyx_r = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":75
 *         from grpc import _common
 * 
 *         if not self.done():             # <<<<<<<<<<<<<<
 *             return '<{} object>'.format(self.__class__.__name__)
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":78
 *             return '<{} object>'.format(self.__class__.__name__)
 * 
 *         if self._status.code() is StatusCode.ok:             # <<<<<<<<<<<<<<
 *             return _OK_CALL_REPRESENTATION.format(
 *                 self.__class__.__name__,
 */
  __pyx_t_8 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->code(__pyx_v_self->_status, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 78, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyInt_From_grpc_status_code(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ok); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = (__pyx_t_2 == __pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":79
 * 
 *         if self._status.code() is StatusCode.ok:
 *             return _OK_CALL_REPRESENTATION.format(             # <<<<<<<<<<<<<<
 *                 self.__class__.__name__,
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_OK_CALL_REPRESENTATION); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 79, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 79, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":80
 *         if self._status.code() is StatusCode.ok:
 *             return _OK_CALL_REPRESENTATION.format(
 *                 self.__class__.__name__,             # <<<<<<<<<<<<<<
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],
 *                 self._status.details())
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":81
 *             return _OK_CALL_REPRESENTATION.format(
 *                 self.__class__.__name__,
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],             # <<<<<<<<<<<<<<
 *                 self._status.details())
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v__common, __pyx_n_s_CYGRPC_STATUS_CODE_TO_STATUS_COD); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->code(__pyx_v_self->_status, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 81, __pyx_L1_error)
    __pyx_t_9 = __Pyx_PyInt_From_grpc_status_code(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(34, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":82
 *                 self.__class__.__name__,
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],
 *                 self._status.details())             # <<<<<<<<<<<<<<
 *         else:
 *             return _NON_OK_CALL_REPRESENTATION.format(
 */
    __pyx_t_9 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->details(__pyx_v_self->_status, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(34, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_t_3, __pyx_t_10, __pyx_t_9};
      __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 79, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":79
 * 
 *         if self._status.code() is StatusCode.ok:
 *             return _OK_CALL_REPRESENTATION.format(             # <<<<<<<<<<<<<<
 *                 self.__class__.__name__,
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],
 */
    if (!(likely(PyString_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_7))) __PYX_ERR(34, 79, __pyx_L1_error)
    __pyx_r = ((PyObject*)__pyx_t_7);
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":78
 *             return '<{} object>'.format(self.__class__.__name__)
 * 
 *         if self._status.code() is StatusCode.ok:             # <<<<<<<<<<<<<<
 *             return _OK_CALL_REPRESENTATION.format(
 *                 self.__class__.__name__,
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":84
 *                 self._status.details())
 *         else:
 *             return _NON_OK_CALL_REPRESENTATION.format(             # <<<<<<<<<<<<<<
 *                 self.__class__.__name__,
 *                 self._status.details(),
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NON_OK_CALL_REPRESENTATION); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_format); if (unlikely(!__pyx_t_9)) __PYX_ERR(34, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":85
 *         else:
 *             return _NON_OK_CALL_REPRESENTATION.format(
 *                 self.__class__.__name__,             # <<<<<<<<<<<<<<
 *                 self._status.details(),
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 85, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_name_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 85, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":86
 *             return _NON_OK_CALL_REPRESENTATION.format(
 *                 self.__class__.__name__,
 *                 self._status.details(),             # <<<<<<<<<<<<<<
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],
 *                 self._status.debug_error_string())
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->details(__pyx_v_self->_status, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":87
 *                 self.__class__.__name__,
 *                 self._status.details(),
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],             # <<<<<<<<<<<<<<
 *                 self._status.debug_error_string())
 * 
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v__common, __pyx_n_s_CYGRPC_STATUS_CODE_TO_STATUS_COD); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->code(__pyx_v_self->_status, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 87, __pyx_L1_error)
    __pyx_t_2 = __Pyx_PyInt_From_grpc_status_code(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(34, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":88
 *                 self._status.details(),
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],
 *                 self._status.debug_error_string())             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self) -> str:
 */
    __pyx_t_2 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->debug_error_string(__pyx_v_self->_status, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 88, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_t_10, __pyx_t_1, __pyx_t_11, __pyx_t_2};
      __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_4, 4+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 84, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":84
 *                 self._status.details())
 *         else:
 *             return _NON_OK_CALL_REPRESENTATION.format(             # <<<<<<<<<<<<<<
 *                 self.__class__.__name__,
 *                 self._status.details(),
 */
    if (!(likely(PyString_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_7))) __PYX_ERR(34, 84, __pyx_L1_error)
    __pyx_r = ((PyObject*)__pyx_t_7);
    __pyx_t_7 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":69
 *         shutdown_grpc_aio()
 * 
 *     def _repr(self) -> str:             # <<<<<<<<<<<<<<
 *         """Assembles the RPC representation string."""
 *         # This needs to be loaded at run time once everything
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall._repr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__common);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":90
 *                 self._status.debug_error_string())
 * 
 *     def __repr__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_6__repr__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_6__repr__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":91
 * 
 *     def __repr__(self) -> str:
 *         return self._repr()             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self) -> str:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_repr); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 91, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":90
 *                 self._status.debug_error_string())
 * 
 *     def __repr__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":93
 *         return self._repr()
 * 
 *     def __str__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_9__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_9__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_8__str__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_8__str__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":94
 * 
 *     def __str__(self) -> str:
 *         return self._repr()             # <<<<<<<<<<<<<<
 * 
 *     cdef void _create_grpc_call(self,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_repr); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":93
 *         return self._repr()
 * 
 *     def __str__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":96
 *         return self._repr()
 * 
 *     cdef void _create_grpc_call(self,             # <<<<<<<<<<<<<<
 *                                 object deadline,
 *                                 bytes method,
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__create_grpc_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_deadline, PyObject *__pyx_v_method, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials) {
  grpc_slice __pyx_v_method_slice;
  gpr_timespec __pyx_v_c_deadline;
  grpc_call_error __pyx_v_set_credentials_error;
  __Pyx_RefNannyDeclarations
  gpr_timespec __pyx_t_1;
  char const *__pyx_t_2;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_4grpc_7_cython_6cygrpc_uint32_t __pyx_t_5;
  grpc_completion_queue *__pyx_t_6;
  int __pyx_t_7;
  grpc_call_credentials *__pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  unsigned int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_create_grpc_call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":109
 *         """
 *         cdef grpc_slice method_slice
 *         cdef gpr_timespec c_deadline = _timespec_from_time(deadline)             # <<<<<<<<<<<<<<
 *         cdef grpc_call_error set_credentials_error
 * 
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(__pyx_v_deadline); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 109, __pyx_L1_error)
  __pyx_v_c_deadline = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":113
 * 
 *         method_slice = grpc_slice_from_copied_buffer(
 *             <const char *> method,             # <<<<<<<<<<<<<<
 *             <size_t> len(method)
 *         )
 */
  if (unlikely(__pyx_v_method == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(34, 113, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_method); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(34, 113, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":114
 *         method_slice = grpc_slice_from_copied_buffer(
 *             <const char *> method,
 *             <size_t> len(method)             # <<<<<<<<<<<<<<
 *         )
 *         self.call = grpc_channel_create_call(
 */
  if (unlikely(__pyx_v_method == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(34, 114, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyBytes_GET_SIZE(__pyx_v_method); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(34, 114, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":112
 *         cdef grpc_call_error set_credentials_error
 * 
 *         method_slice = grpc_slice_from_copied_buffer(             # <<<<<<<<<<<<<<
 *             <const char *> method,
 *             <size_t> len(method)
 */
  __pyx_v_method_slice = grpc_slice_from_copied_buffer(((char const *)__pyx_t_2), ((size_t)__pyx_t_3));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":119
 *             self._channel.channel,
 *             NULL,
 *             _EMPTY_MASK,             # <<<<<<<<<<<<<<
 *             global_completion_queue(),
 *             method_slice,
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_EMPTY_MASK); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_As_unsigned_int(__pyx_t_4); if (unlikely((__pyx_t_5 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(34, 119, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":120
 *             NULL,
 *             _EMPTY_MASK,
 *             global_completion_queue(),             # <<<<<<<<<<<<<<
 *             method_slice,
 *             NULL,
 */
  __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(); if (unlikely(__pyx_t_6 == ((grpc_completion_queue *)NULL) && PyErr_Occurred())) __PYX_ERR(34, 120, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":116
 *             <size_t> len(method)
 *         )
 *         self.call = grpc_channel_create_call(             # <<<<<<<<<<<<<<
 *             self._channel.channel,
 *             NULL,
 */
  __pyx_v_self->__pyx_base.call = grpc_channel_create_call(__pyx_v_self->_channel->channel, NULL, __pyx_t_5, __pyx_t_6, __pyx_v_method_slice, NULL, __pyx_v_c_deadline, NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":127
 *         )
 * 
 *         if credentials is not None:             # <<<<<<<<<<<<<<
 *             set_credentials_error = grpc_call_set_credentials(self.call, credentials.c())
 *             if set_credentials_error != GRPC_CALL_OK:
 */
  __pyx_t_7 = (((PyObject *)__pyx_v_credentials) != Py_None);
  if (__pyx_t_7) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":128
 * 
 *         if credentials is not None:
 *             set_credentials_error = grpc_call_set_credentials(self.call, credentials.c())             # <<<<<<<<<<<<<<
 *             if set_credentials_error != GRPC_CALL_OK:
 *                 raise InternalError("Credentials couldn't have been set: {0}".format(set_credentials_error))
 */
    __pyx_t_8 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_credentials->__pyx_vtab)->c(__pyx_v_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 128, __pyx_L1_error)
    __pyx_v_set_credentials_error = grpc_call_set_credentials(__pyx_v_self->__pyx_base.call, __pyx_t_8);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":129
 *         if credentials is not None:
 *             set_credentials_error = grpc_call_set_credentials(self.call, credentials.c())
 *             if set_credentials_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *                 raise InternalError("Credentials couldn't have been set: {0}".format(set_credentials_error))
 * 
 */
    __pyx_t_7 = (__pyx_v_set_credentials_error != GRPC_CALL_OK);
    if (unlikely(__pyx_t_7)) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":130
 *             set_credentials_error = grpc_call_set_credentials(self.call, credentials.c())
 *             if set_credentials_error != GRPC_CALL_OK:
 *                 raise InternalError("Credentials couldn't have been set: {0}".format(set_credentials_error))             # <<<<<<<<<<<<<<
 * 
 *         grpc_slice_unref(method_slice)
 */
      __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_InternalError); if (unlikely(!__pyx_t_9)) __PYX_ERR(34, 130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Credentials_couldn_t_have_been_s, __pyx_n_s_format); if (unlikely(!__pyx_t_11)) __PYX_ERR(34, 130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_12 = __Pyx_PyInt_From_grpc_call_error(__pyx_v_set_credentials_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(34, 130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_13 = NULL;
      __pyx_t_14 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_11))) {
        __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_11);
        if (likely(__pyx_t_13)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
          __Pyx_INCREF(__pyx_t_13);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_11, function);
          __pyx_t_14 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_12};
        __pyx_t_10 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_14, 1+__pyx_t_14);
        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 130, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      }
      __pyx_t_11 = NULL;
      __pyx_t_14 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
          __pyx_t_14 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_10};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_14, 1+__pyx_t_14);
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 130, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __PYX_ERR(34, 130, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":129
 *         if credentials is not None:
 *             set_credentials_error = grpc_call_set_credentials(self.call, credentials.c())
 *             if set_credentials_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *                 raise InternalError("Credentials couldn't have been set: {0}".format(set_credentials_error))
 * 
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":127
 *         )
 * 
 *         if credentials is not None:             # <<<<<<<<<<<<<<
 *             set_credentials_error = grpc_call_set_credentials(self.call, credentials.c())
 *             if set_credentials_error != GRPC_CALL_OK:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":132
 *                 raise InternalError("Credentials couldn't have been set: {0}".format(set_credentials_error))
 * 
 *         grpc_slice_unref(method_slice)             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set_status(self, AioRpcStatus status) except *:
 */
  grpc_slice_unref(__pyx_v_method_slice);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":96
 *         return self._repr()
 * 
 *     cdef void _create_grpc_call(self,             # <<<<<<<<<<<<<<
 *                                 object deadline,
 *                                 bytes method,
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall._create_grpc_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":134
 *         grpc_slice_unref(method_slice)
 * 
 *     cdef void _set_status(self, AioRpcStatus status) except *:             # <<<<<<<<<<<<<<
 *         cdef list waiters
 * 
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__set_status(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_status) {
  PyObject *__pyx_v_waiter = NULL;
  PyObject *__pyx_v_callback = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  unsigned int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_status", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":138
 * 
 *         # No more waiters should be expected since status has been set.
 *         self._status = status             # <<<<<<<<<<<<<<
 * 
 *         if self._initial_metadata is None:
 */
  __Pyx_INCREF((PyObject *)__pyx_v_status);
  __Pyx_GIVEREF((PyObject *)__pyx_v_status);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_status);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_status);
  __pyx_v_self->_status = __pyx_v_status;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":140
 *         self._status = status
 * 
 *         if self._initial_metadata is None:             # <<<<<<<<<<<<<<
 *             self._set_initial_metadata(_IMMUTABLE_EMPTY_METADATA)
 * 
 */
  __pyx_t_1 = (__pyx_v_self->_initial_metadata == ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":141
 * 
 *         if self._initial_metadata is None:
 *             self._set_initial_metadata(_IMMUTABLE_EMPTY_METADATA)             # <<<<<<<<<<<<<<
 * 
 *         for waiter in self._waiters_status:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(34, 141, __pyx_L1_error)
    ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self->__pyx_vtab)->_set_initial_metadata(__pyx_v_self, ((PyObject*)__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 141, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":140
 *         self._status = status
 * 
 *         if self._initial_metadata is None:             # <<<<<<<<<<<<<<
 *             self._set_initial_metadata(_IMMUTABLE_EMPTY_METADATA)
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":143
 *             self._set_initial_metadata(_IMMUTABLE_EMPTY_METADATA)
 * 
 *         for waiter in self._waiters_status:             # <<<<<<<<<<<<<<
 *             if not waiter.done():
 *                 waiter.set_result(None)
 */
  if (unlikely(__pyx_v_self->_waiters_status == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(34, 143, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_v_self->_waiters_status; __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
      #if !CYTHON_ASSUME_SAFE_MACROS
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(34, 143, __pyx_L1_error)
      #endif
      if (__pyx_t_3 >= __pyx_temp) break;
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(34, 143, __pyx_L1_error)
    #else
    __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_waiter, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":144
 * 
 *         for waiter in self._waiters_status:
 *             if not waiter.done():             # <<<<<<<<<<<<<<
 *                 waiter.set_result(None)
 *         self._waiters_status = []
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_waiter, __pyx_n_s_done); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 144, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(34, 144, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = (!__pyx_t_1);
    if (__pyx_t_8) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":145
 *         for waiter in self._waiters_status:
 *             if not waiter.done():
 *                 waiter.set_result(None)             # <<<<<<<<<<<<<<
 *         self._waiters_status = []
 * 
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_waiter, __pyx_n_s_set_result); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      __pyx_t_7 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_7 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, Py_None};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 145, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":144
 * 
 *         for waiter in self._waiters_status:
 *             if not waiter.done():             # <<<<<<<<<<<<<<
 *                 waiter.set_result(None)
 *         self._waiters_status = []
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":143
 *             self._set_initial_metadata(_IMMUTABLE_EMPTY_METADATA)
 * 
 *         for waiter in self._waiters_status:             # <<<<<<<<<<<<<<
 *             if not waiter.done():
 *                 waiter.set_result(None)
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":146
 *             if not waiter.done():
 *                 waiter.set_result(None)
 *         self._waiters_status = []             # <<<<<<<<<<<<<<
 * 
 *         for callback in self._done_callbacks:
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_waiters_status);
  __Pyx_DECREF(__pyx_v_self->_waiters_status);
  __pyx_v_self->_waiters_status = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":148
 *         self._waiters_status = []
 * 
 *         for callback in self._done_callbacks:             # <<<<<<<<<<<<<<
 *             callback()
 * 
 */
  if (unlikely(__pyx_v_self->_done_callbacks == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(34, 148, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_v_self->_done_callbacks; __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
      #if !CYTHON_ASSUME_SAFE_MACROS
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(34, 148, __pyx_L1_error)
      #endif
      if (__pyx_t_3 >= __pyx_temp) break;
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(34, 148, __pyx_L1_error)
    #else
    __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_callback, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":149
 * 
 *         for callback in self._done_callbacks:
 *             callback()             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set_initial_metadata(self, tuple initial_metadata) except *:
 */
    __Pyx_INCREF(__pyx_v_callback);
    __pyx_t_5 = __pyx_v_callback; __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":148
 *         self._waiters_status = []
 * 
 *         for callback in self._done_callbacks:             # <<<<<<<<<<<<<<
 *             callback()
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":134
 *         grpc_slice_unref(method_slice)
 * 
 *     cdef void _set_status(self, AioRpcStatus status) except *:             # <<<<<<<<<<<<<<
 *         cdef list waiters
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall._set_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_waiter);
  __Pyx_XDECREF(__pyx_v_callback);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":151
 *             callback()
 * 
 *     cdef void _set_initial_metadata(self, tuple initial_metadata) except *:             # <<<<<<<<<<<<<<
 *         if self._initial_metadata is not None:
 *             # Some gRPC calls might end before the initial metadata arrived in
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__set_initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_initial_metadata) {
  PyObject *__pyx_v_waiter = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  unsigned int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_initial_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":152
 * 
 *     cdef void _set_initial_metadata(self, tuple initial_metadata) except *:
 *         if self._initial_metadata is not None:             # <<<<<<<<<<<<<<
 *             # Some gRPC calls might end before the initial metadata arrived in
 *             # the Call object. That causes this method to be invoked twice: 1.
 */
  __pyx_t_1 = (__pyx_v_self->_initial_metadata != ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":157
 *             # filled with an empty metadata; 2. updated with the actual user
 *             # provided metadata.
 *             return             # <<<<<<<<<<<<<<
 * 
 *         cdef list waiters
 */
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":152
 * 
 *     cdef void _set_initial_metadata(self, tuple initial_metadata) except *:
 *         if self._initial_metadata is not None:             # <<<<<<<<<<<<<<
 *             # Some gRPC calls might end before the initial metadata arrived in
 *             # the Call object. That causes this method to be invoked twice: 1.
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":163
 *         # No more waiters should be expected since initial metadata has been
 *         # set.
 *         self._initial_metadata = initial_metadata             # <<<<<<<<<<<<<<
 * 
 *         for waiter in self._waiters_initial_metadata:
 */
  __Pyx_INCREF(__pyx_v_initial_metadata);
  __Pyx_GIVEREF(__pyx_v_initial_metadata);
  __Pyx_GOTREF(__pyx_v_self->_initial_metadata);
  __Pyx_DECREF(__pyx_v_self->_initial_metadata);
  __pyx_v_self->_initial_metadata = __pyx_v_initial_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":165
 *         self._initial_metadata = initial_metadata
 * 
 *         for waiter in self._waiters_initial_metadata:             # <<<<<<<<<<<<<<
 *             if not waiter.done():
 *                 waiter.set_result(None)
 */
  if (unlikely(__pyx_v_self->_waiters_initial_metadata == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(34, 165, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_v_self->_waiters_initial_metadata; __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
      #if !CYTHON_ASSUME_SAFE_MACROS
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(34, 165, __pyx_L1_error)
      #endif
      if (__pyx_t_3 >= __pyx_temp) break;
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(34, 165, __pyx_L1_error)
    #else
    __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_waiter, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":166
 * 
 *         for waiter in self._waiters_initial_metadata:
 *             if not waiter.done():             # <<<<<<<<<<<<<<
 *                 waiter.set_result(None)
 *         self._waiters_initial_metadata = []
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_waiter, __pyx_n_s_done); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 166, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(34, 166, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = (!__pyx_t_1);
    if (__pyx_t_8) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":167
 *         for waiter in self._waiters_initial_metadata:
 *             if not waiter.done():
 *                 waiter.set_result(None)             # <<<<<<<<<<<<<<
 *         self._waiters_initial_metadata = []
 * 
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_waiter, __pyx_n_s_set_result); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 167, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      __pyx_t_7 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_7 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, Py_None};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 167, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":166
 * 
 *         for waiter in self._waiters_initial_metadata:
 *             if not waiter.done():             # <<<<<<<<<<<<<<
 *                 waiter.set_result(None)
 *         self._waiters_initial_metadata = []
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":165
 *         self._initial_metadata = initial_metadata
 * 
 *         for waiter in self._waiters_initial_metadata:             # <<<<<<<<<<<<<<
 *             if not waiter.done():
 *                 waiter.set_result(None)
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":168
 *             if not waiter.done():
 *                 waiter.set_result(None)
 *         self._waiters_initial_metadata = []             # <<<<<<<<<<<<<<
 * 
 *     def add_done_callback(self, callback):
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_waiters_initial_metadata);
  __Pyx_DECREF(__pyx_v_self->_waiters_initial_metadata);
  __pyx_v_self->_waiters_initial_metadata = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":151
 *             callback()
 * 
 *     cdef void _set_initial_metadata(self, tuple initial_metadata) except *:             # <<<<<<<<<<<<<<
 *         if self._initial_metadata is not None:
 *             # Some gRPC calls might end before the initial metadata arrived in
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall._set_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_waiter);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":170
 *         self._waiters_initial_metadata = []
 * 
 *     def add_done_callback(self, callback):             # <<<<<<<<<<<<<<
 *         if self.done():
 *             callback()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_11add_done_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_11add_done_callback = {"add_done_callback", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_11add_done_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_11add_done_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_callback = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_done_callback (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_callback,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_callback)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 170, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "add_done_callback") < 0)) __PYX_ERR(34, 170, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_callback = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_done_callback", 1, 1, 1, __pyx_nargs); __PYX_ERR(34, 170, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.add_done_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_10add_done_callback(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_callback);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_10add_done_callback(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_callback) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_done_callback", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":171
 * 
 *     def add_done_callback(self, callback):
 *         if self.done():             # <<<<<<<<<<<<<<
 *             callback()
 *         else:
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_done); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 171, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(34, 171, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":172
 *     def add_done_callback(self, callback):
 *         if self.done():
 *             callback()             # <<<<<<<<<<<<<<
 *         else:
 *             self._done_callbacks.append(callback)
 */
    __Pyx_INCREF(__pyx_v_callback);
    __pyx_t_2 = __pyx_v_callback; __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 172, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":171
 * 
 *     def add_done_callback(self, callback):
 *         if self.done():             # <<<<<<<<<<<<<<
 *             callback()
 *         else:
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":174
 *             callback()
 *         else:
 *             self._done_callbacks.append(callback)             # <<<<<<<<<<<<<<
 * 
 *     def time_remaining(self):
 */
  /*else*/ {
    if (unlikely(__pyx_v_self->_done_callbacks == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
      __PYX_ERR(34, 174, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_self->_done_callbacks, __pyx_v_callback); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(34, 174, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":170
 *         self._waiters_initial_metadata = []
 * 
 *     def add_done_callback(self, callback):             # <<<<<<<<<<<<<<
 *         if self.done():
 *             callback()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.add_done_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":176
 *             self._done_callbacks.append(callback)
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         if self._deadline is None:
 *             return None
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_13time_remaining(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_13time_remaining = {"time_remaining", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_13time_remaining, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_13time_remaining(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("time_remaining (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("time_remaining", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "time_remaining", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_12time_remaining(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_12time_remaining(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  long __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("time_remaining", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":177
 * 
 *     def time_remaining(self):
 *         if self._deadline is None:             # <<<<<<<<<<<<<<
 *             return None
 *         else:
 */
  __pyx_t_1 = (__pyx_v_self->_deadline == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":178
 *     def time_remaining(self):
 *         if self._deadline is None:
 *             return None             # <<<<<<<<<<<<<<
 *         else:
 *             return max(0, self._deadline - time.time())
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":177
 * 
 *     def time_remaining(self):
 *         if self._deadline is None:             # <<<<<<<<<<<<<<
 *             return None
 *         else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":180
 *             return None
 *         else:
 *             return max(0, self._deadline - time.time())             # <<<<<<<<<<<<<<
 * 
 *     def cancel(self, str details):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 180, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_t_4 = PyNumber_Subtract(__pyx_v_self->_deadline, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_6 = 0;
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_4, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 180, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(34, 180, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_1) {
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_2 = __pyx_t_4;
    } else {
      __pyx_t_7 = __Pyx_PyInt_From_long(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 180, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_2 = __pyx_t_7;
      __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":176
 *             self._done_callbacks.append(callback)
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         if self._deadline is None:
 *             return None
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.time_remaining", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":182
 *             return max(0, self._deadline - time.time())
 * 
 *     def cancel(self, str details):             # <<<<<<<<<<<<<<
 *         """Cancels the RPC in Core with given RPC status.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_15cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_14cancel, "Cancels the RPC in Core with given RPC status.\n\n        Above abstractions must invoke this method to set Core objects into\n        proper state.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_15cancel = {"cancel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_15cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_14cancel};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_15cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_details,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 182, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "cancel") < 0)) __PYX_ERR(34, 182, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_details = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cancel", 1, 1, 1, __pyx_nargs); __PYX_ERR(34, 182, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_details), (&PyString_Type), 1, "details", 1))) __PYX_ERR(34, 182, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_14cancel(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_details);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_14cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_details) {
  PyObject *__pyx_v_details_bytes = 0;
  char *__pyx_v_c_details;
  grpc_call_error __pyx_v_error;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  char *__pyx_t_4;
  grpc_status_code __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cancel", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":188
 *         proper state.
 *         """
 *         self._is_locally_cancelled = True             # <<<<<<<<<<<<<<
 * 
 *         cdef object details_bytes
 */
  __pyx_v_self->_is_locally_cancelled = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":195
 * 
 *         self._set_status(AioRpcStatus(
 *             StatusCode.cancelled,             # <<<<<<<<<<<<<<
 *             details,
 *             None,
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_cancelled); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":194
 *         cdef grpc_call_error error
 * 
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             StatusCode.cancelled,
 *             details,
 */
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(34, 194, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_details);
  __Pyx_GIVEREF(__pyx_v_details);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_details)) __PYX_ERR(34, 194, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(34, 194, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None)) __PYX_ERR(34, 194, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self->__pyx_vtab)->_set_status(__pyx_v_self, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 194, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":201
 *         ))
 * 
 *         details_bytes = str_to_bytes(details)             # <<<<<<<<<<<<<<
 *         self._references.append(details_bytes)
 *         c_details = <char *>details_bytes
 */
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_details); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_details_bytes = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":202
 * 
 *         details_bytes = str_to_bytes(details)
 *         self._references.append(details_bytes)             # <<<<<<<<<<<<<<
 *         c_details = <char *>details_bytes
 *         # By implementation, grpc_call_cancel_with_status always return OK
 */
  if (unlikely(__pyx_v_self->_references == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(34, 202, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_self->_references, __pyx_v_details_bytes); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(34, 202, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":203
 *         details_bytes = str_to_bytes(details)
 *         self._references.append(details_bytes)
 *         c_details = <char *>details_bytes             # <<<<<<<<<<<<<<
 *         # By implementation, grpc_call_cancel_with_status always return OK
 *         error = grpc_call_cancel_with_status(
 */
  __pyx_t_4 = __Pyx_PyObject_AsWritableString(__pyx_v_details_bytes); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(34, 203, __pyx_L1_error)
  __pyx_v_c_details = ((char *)__pyx_t_4);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":207
 *         error = grpc_call_cancel_with_status(
 *             self.call,
 *             StatusCode.cancelled,             # <<<<<<<<<<<<<<
 *             c_details,
 *             NULL,
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_cancelled); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 207, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":205
 *         c_details = <char *>details_bytes
 *         # By implementation, grpc_call_cancel_with_status always return OK
 *         error = grpc_call_cancel_with_status(             # <<<<<<<<<<<<<<
 *             self.call,
 *             StatusCode.cancelled,
 */
  __pyx_v_error = grpc_call_cancel_with_status(__pyx_v_self->__pyx_base.call, __pyx_t_5, __pyx_v_c_details, NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":211
 *             NULL,
 *         )
 *         assert error == GRPC_CALL_OK             # <<<<<<<<<<<<<<
 * 
 *     def done(self):
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_6 = (__pyx_v_error == GRPC_CALL_OK);
    if (unlikely(!__pyx_t_6)) {
      __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
      __PYX_ERR(34, 211, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(34, 211, __pyx_L1_error)
  #endif

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":182
 *             return max(0, self._deadline - time.time())
 * 
 *     def cancel(self, str details):             # <<<<<<<<<<<<<<
 *         """Cancels the RPC in Core with given RPC status.
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_details_bytes);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":213
 *         assert error == GRPC_CALL_OK
 * 
 *     def done(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC call has finished.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_17done(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_16done, "Returns if the RPC call has finished.\n\n        Checks if the status has been provided, either\n        because the RPC finished or because was cancelled..\n\n        Returns:\n            True if the RPC can be considered finished.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_17done = {"done", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_17done, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_16done};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_17done(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("done (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("done", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "done", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_16done(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_16done(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("done", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":222
 *             True if the RPC can be considered finished.
 *         """
 *         return self._status is not None             # <<<<<<<<<<<<<<
 * 
 *     def cancelled(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = (((PyObject *)__pyx_v_self->_status) != Py_None);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":213
 *         assert error == GRPC_CALL_OK
 * 
 *     def done(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC call has finished.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.done", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":224
 *         return self._status is not None
 * 
 *     def cancelled(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC was cancelled.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_19cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_18cancelled, "Returns if the RPC was cancelled.\n\n        Returns:\n            True if the RPC was cancelled.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_19cancelled = {"cancelled", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_19cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_18cancelled};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_19cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancelled (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("cancelled", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "cancelled", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_18cancelled(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_18cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  grpc_status_code __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cancelled", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":230
 *             True if the RPC was cancelled.
 *         """
 *         if not self.done():             # <<<<<<<<<<<<<<
 *             return False
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_done); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 230, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(34, 230, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = (!__pyx_t_5);
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":231
 *         """
 *         if not self.done():
 *             return False             # <<<<<<<<<<<<<<
 * 
 *         return self._status.code() == StatusCode.cancelled
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_False);
    __pyx_r = Py_False;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":230
 *             True if the RPC was cancelled.
 *         """
 *         if not self.done():             # <<<<<<<<<<<<<<
 *             return False
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":233
 *             return False
 * 
 *         return self._status.code() == StatusCode.cancelled             # <<<<<<<<<<<<<<
 * 
 *     async def status(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->code(__pyx_v_self->_status, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 233, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyInt_From_grpc_status_code(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_cancelled); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 233, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":224
 *         return self._status is not None
 * 
 *     def cancelled(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC was cancelled.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.cancelled", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_22generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":235
 *         return self._status.code() == StatusCode.cancelled
 * 
 *     async def status(self):             # <<<<<<<<<<<<<<
 *         """Returns the status of the RPC call.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_21status(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_20status, "Returns the status of the RPC call.\n\n        It returns the finshed status of the RPC. If the RPC\n        has not finished yet this function will wait until the RPC\n        gets finished.\n\n        Returns:\n            Finished status of the RPC as an AioRpcStatus object.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_21status = {"status", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_21status, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_20status};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_21status(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("status (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("status", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "status", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_20status(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_20status(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("status", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 235, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_22generator8, __pyx_codeobj__59, (PyObject *) __pyx_cur_scope, __pyx_n_s_status, __pyx_n_s_AioCall_status, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 235, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.status", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_22generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("status", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 235, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":245
 *             Finished status of the RPC as an AioRpcStatus object.
 *         """
 *         if self._status is not None:             # <<<<<<<<<<<<<<
 *             return self._status
 * 
 */
  __pyx_t_1 = (((PyObject *)__pyx_cur_scope->__pyx_v_self->_status) != Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":246
 *         """
 *         if self._status is not None:
 *             return self._status             # <<<<<<<<<<<<<<
 * 
 *         future = self._loop.create_future()
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL; __Pyx_ReturnWithStopIteration(((PyObject *)__pyx_cur_scope->__pyx_v_self->_status));
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":245
 *             Finished status of the RPC as an AioRpcStatus object.
 *         """
 *         if self._status is not None:             # <<<<<<<<<<<<<<
 *             return self._status
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":248
 *             return self._status
 * 
 *         future = self._loop.create_future()             # <<<<<<<<<<<<<<
 *         self._waiters_status.append(future)
 *         await future
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->_loop, __pyx_n_s_create_future); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_future = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":249
 * 
 *         future = self._loop.create_future()
 *         self._waiters_status.append(future)             # <<<<<<<<<<<<<<
 *         await future
 * 
 */
  if (unlikely(__pyx_cur_scope->__pyx_v_self->_waiters_status == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(34, 249, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_self->_waiters_status, __pyx_cur_scope->__pyx_v_future); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(34, 249, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":250
 *         future = self._loop.create_future()
 *         self._waiters_status.append(future)
 *         await future             # <<<<<<<<<<<<<<
 * 
 *         return self._status
 */
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_future);
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 250, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(34, 250, __pyx_L1_error)
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":252
 *         await future
 * 
 *         return self._status             # <<<<<<<<<<<<<<
 * 
 *     def is_ok(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_r = NULL; __Pyx_ReturnWithStopIteration(((PyObject *)__pyx_cur_scope->__pyx_v_self->_status));
  goto __pyx_L0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":235
 *         return self._status.code() == StatusCode.cancelled
 * 
 *     async def status(self):             # <<<<<<<<<<<<<<
 *         """Returns the status of the RPC call.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("status", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":254
 *         return self._status
 * 
 *     def is_ok(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC is ended with ok."""
 *         return self.done() and self._status.code() == StatusCode.ok
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_24is_ok(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_23is_ok, "Returns if the RPC is ended with ok.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_24is_ok = {"is_ok", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_24is_ok, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_23is_ok};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_24is_ok(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_ok (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("is_ok", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "is_ok", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_23is_ok(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_23is_ok(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_t_6;
  grpc_status_code __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_ok", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":256
 *     def is_ok(self):
 *         """Returns if the RPC is ended with ok."""
 *         return self.done() and self._status.code() == StatusCode.ok             # <<<<<<<<<<<<<<
 * 
 *     async def initial_metadata(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_done); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 256, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(34, 256, __pyx_L1_error)
  if (__pyx_t_6) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_7 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->code(__pyx_v_self->_status, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 256, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyInt_From_grpc_status_code(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ok); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 256, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_1 = __pyx_t_3;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":254
 *         return self._status
 * 
 *     def is_ok(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC is ended with ok."""
 *         return self.done() and self._status.code() == StatusCode.ok
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.is_ok", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_27generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":258
 *         return self.done() and self._status.code() == StatusCode.ok
 * 
 *     async def initial_metadata(self):             # <<<<<<<<<<<<<<
 *         """Returns the initial metadata of the RPC call.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_26initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_25initial_metadata, "Returns the initial metadata of the RPC call.\n\n        If the initial metadata has not been received yet this function will\n        wait until the RPC gets finished.\n\n        Returns:\n            The tuple object with the initial metadata.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_26initial_metadata = {"initial_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_26initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_25initial_metadata};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_26initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initial_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("initial_metadata", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "initial_metadata", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_25initial_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_25initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("initial_metadata", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 258, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_27generator9, __pyx_codeobj__60, (PyObject *) __pyx_cur_scope, __pyx_n_s_initial_metadata, __pyx_n_s_AioCall_initial_metadata, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 258, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_27generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initial_metadata", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 258, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":267
 *             The tuple object with the initial metadata.
 *         """
 *         if self._initial_metadata is not None:             # <<<<<<<<<<<<<<
 *             return self._initial_metadata
 * 
 */
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->_initial_metadata != ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":268
 *         """
 *         if self._initial_metadata is not None:
 *             return self._initial_metadata             # <<<<<<<<<<<<<<
 * 
 *         future = self._loop.create_future()
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_cur_scope->__pyx_v_self->_initial_metadata);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":267
 *             The tuple object with the initial metadata.
 *         """
 *         if self._initial_metadata is not None:             # <<<<<<<<<<<<<<
 *             return self._initial_metadata
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":270
 *             return self._initial_metadata
 * 
 *         future = self._loop.create_future()             # <<<<<<<<<<<<<<
 *         self._waiters_initial_metadata.append(future)
 *         await future
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->_loop, __pyx_n_s_create_future); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 270, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_future = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":271
 * 
 *         future = self._loop.create_future()
 *         self._waiters_initial_metadata.append(future)             # <<<<<<<<<<<<<<
 *         await future
 * 
 */
  if (unlikely(__pyx_cur_scope->__pyx_v_self->_waiters_initial_metadata == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(34, 271, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_self->_waiters_initial_metadata, __pyx_cur_scope->__pyx_v_future); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(34, 271, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":272
 *         future = self._loop.create_future()
 *         self._waiters_initial_metadata.append(future)
 *         await future             # <<<<<<<<<<<<<<
 * 
 *         return self._initial_metadata
 */
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_future);
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 272, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(34, 272, __pyx_L1_error)
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":274
 *         await future
 * 
 *         return self._initial_metadata             # <<<<<<<<<<<<<<
 * 
 *     def is_locally_cancelled(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_cur_scope->__pyx_v_self->_initial_metadata);
  goto __pyx_L0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":258
 *         return self.done() and self._status.code() == StatusCode.ok
 * 
 *     async def initial_metadata(self):             # <<<<<<<<<<<<<<
 *         """Returns the initial metadata of the RPC call.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":276
 *         return self._initial_metadata
 * 
 *     def is_locally_cancelled(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC was cancelled locally.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_29is_locally_cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_28is_locally_cancelled, "Returns if the RPC was cancelled locally.\n\n        Returns:\n            True when was cancelled locally, False when was cancelled remotelly or\n            is still ongoing.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_29is_locally_cancelled = {"is_locally_cancelled", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_29is_locally_cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_28is_locally_cancelled};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_29is_locally_cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_locally_cancelled (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("is_locally_cancelled", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "is_locally_cancelled", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_28is_locally_cancelled(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_28is_locally_cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_locally_cancelled", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":283
 *             is still ongoing.
 *         """
 *         if self._is_locally_cancelled:             # <<<<<<<<<<<<<<
 *             return True
 * 
 */
  if (__pyx_v_self->_is_locally_cancelled) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":284
 *         """
 *         if self._is_locally_cancelled:
 *             return True             # <<<<<<<<<<<<<<
 * 
 *         return False
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":283
 *             is still ongoing.
 *         """
 *         if self._is_locally_cancelled:             # <<<<<<<<<<<<<<
 *             return True
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":286
 *             return True
 * 
 *         return False             # <<<<<<<<<<<<<<
 * 
 *     def set_internal_error(self, str error_str):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(Py_False);
  __pyx_r = Py_False;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":276
 *         return self._initial_metadata
 * 
 *     def is_locally_cancelled(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC was cancelled locally.
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":288
 *         return False
 * 
 *     def set_internal_error(self, str error_str):             # <<<<<<<<<<<<<<
 *         self._set_status(AioRpcStatus(
 *             StatusCode.internal,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_31set_internal_error(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_31set_internal_error = {"set_internal_error", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_31set_internal_error, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_31set_internal_error(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_error_str = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_internal_error (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_error_str,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_error_str)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 288, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_internal_error") < 0)) __PYX_ERR(34, 288, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_error_str = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_internal_error", 1, 1, 1, __pyx_nargs); __PYX_ERR(34, 288, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.set_internal_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_error_str), (&PyString_Type), 1, "error_str", 1))) __PYX_ERR(34, 288, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_30set_internal_error(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_error_str);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_30set_internal_error(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_error_str) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_internal_error", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":290
 *     def set_internal_error(self, str error_str):
 *         self._set_status(AioRpcStatus(
 *             StatusCode.internal,             # <<<<<<<<<<<<<<
 *             'Internal error from Core',
 *             (),
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_internal); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":289
 * 
 *     def set_internal_error(self, str error_str):
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             StatusCode.internal,
 *             'Internal error from Core',
 */
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(34, 289, __pyx_L1_error);
  __Pyx_INCREF(__pyx_kp_s_Internal_error_from_Core);
  __Pyx_GIVEREF(__pyx_kp_s_Internal_error_from_Core);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_s_Internal_error_from_Core)) __PYX_ERR(34, 289, __pyx_L1_error);
  __Pyx_INCREF(__pyx_empty_tuple);
  __Pyx_GIVEREF(__pyx_empty_tuple);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_empty_tuple)) __PYX_ERR(34, 289, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_error_str);
  __Pyx_GIVEREF(__pyx_v_error_str);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_error_str)) __PYX_ERR(34, 289, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self->__pyx_vtab)->_set_status(__pyx_v_self, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":288
 *         return False
 * 
 *     def set_internal_error(self, str error_str):             # <<<<<<<<<<<<<<
 *         self._set_status(AioRpcStatus(
 *             StatusCode.internal,
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.set_internal_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_34generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":296
 *         ))
 * 
 *     async def unary_unary(self,             # <<<<<<<<<<<<<<
 *                           bytes request,
 *                           tuple outbound_initial_metadata,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_33unary_unary(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_32unary_unary, "Performs a unary unary RPC.\n\n        Args:\n          request: the serialized requests in bytes.\n          outbound_initial_metadata: optional outbound metadata.\n          context: instrumentation context.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_33unary_unary = {"unary_unary", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_33unary_unary, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_32unary_unary};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_33unary_unary(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_request = 0;
  PyObject *__pyx_v_outbound_initial_metadata = 0;
  PyObject *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("unary_unary (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_request,&__pyx_n_s_outbound_initial_metadata,&__pyx_n_s_context,0};

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":299
 *                           bytes request,
 *                           tuple outbound_initial_metadata,
 *                           object context = None):             # <<<<<<<<<<<<<<
 *         """Performs a unary unary RPC.
 * 
 */
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_request)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 296, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_outbound_initial_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 296, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("unary_unary", 0, 2, 3, 1); __PYX_ERR(34, 296, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_context);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 296, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "unary_unary") < 0)) __PYX_ERR(34, 296, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_request = ((PyObject*)values[0]);
    __pyx_v_outbound_initial_metadata = ((PyObject*)values[1]);
    __pyx_v_context = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("unary_unary", 0, 2, 3, __pyx_nargs); __PYX_ERR(34, 296, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.unary_unary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_request), (&PyBytes_Type), 1, "request", 1))) __PYX_ERR(34, 297, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outbound_initial_metadata), (&PyTuple_Type), 1, "outbound_initial_metadata", 1))) __PYX_ERR(34, 298, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_32unary_unary(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_request, __pyx_v_outbound_initial_metadata, __pyx_v_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":296
 *         ))
 * 
 *     async def unary_unary(self,             # <<<<<<<<<<<<<<
 *                           bytes request,
 *                           tuple outbound_initial_metadata,
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_32unary_unary(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_request, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_context) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("unary_unary", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 296, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_request = __pyx_v_request;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_request);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_request);
  __pyx_cur_scope->__pyx_v_outbound_initial_metadata = __pyx_v_outbound_initial_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __pyx_cur_scope->__pyx_v_context = __pyx_v_context;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_context);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_context);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_34generator10, __pyx_codeobj__61, (PyObject *) __pyx_cur_scope, __pyx_n_s_unary_unary, __pyx_n_s_AioCall_unary_unary, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 296, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.unary_unary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_34generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  grpc_status_code __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("unary_unary", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 296, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":311
 *         cdef SendInitialMetadataOperation initial_metadata_op = SendInitialMetadataOperation(
 *             outbound_initial_metadata,
 *             self._send_initial_metadata_flags)             # <<<<<<<<<<<<<<
 *         cdef SendMessageOperation send_message_op = SendMessageOperation(request, _EMPTY_FLAGS)
 *         cdef SendCloseFromClientOperation send_close_op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->_send_initial_metadata_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":309
 *         cdef tuple ops
 * 
 *         cdef SendInitialMetadataOperation initial_metadata_op = SendInitialMetadataOperation(             # <<<<<<<<<<<<<<
 *             outbound_initial_metadata,
 *             self._send_initial_metadata_flags)
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_outbound_initial_metadata)) __PYX_ERR(34, 309, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(34, 309, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_initial_metadata_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":312
 *             outbound_initial_metadata,
 *             self._send_initial_metadata_flags)
 *         cdef SendMessageOperation send_message_op = SendMessageOperation(request, _EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef SendCloseFromClientOperation send_close_op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 *         cdef ReceiveInitialMetadataOperation receive_initial_metadata_op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_request);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_request);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_request)) __PYX_ERR(34, 312, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(34, 312, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_send_message_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":313
 *             self._send_initial_metadata_flags)
 *         cdef SendMessageOperation send_message_op = SendMessageOperation(request, _EMPTY_FLAGS)
 *         cdef SendCloseFromClientOperation send_close_op = SendCloseFromClientOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef ReceiveInitialMetadataOperation receive_initial_metadata_op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 *         cdef ReceiveMessageOperation receive_message_op = ReceiveMessageOperation(_EMPTY_FLAGS)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_send_close_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":314
 *         cdef SendMessageOperation send_message_op = SendMessageOperation(request, _EMPTY_FLAGS)
 *         cdef SendCloseFromClientOperation send_close_op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 *         cdef ReceiveInitialMetadataOperation receive_initial_metadata_op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef ReceiveMessageOperation receive_message_op = ReceiveMessageOperation(_EMPTY_FLAGS)
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_receive_initial_metadata_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":315
 *         cdef SendCloseFromClientOperation send_close_op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 *         cdef ReceiveInitialMetadataOperation receive_initial_metadata_op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 *         cdef ReceiveMessageOperation receive_message_op = ReceiveMessageOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_receive_message_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":316
 *         cdef ReceiveInitialMetadataOperation receive_initial_metadata_op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 *         cdef ReceiveMessageOperation receive_message_op = ReceiveMessageOperation(_EMPTY_FLAGS)
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 * 
 *         if context is not None:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_receive_status_on_client_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":318
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 *         ops = (initial_metadata_op, send_message_op, send_close_op,
 */
  __pyx_t_3 = (__pyx_cur_scope->__pyx_v_context != Py_None);
  if (__pyx_t_3) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":319
 * 
 *         if context is not None:
 *             set_instrumentation_context_on_call_aio(self, context)             # <<<<<<<<<<<<<<
 *         ops = (initial_metadata_op, send_message_op, send_close_op,
 *                receive_initial_metadata_op, receive_message_op,
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_set_instrumentation_context_on_c); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_context};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 319, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":318
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 *         ops = (initial_metadata_op, send_message_op, send_close_op,
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":320
 *         if context is not None:
 *             set_instrumentation_context_on_call_aio(self, context)
 *         ops = (initial_metadata_op, send_message_op, send_close_op,             # <<<<<<<<<<<<<<
 *                receive_initial_metadata_op, receive_message_op,
 *                receive_status_on_client_op)
 */
  __pyx_t_1 = PyTuple_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_initial_metadata_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_initial_metadata_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_initial_metadata_op))) __PYX_ERR(34, 320, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_message_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_message_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_cur_scope->__pyx_v_send_message_op))) __PYX_ERR(34, 320, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_close_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_close_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_cur_scope->__pyx_v_send_close_op))) __PYX_ERR(34, 320, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_initial_metadata_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_initial_metadata_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_cur_scope->__pyx_v_receive_initial_metadata_op))) __PYX_ERR(34, 320, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op))) __PYX_ERR(34, 320, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op))) __PYX_ERR(34, 320, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":326
 *         # Executes all operations in one batch.
 *         # Might raise CancelledError, handling it in Python UnaryUnaryCall.
 *         await execute_batch(self,             # <<<<<<<<<<<<<<
 *                             ops,
 *                             self._loop)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_execute_batch); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":328
 *         await execute_batch(self,
 *                             ops,
 *                             self._loop)             # <<<<<<<<<<<<<<
 * 
 *         self._set_initial_metadata(receive_initial_metadata_op.initial_metadata())
 */
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 3+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 326, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(34, 326, __pyx_L1_error)
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":330
 *                             self._loop)
 * 
 *         self._set_initial_metadata(receive_initial_metadata_op.initial_metadata())             # <<<<<<<<<<<<<<
 * 
 *         cdef grpc_status_code code
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_receive_initial_metadata_op), __pyx_n_s_initial_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(34, 330, __pyx_L1_error)
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_set_initial_metadata(__pyx_cur_scope->__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 330, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":333
 * 
 *         cdef grpc_status_code code
 *         code = receive_status_on_client_op.code()             # <<<<<<<<<<<<<<
 * 
 *         self._set_status(AioRpcStatus(
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op), __pyx_n_s_code); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_6 = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 333, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_cur_scope->__pyx_v_code = __pyx_t_6;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":336
 * 
 *         self._set_status(AioRpcStatus(
 *             code,             # <<<<<<<<<<<<<<
 *             receive_status_on_client_op.details(),
 *             receive_status_on_client_op.trailing_metadata(),
 */
  __pyx_t_1 = __Pyx_PyInt_From_grpc_status_code(__pyx_cur_scope->__pyx_v_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":337
 *         self._set_status(AioRpcStatus(
 *             code,
 *             receive_status_on_client_op.details(),             # <<<<<<<<<<<<<<
 *             receive_status_on_client_op.trailing_metadata(),
 *             receive_status_on_client_op.error_string(),
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op), __pyx_n_s_details); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":338
 *             code,
 *             receive_status_on_client_op.details(),
 *             receive_status_on_client_op.trailing_metadata(),             # <<<<<<<<<<<<<<
 *             receive_status_on_client_op.error_string(),
 *         ))
 */
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op), __pyx_n_s_trailing_metadata); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 338, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":339
 *             receive_status_on_client_op.details(),
 *             receive_status_on_client_op.trailing_metadata(),
 *             receive_status_on_client_op.error_string(),             # <<<<<<<<<<<<<<
 *         ))
 * 
 */
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op), __pyx_n_s_error_string); if (unlikely(!__pyx_t_8)) __PYX_ERR(34, 339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, NULL};
    __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 339, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":335
 *         code = receive_status_on_client_op.code()
 * 
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             code,
 *             receive_status_on_client_op.details(),
 */
  __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(34, 335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1)) __PYX_ERR(34, 335, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2)) __PYX_ERR(34, 335, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_4)) __PYX_ERR(34, 335, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_7)) __PYX_ERR(34, 335, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_4 = 0;
  __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus), __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_set_status(__pyx_cur_scope->__pyx_v_self, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_t_7)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 335, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":342
 *         ))
 * 
 *         if code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *             return receive_message_op.message()
 *         else:
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(__pyx_cur_scope->__pyx_v_code); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_8)) __PYX_ERR(34, 342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_ok); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_RichCompare(__pyx_t_7, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(34, 342, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(34, 342, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (__pyx_t_3) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":343
 * 
 *         if code == StatusCode.ok:
 *             return receive_message_op.message()             # <<<<<<<<<<<<<<
 *         else:
 *             return None
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op), __pyx_n_s_message); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
      __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_8)) __PYX_ERR(34, 343, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":342
 *         ))
 * 
 *         if code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *             return receive_message_op.message()
 *         else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":345
 *             return receive_message_op.message()
 *         else:
 *             return None             # <<<<<<<<<<<<<<
 * 
 *     async def _handle_status_once_received(self):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL;
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":296
 *         ))
 * 
 *     async def unary_unary(self,             # <<<<<<<<<<<<<<
 *                           bytes request,
 *                           tuple outbound_initial_metadata,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("unary_unary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_37generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":347
 *             return None
 * 
 *     async def _handle_status_once_received(self):             # <<<<<<<<<<<<<<
 *         """Handles the status sent by peer once received."""
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_36_handle_status_once_received(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_35_handle_status_once_received, "Handles the status sent by peer once received.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_36_handle_status_once_received = {"_handle_status_once_received", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_36_handle_status_once_received, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_35_handle_status_once_received};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_36_handle_status_once_received(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_status_once_received (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("_handle_status_once_received", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_handle_status_once_received", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_35_handle_status_once_received(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_35_handle_status_once_received(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_status_once_received", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 347, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_37generator11, __pyx_codeobj__62, (PyObject *) __pyx_cur_scope, __pyx_n_s_handle_status_once_received, __pyx_n_s_AioCall__handle_status_once_rec, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 347, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall._handle_status_once_received", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_37generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_status_once_received", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 347, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":349
 *     async def _handle_status_once_received(self):
 *         """Handles the status sent by peer once received."""
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef tuple ops = (op,)
 *         await execute_batch(self, ops, self._loop)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":350
 *         """Handles the status sent by peer once received."""
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 *         cdef tuple ops = (op,)             # <<<<<<<<<<<<<<
 *         await execute_batch(self, ops, self._loop)
 * 
 */
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op))) __PYX_ERR(34, 350, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":351
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 *         cdef tuple ops = (op,)
 *         await execute_batch(self, ops, self._loop)             # <<<<<<<<<<<<<<
 * 
 *         # Halts if the RPC is locally cancelled
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_execute_batch); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 351, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 351, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(34, 351, __pyx_L1_error)
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":354
 * 
 *         # Halts if the RPC is locally cancelled
 *         if self._is_locally_cancelled:             # <<<<<<<<<<<<<<
 *             return
 * 
 */
  if (__pyx_cur_scope->__pyx_v_self->_is_locally_cancelled) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":355
 *         # Halts if the RPC is locally cancelled
 *         if self._is_locally_cancelled:
 *             return             # <<<<<<<<<<<<<<
 * 
 *         self._set_status(AioRpcStatus(
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":354
 * 
 *         # Halts if the RPC is locally cancelled
 *         if self._is_locally_cancelled:             # <<<<<<<<<<<<<<
 *             return
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":358
 * 
 *         self._set_status(AioRpcStatus(
 *             op.code(),             # <<<<<<<<<<<<<<
 *             op.details(),
 *             op.trailing_metadata(),
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_op), __pyx_n_s_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":359
 *         self._set_status(AioRpcStatus(
 *             op.code(),
 *             op.details(),             # <<<<<<<<<<<<<<
 *             op.trailing_metadata(),
 *             op.error_string(),
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_op), __pyx_n_s_details); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 359, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":360
 *             op.code(),
 *             op.details(),
 *             op.trailing_metadata(),             # <<<<<<<<<<<<<<
 *             op.error_string(),
 *         ))
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_op), __pyx_n_s_trailing_metadata); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 360, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":361
 *             op.details(),
 *             op.trailing_metadata(),
 *             op.error_string(),             # <<<<<<<<<<<<<<
 *         ))
 * 
 */
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_op), __pyx_n_s_error_string); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 361, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":357
 *             return
 * 
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             op.code(),
 *             op.details(),
 */
  __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2)) __PYX_ERR(34, 357, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1)) __PYX_ERR(34, 357, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3)) __PYX_ERR(34, 357, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5)) __PYX_ERR(34, 357, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus), __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_set_status(__pyx_cur_scope->__pyx_v_self, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_t_5)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 357, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":347
 *             return None
 * 
 *     async def _handle_status_once_received(self):             # <<<<<<<<<<<<<<
 *         """Handles the status sent by peer once received."""
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("_handle_status_once_received", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_40generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":364
 *         ))
 * 
 *     async def receive_serialized_message(self):             # <<<<<<<<<<<<<<
 *         """Receives one single raw message in bytes."""
 *         cdef bytes received_message
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_39receive_serialized_message(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_38receive_serialized_message, "Receives one single raw message in bytes.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_39receive_serialized_message = {"receive_serialized_message", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_39receive_serialized_message, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_38receive_serialized_message};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_39receive_serialized_message(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("receive_serialized_message (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("receive_serialized_message", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "receive_serialized_message", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_38receive_serialized_message(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_38receive_serialized_message(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("receive_serialized_message", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 364, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_40generator12, __pyx_codeobj__63, (PyObject *) __pyx_cur_scope, __pyx_n_s_receive_serialized_message, __pyx_n_s_AioCall_receive_serialized_mess, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 364, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.receive_serialized_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_40generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("receive_serialized_message", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 364, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":372
 *         # * The client application cancels;
 *         # * The server sends final status.
 *         received_message = await _receive_message(             # <<<<<<<<<<<<<<
 *             self,
 *             self._loop
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_receive_message); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":374
 *         received_message = await _receive_message(
 *             self,
 *             self._loop             # <<<<<<<<<<<<<<
 *         )
 *         if received_message is not None:
 */
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 372, __pyx_L1_error)
    __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
  } else {
    __pyx_t_1 = NULL;
    if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(34, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":372
 *         # * The client application cancels;
 *         # * The server sends final status.
 *         received_message = await _receive_message(             # <<<<<<<<<<<<<<
 *             self,
 *             self._loop
 */
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(34, 372, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_received_message = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":376
 *             self._loop
 *         )
 *         if received_message is not None:             # <<<<<<<<<<<<<<
 *             return received_message
 *         else:
 */
  __pyx_t_5 = (__pyx_cur_scope->__pyx_v_received_message != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":377
 *         )
 *         if received_message is not None:
 *             return received_message             # <<<<<<<<<<<<<<
 *         else:
 *             return EOF
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_cur_scope->__pyx_v_received_message);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":376
 *             self._loop
 *         )
 *         if received_message is not None:             # <<<<<<<<<<<<<<
 *             return received_message
 *         else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":379
 *             return received_message
 *         else:
 *             return EOF             # <<<<<<<<<<<<<<
 * 
 *     async def send_serialized_message(self, bytes message):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_EOF); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":364
 *         ))
 * 
 *     async def receive_serialized_message(self):             # <<<<<<<<<<<<<<
 *         """Receives one single raw message in bytes."""
 *         cdef bytes received_message
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("receive_serialized_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_43generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":381
 *             return EOF
 * 
 *     async def send_serialized_message(self, bytes message):             # <<<<<<<<<<<<<<
 *         """Sends one single raw message in bytes."""
 *         await _send_message(self,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_42send_serialized_message(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_41send_serialized_message, "Sends one single raw message in bytes.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_42send_serialized_message = {"send_serialized_message", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_42send_serialized_message, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_41send_serialized_message};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_42send_serialized_message(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_message = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("send_serialized_message (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_message,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_message)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 381, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "send_serialized_message") < 0)) __PYX_ERR(34, 381, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_message = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("send_serialized_message", 1, 1, 1, __pyx_nargs); __PYX_ERR(34, 381, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.send_serialized_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_message), (&PyBytes_Type), 1, "message", 1))) __PYX_ERR(34, 381, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_41send_serialized_message(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_message);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_41send_serialized_message(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_message) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("send_serialized_message", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 381, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_message = __pyx_v_message;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_message);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_message);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_43generator13, __pyx_codeobj__64, (PyObject *) __pyx_cur_scope, __pyx_n_s_send_serialized_message, __pyx_n_s_AioCall_send_serialized_message, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 381, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.send_serialized_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_43generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("send_serialized_message", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 381, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":383
 *     async def send_serialized_message(self, bytes message):
 *         """Sends one single raw message in bytes."""
 *         await _send_message(self,             # <<<<<<<<<<<<<<
 *                             message,
 *                             None,
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_send_message); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":387
 *                             None,
 *                             False,
 *                             self._loop)             # <<<<<<<<<<<<<<
 * 
 *     async def send_receive_close(self):
 */
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_message, Py_None, Py_False, __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 5+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 383, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(34, 383, __pyx_L1_error)
    }
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":381
 *             return EOF
 * 
 *     async def send_serialized_message(self, bytes message):             # <<<<<<<<<<<<<<
 *         """Sends one single raw message in bytes."""
 *         await _send_message(self,
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("send_serialized_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_46generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":389
 *                             self._loop)
 * 
 *     async def send_receive_close(self):             # <<<<<<<<<<<<<<
 *         """Half close the RPC on the client-side."""
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_45send_receive_close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_44send_receive_close, "Half close the RPC on the client-side.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_45send_receive_close = {"send_receive_close", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_45send_receive_close, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_44send_receive_close};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_45send_receive_close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("send_receive_close (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("send_receive_close", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "send_receive_close", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_44send_receive_close(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_44send_receive_close(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("send_receive_close", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 389, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_46generator14, __pyx_codeobj__65, (PyObject *) __pyx_cur_scope, __pyx_n_s_send_receive_close, __pyx_n_s_AioCall_send_receive_close, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 389, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.send_receive_close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_46generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("send_receive_close", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 389, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":391
 *     async def send_receive_close(self):
 *         """Half close the RPC on the client-side."""
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef tuple ops = (op,)
 *         await execute_batch(self, ops, self._loop)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":392
 *         """Half close the RPC on the client-side."""
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 *         cdef tuple ops = (op,)             # <<<<<<<<<<<<<<
 *         await execute_batch(self, ops, self._loop)
 * 
 */
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op))) __PYX_ERR(34, 392, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":393
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 *         cdef tuple ops = (op,)
 *         await execute_batch(self, ops, self._loop)             # <<<<<<<<<<<<<<
 * 
 *     async def initiate_unary_stream(self,
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_execute_batch); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 393, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 393, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(34, 393, __pyx_L1_error)
    }
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":389
 *                             self._loop)
 * 
 *     async def send_receive_close(self):             # <<<<<<<<<<<<<<
 *         """Half close the RPC on the client-side."""
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("send_receive_close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_49generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":395
 *         await execute_batch(self, ops, self._loop)
 * 
 *     async def initiate_unary_stream(self,             # <<<<<<<<<<<<<<
 *                            bytes request,
 *                            tuple outbound_initial_metadata,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_48initiate_unary_stream(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_47initiate_unary_stream, "Implementation of the start of a unary-stream call.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_48initiate_unary_stream = {"initiate_unary_stream", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_48initiate_unary_stream, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_47initiate_unary_stream};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_48initiate_unary_stream(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_request = 0;
  PyObject *__pyx_v_outbound_initial_metadata = 0;
  PyObject *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initiate_unary_stream (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_request,&__pyx_n_s_outbound_initial_metadata,&__pyx_n_s_context,0};

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":398
 *                            bytes request,
 *                            tuple outbound_initial_metadata,
 *                            object context = None):             # <<<<<<<<<<<<<<
 *         """Implementation of the start of a unary-stream call."""
 *         # Peer may prematurely end this RPC at any point. We need a corutine
 */
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_request)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 395, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_outbound_initial_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 395, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("initiate_unary_stream", 0, 2, 3, 1); __PYX_ERR(34, 395, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_context);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 395, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "initiate_unary_stream") < 0)) __PYX_ERR(34, 395, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_request = ((PyObject*)values[0]);
    __pyx_v_outbound_initial_metadata = ((PyObject*)values[1]);
    __pyx_v_context = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("initiate_unary_stream", 0, 2, 3, __pyx_nargs); __PYX_ERR(34, 395, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.initiate_unary_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_request), (&PyBytes_Type), 1, "request", 1))) __PYX_ERR(34, 396, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outbound_initial_metadata), (&PyTuple_Type), 1, "outbound_initial_metadata", 1))) __PYX_ERR(34, 397, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_47initiate_unary_stream(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_request, __pyx_v_outbound_initial_metadata, __pyx_v_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":395
 *         await execute_batch(self, ops, self._loop)
 * 
 *     async def initiate_unary_stream(self,             # <<<<<<<<<<<<<<
 *                            bytes request,
 *                            tuple outbound_initial_metadata,
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_47initiate_unary_stream(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_request, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_context) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("initiate_unary_stream", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 395, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_request = __pyx_v_request;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_request);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_request);
  __pyx_cur_scope->__pyx_v_outbound_initial_metadata = __pyx_v_outbound_initial_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __pyx_cur_scope->__pyx_v_context = __pyx_v_context;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_context);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_context);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_49generator15, __pyx_codeobj__66, (PyObject *) __pyx_cur_scope, __pyx_n_s_initiate_unary_stream, __pyx_n_s_AioCall_initiate_unary_stream, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 395, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.initiate_unary_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_49generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  char const *__pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initiate_unary_stream", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L11_resume_from_await;
    case 2: goto __pyx_L12_resume_from_await;
    case 3: goto __pyx_L20_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 395, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":402
 *         # Peer may prematurely end this RPC at any point. We need a corutine
 *         # that watches if the server sends the final status.
 *         status_task = self._loop.create_task(self._handle_status_once_received())             # <<<<<<<<<<<<<<
 * 
 *         cdef tuple outbound_ops
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->_loop, __pyx_n_s_create_task); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_handle_status_once_received); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 402, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 402, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_status_task = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":407
 *         cdef Operation initial_metadata_op = SendInitialMetadataOperation(
 *             outbound_initial_metadata,
 *             self._send_initial_metadata_flags)             # <<<<<<<<<<<<<<
 *         cdef Operation send_message_op = SendMessageOperation(
 *             request,
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->_send_initial_metadata_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 407, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":405
 * 
 *         cdef tuple outbound_ops
 *         cdef Operation initial_metadata_op = SendInitialMetadataOperation(             # <<<<<<<<<<<<<<
 *             outbound_initial_metadata,
 *             self._send_initial_metadata_flags)
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_outbound_initial_metadata)) __PYX_ERR(34, 405, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(34, 405, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_initial_metadata_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":410
 *         cdef Operation send_message_op = SendMessageOperation(
 *             request,
 *             _EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef Operation send_close_op = SendCloseFromClientOperation(
 *             _EMPTY_FLAGS)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":408
 *             outbound_initial_metadata,
 *             self._send_initial_metadata_flags)
 *         cdef Operation send_message_op = SendMessageOperation(             # <<<<<<<<<<<<<<
 *             request,
 *             _EMPTY_FLAGS)
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_request);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_request);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_request)) __PYX_ERR(34, 408, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(34, 408, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_send_message_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":412
 *             _EMPTY_FLAGS)
 *         cdef Operation send_close_op = SendCloseFromClientOperation(
 *             _EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 * 
 *         if context is not None:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":411
 *             request,
 *             _EMPTY_FLAGS)
 *         cdef Operation send_close_op = SendCloseFromClientOperation(             # <<<<<<<<<<<<<<
 *             _EMPTY_FLAGS)
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_send_close_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":414
 *             _EMPTY_FLAGS)
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 *         outbound_ops = (
 */
  __pyx_t_7 = (__pyx_cur_scope->__pyx_v_context != Py_None);
  if (__pyx_t_7) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":415
 * 
 *         if context is not None:
 *             set_instrumentation_context_on_call_aio(self, context)             # <<<<<<<<<<<<<<
 *         outbound_ops = (
 *             initial_metadata_op,
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_set_instrumentation_context_on_c); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 415, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_context};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 415, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":414
 *             _EMPTY_FLAGS)
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 *         outbound_ops = (
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":417
 *             set_instrumentation_context_on_call_aio(self, context)
 *         outbound_ops = (
 *             initial_metadata_op,             # <<<<<<<<<<<<<<
 *             send_message_op,
 *             send_close_op,
 */
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_initial_metadata_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_initial_metadata_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_initial_metadata_op))) __PYX_ERR(34, 417, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_message_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_message_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_cur_scope->__pyx_v_send_message_op))) __PYX_ERR(34, 417, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_close_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_close_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_cur_scope->__pyx_v_send_close_op))) __PYX_ERR(34, 417, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_outbound_ops = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":422
 *         )
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out the request message.
 *             await execute_batch(self,
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_10);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":424
 *         try:
 *             # Sends out the request message.
 *             await execute_batch(self,             # <<<<<<<<<<<<<<
 *                                 outbound_ops,
 *                                 self._loop)
 */
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_execute_batch); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 424, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_1);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":426
 *             await execute_batch(self,
 *                                 outbound_ops,
 *                                 self._loop)             # <<<<<<<<<<<<<<
 * 
 *             # Receives initial metadata.
 */
      __pyx_t_3 = NULL;
      __pyx_t_6 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_6 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_outbound_ops, __pyx_cur_scope->__pyx_v_self->_loop};
        __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 424, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XGOTREF(__pyx_r);
      if (likely(__pyx_r)) {
        __Pyx_XGIVEREF(__pyx_t_8);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_8;
        __Pyx_XGIVEREF(__pyx_t_9);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
        __Pyx_XGIVEREF(__pyx_t_10);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 1;
        return __pyx_r;
        __pyx_L11_resume_from_await:;
        __pyx_t_8 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_8);
        __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_9);
        __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_10);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 424, __pyx_L5_error)
      } else {
        PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
        if (exc_type) {
          if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
          else __PYX_ERR(34, 424, __pyx_L5_error)
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":430
 *             # Receives initial metadata.
 *             self._set_initial_metadata(
 *                 await _receive_initial_metadata(self,             # <<<<<<<<<<<<<<
 *                                                 self._loop),
 *             )
 */
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_receive_initial_metadata); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 430, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_1);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":431
 *             self._set_initial_metadata(
 *                 await _receive_initial_metadata(self,
 *                                                 self._loop),             # <<<<<<<<<<<<<<
 *             )
 *         except ExecuteBatchError as batch_error:
 */
      __pyx_t_3 = NULL;
      __pyx_t_6 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_6 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_self->_loop};
        __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 430, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XGOTREF(__pyx_r);
      if (likely(__pyx_r)) {
        __Pyx_XGIVEREF(__pyx_t_8);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_8;
        __Pyx_XGIVEREF(__pyx_t_9);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
        __Pyx_XGIVEREF(__pyx_t_10);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 2;
        return __pyx_r;
        __pyx_L12_resume_from_await:;
        __pyx_t_8 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_8);
        __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_9);
        __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_10);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 430, __pyx_L5_error)
        __pyx_t_2 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_2);
      } else {
        __pyx_t_2 = NULL;
        if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_2) < 0) __PYX_ERR(34, 430, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_2);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":430
 *             # Receives initial metadata.
 *             self._set_initial_metadata(
 *                 await _receive_initial_metadata(self,             # <<<<<<<<<<<<<<
 *                                                 self._loop),
 *             )
 */
      if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(34, 430, __pyx_L5_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":429
 * 
 *             # Receives initial metadata.
 *             self._set_initial_metadata(             # <<<<<<<<<<<<<<
 *                 await _receive_initial_metadata(self,
 *                                                 self._loop),
 */
      ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_set_initial_metadata(__pyx_cur_scope->__pyx_v_self, ((PyObject*)__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 429, __pyx_L5_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":422
 *         )
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out the request message.
 *             await execute_batch(self,
 */
    }
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    goto __pyx_L10_try_end;
    __pyx_L5_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":433
 *                                                 self._loop),
 *             )
 *         except ExecuteBatchError as batch_error:             # <<<<<<<<<<<<<<
 *             # Core should explain why this batch failed
 *             await status_task
 */
    __Pyx_ErrFetch(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ExecuteBatchError); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 433, __pyx_L7_except_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_11 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_2, __pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_ErrRestore(__pyx_t_2, __pyx_t_1, __pyx_t_3);
    __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0;
    if (__pyx_t_11) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.initiate_unary_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(34, 433, __pyx_L7_except_error)
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_v_batch_error = __pyx_t_1;
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":435
 *         except ExecuteBatchError as batch_error:
 *             # Core should explain why this batch failed
 *             await status_task             # <<<<<<<<<<<<<<
 * 
 *     async def stream_unary(self,
 */
        __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_status_task);
        __Pyx_XGOTREF(__pyx_r);
        if (likely(__pyx_r)) {
          __Pyx_XGIVEREF(__pyx_t_1);
          __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
          __Pyx_XGIVEREF(__pyx_t_2);
          __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
          __Pyx_XGIVEREF(__pyx_t_3);
          __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
          __Pyx_XGIVEREF(__pyx_t_8);
          __pyx_cur_scope->__pyx_t_3 = __pyx_t_8;
          __Pyx_XGIVEREF(__pyx_t_9);
          __pyx_cur_scope->__pyx_t_4 = __pyx_t_9;
          __Pyx_XGIVEREF(__pyx_t_10);
          __pyx_cur_scope->__pyx_t_5 = __pyx_t_10;
          __Pyx_XGIVEREF(__pyx_r);
          __Pyx_RefNannyFinishContext();
          __Pyx_Coroutine_SwapException(__pyx_generator);
          /* return from generator, awaiting value */
          __pyx_generator->resume_label = 3;
          return __pyx_r;
          __pyx_L20_resume_from_await:;
          __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
          __pyx_cur_scope->__pyx_t_0 = 0;
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
          __pyx_cur_scope->__pyx_t_1 = 0;
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
          __pyx_cur_scope->__pyx_t_2 = 0;
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_8 = __pyx_cur_scope->__pyx_t_3;
          __pyx_cur_scope->__pyx_t_3 = 0;
          __Pyx_XGOTREF(__pyx_t_8);
          __pyx_t_9 = __pyx_cur_scope->__pyx_t_4;
          __pyx_cur_scope->__pyx_t_4 = 0;
          __Pyx_XGOTREF(__pyx_t_9);
          __pyx_t_10 = __pyx_cur_scope->__pyx_t_5;
          __pyx_cur_scope->__pyx_t_5 = 0;
          __Pyx_XGOTREF(__pyx_t_10);
          if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 435, __pyx_L18_error)
        } else {
          PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
          if (exc_type) {
            if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
            else __PYX_ERR(34, 435, __pyx_L18_error)
          }
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":433
 *                                                 self._loop),
 *             )
 *         except ExecuteBatchError as batch_error:             # <<<<<<<<<<<<<<
 *             # Core should explain why this batch failed
 *             await status_task
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_batch_error);
          __Pyx_DECREF(__pyx_cur_scope->__pyx_v_batch_error); __pyx_cur_scope->__pyx_v_batch_error = 0;
          goto __pyx_L19;
        }
        __pyx_L18_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_assign
          __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_14);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename;
          {
            __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_batch_error);
            __Pyx_DECREF(__pyx_cur_scope->__pyx_v_batch_error); __pyx_cur_scope->__pyx_v_batch_error = 0;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_17);
            __Pyx_XGIVEREF(__pyx_t_18);
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
          }
          __Pyx_XGIVEREF(__pyx_t_14);
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16);
          __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
          __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13;
          goto __pyx_L7_except_error;
        }
        __pyx_L19:;
      }
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L6_exception_handled;
    }
    goto __pyx_L7_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":422
 *         )
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out the request message.
 *             await execute_batch(self,
 */
    __pyx_L7_except_error:;
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
    goto __pyx_L1_error;
    __pyx_L6_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
    __pyx_L10_try_end:;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":395
 *         await execute_batch(self, ops, self._loop)
 * 
 *     async def initiate_unary_stream(self,             # <<<<<<<<<<<<<<
 *                            bytes request,
 *                            tuple outbound_initial_metadata,
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("initiate_unary_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_52generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":437
 *             await status_task
 * 
 *     async def stream_unary(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_51stream_unary(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_50stream_unary, "Actual implementation of the complete unary-stream call.\n\n        Needs to pay extra attention to the raise mechanism. If we want to\n        propagate the final status exception, then we have to raise it.\n        Othersize, it would end normally and raise `StopAsyncIteration()`.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_51stream_unary = {"stream_unary", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_51stream_unary, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_50stream_unary};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_51stream_unary(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_outbound_initial_metadata = 0;
  PyObject *__pyx_v_metadata_sent_observer = 0;
  PyObject *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_unary (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_outbound_initial_metadata,&__pyx_n_s_metadata_sent_observer,&__pyx_n_s_context,0};

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":440
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 *                            object context = None):             # <<<<<<<<<<<<<<
 *         """Actual implementation of the complete unary-stream call.
 * 
 */
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_outbound_initial_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 437, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_metadata_sent_observer)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 437, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("stream_unary", 0, 2, 3, 1); __PYX_ERR(34, 437, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_context);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 437, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_unary") < 0)) __PYX_ERR(34, 437, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_outbound_initial_metadata = ((PyObject*)values[0]);
    __pyx_v_metadata_sent_observer = values[1];
    __pyx_v_context = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_unary", 0, 2, 3, __pyx_nargs); __PYX_ERR(34, 437, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.stream_unary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outbound_initial_metadata), (&PyTuple_Type), 1, "outbound_initial_metadata", 1))) __PYX_ERR(34, 438, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_50stream_unary(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_outbound_initial_metadata, __pyx_v_metadata_sent_observer, __pyx_v_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":437
 *             await status_task
 * 
 *     async def stream_unary(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_50stream_unary(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_metadata_sent_observer, PyObject *__pyx_v_context) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_unary", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 437, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_outbound_initial_metadata = __pyx_v_outbound_initial_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __pyx_cur_scope->__pyx_v_metadata_sent_observer = __pyx_v_metadata_sent_observer;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
  __pyx_cur_scope->__pyx_v_context = __pyx_v_context;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_context);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_context);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_52generator16, __pyx_codeobj__67, (PyObject *) __pyx_cur_scope, __pyx_n_s_stream_unary, __pyx_n_s_AioCall_stream_unary, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 437, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.stream_unary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_52generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  unsigned int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  grpc_status_code __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_unary", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L10_resume_from_await;
    case 2: goto __pyx_L11_resume_from_await;
    case 3: goto __pyx_L14_resume_from_await;
    case 4: goto __pyx_L16_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 437, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":447
 *         Othersize, it would end normally and raise `StopAsyncIteration()`.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":449
 *         try:
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,             # <<<<<<<<<<<<<<
 *                                         outbound_initial_metadata,
 *                                         self._send_initial_metadata_flags,
 */
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_send_initial_metadata); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 449, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_5);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":451
 *             await _send_initial_metadata(self,
 *                                         outbound_initial_metadata,
 *                                         self._send_initial_metadata_flags,             # <<<<<<<<<<<<<<
 *                                         self._loop)
 *             # Notify upper level that sending messages are allowed now.
 */
      __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->_send_initial_metadata_flags); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 451, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_6);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":452
 *                                         outbound_initial_metadata,
 *                                         self._send_initial_metadata_flags,
 *                                         self._loop)             # <<<<<<<<<<<<<<
 *             # Notify upper level that sending messages are allowed now.
 *             metadata_sent_observer()
 */
      __pyx_t_7 = NULL;
      __pyx_t_8 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_8 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[5] = {__pyx_t_7, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_outbound_initial_metadata, __pyx_t_6, __pyx_cur_scope->__pyx_v_self->_loop};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 449, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XGOTREF(__pyx_r);
      if (likely(__pyx_r)) {
        __Pyx_XGIVEREF(__pyx_t_1);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
        __Pyx_XGIVEREF(__pyx_t_2);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
        __Pyx_XGIVEREF(__pyx_t_3);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 1;
        return __pyx_r;
        __pyx_L10_resume_from_await:;
        __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_1);
        __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_2);
        __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_3);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 449, __pyx_L4_error)
      } else {
        PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
        if (exc_type) {
          if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
          else __PYX_ERR(34, 449, __pyx_L4_error)
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":454
 *                                         self._loop)
 *             # Notify upper level that sending messages are allowed now.
 *             metadata_sent_observer()             # <<<<<<<<<<<<<<
 * 
 *             # Receives initial metadata.
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
      __pyx_t_5 = __pyx_cur_scope->__pyx_v_metadata_sent_observer; __pyx_t_6 = NULL;
      __pyx_t_8 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_8 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 454, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":458
 *             # Receives initial metadata.
 *             self._set_initial_metadata(
 *                 await _receive_initial_metadata(self, self._loop)             # <<<<<<<<<<<<<<
 *             )
 *         except ExecuteBatchError:
 */
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_receive_initial_metadata); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 458, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      __pyx_t_8 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_8 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_6, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_self->_loop};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 2+__pyx_t_8);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 458, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XGOTREF(__pyx_r);
      if (likely(__pyx_r)) {
        __Pyx_XGIVEREF(__pyx_t_1);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
        __Pyx_XGIVEREF(__pyx_t_2);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
        __Pyx_XGIVEREF(__pyx_t_3);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 2;
        return __pyx_r;
        __pyx_L11_resume_from_await:;
        __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_1);
        __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_2);
        __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_3);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 458, __pyx_L4_error)
        __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4);
      } else {
        __pyx_t_4 = NULL;
        if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_4) < 0) __PYX_ERR(34, 458, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      if (!(likely(PyTuple_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_4))) __PYX_ERR(34, 458, __pyx_L4_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":457
 * 
 *             # Receives initial metadata.
 *             self._set_initial_metadata(             # <<<<<<<<<<<<<<
 *                 await _receive_initial_metadata(self, self._loop)
 *             )
 */
      ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_set_initial_metadata(__pyx_cur_scope->__pyx_v_self, ((PyObject*)__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 457, __pyx_L4_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":447
 *         Othersize, it would end normally and raise `StopAsyncIteration()`.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":460
 *                 await _receive_initial_metadata(self, self._loop)
 *             )
 *         except ExecuteBatchError:             # <<<<<<<<<<<<<<
 *             # Core should explain why this batch failed
 *             await self._handle_status_once_received()
 */
    __Pyx_ErrFetch(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_ExecuteBatchError); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 460, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_4, __pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_ErrRestore(__pyx_t_4, __pyx_t_5, __pyx_t_6);
    __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0;
    if (__pyx_t_9) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.stream_unary", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_4) < 0) __PYX_ERR(34, 460, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_4);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":462
 *         except ExecuteBatchError:
 *             # Core should explain why this batch failed
 *             await self._handle_status_once_received()             # <<<<<<<<<<<<<<
 * 
 *             # Allow upper layer to proceed only if the status is set
 */
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_handle_status_once_received); if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 462, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = NULL;
      __pyx_t_8 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
          __pyx_t_8 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
        __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 462, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      }
      __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XGOTREF(__pyx_r);
      if (likely(__pyx_r)) {
        __Pyx_XGIVEREF(__pyx_t_1);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
        __Pyx_XGIVEREF(__pyx_t_2);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
        __Pyx_XGIVEREF(__pyx_t_3);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
        __Pyx_XGIVEREF(__pyx_t_4);
        __pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
        __Pyx_XGIVEREF(__pyx_t_5);
        __pyx_cur_scope->__pyx_t_4 = __pyx_t_5;
        __Pyx_XGIVEREF(__pyx_t_6);
        __pyx_cur_scope->__pyx_t_5 = __pyx_t_6;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_SwapException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 3;
        return __pyx_r;
        __pyx_L14_resume_from_await:;
        __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_1);
        __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_2);
        __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
        __pyx_cur_scope->__pyx_t_3 = 0;
        __Pyx_XGOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_cur_scope->__pyx_t_4;
        __pyx_cur_scope->__pyx_t_4 = 0;
        __Pyx_XGOTREF(__pyx_t_5);
        __pyx_t_6 = __pyx_cur_scope->__pyx_t_5;
        __pyx_cur_scope->__pyx_t_5 = 0;
        __Pyx_XGOTREF(__pyx_t_6);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 462, __pyx_L6_except_error)
      } else {
        PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
        if (exc_type) {
          if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
          else __PYX_ERR(34, 462, __pyx_L6_except_error)
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":465
 * 
 *             # Allow upper layer to proceed only if the status is set
 *             metadata_sent_observer()             # <<<<<<<<<<<<<<
 *             return None
 * 
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
      __pyx_t_10 = __pyx_cur_scope->__pyx_v_metadata_sent_observer; __pyx_t_11 = NULL;
      __pyx_t_8 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
          __pyx_t_8 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
        __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 465, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":466
 *             # Allow upper layer to proceed only if the status is set
 *             metadata_sent_observer()
 *             return None             # <<<<<<<<<<<<<<
 * 
 *         cdef tuple inbound_ops
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = NULL;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L7_except_return;
    }
    goto __pyx_L6_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":447
 *         Othersize, it would end normally and raise `StopAsyncIteration()`.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,
 */
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L9_try_end:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":469
 * 
 *         cdef tuple inbound_ops
 *         cdef ReceiveMessageOperation receive_message_op = ReceiveMessageOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation), __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_cur_scope->__pyx_v_receive_message_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":470
 *         cdef tuple inbound_ops
 *         cdef ReceiveMessageOperation receive_message_op = ReceiveMessageOperation(_EMPTY_FLAGS)
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 * 
 *         if context is not None:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation), __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_cur_scope->__pyx_v_receive_status_on_client_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":472
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 *         inbound_ops = (receive_message_op, receive_status_on_client_op)
 */
  __pyx_t_12 = (__pyx_cur_scope->__pyx_v_context != Py_None);
  if (__pyx_t_12) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":473
 * 
 *         if context is not None:
 *             set_instrumentation_context_on_call_aio(self, context)             # <<<<<<<<<<<<<<
 *         inbound_ops = (receive_message_op, receive_status_on_client_op)
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_set_instrumentation_context_on_c); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_6, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_context};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 2+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 473, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":472
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 *         inbound_ops = (receive_message_op, receive_status_on_client_op)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":474
 *         if context is not None:
 *             set_instrumentation_context_on_call_aio(self, context)
 *         inbound_ops = (receive_message_op, receive_status_on_client_op)             # <<<<<<<<<<<<<<
 * 
 *         # Executes all operations in one batch.
 */
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op))) __PYX_ERR(34, 474, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op))) __PYX_ERR(34, 474, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_cur_scope->__pyx_v_inbound_ops = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":477
 * 
 *         # Executes all operations in one batch.
 *         await execute_batch(self,             # <<<<<<<<<<<<<<
 *                             inbound_ops,
 *                             self._loop)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_execute_batch); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":479
 *         await execute_batch(self,
 *                             inbound_ops,
 *                             self._loop)             # <<<<<<<<<<<<<<
 * 
 *         cdef grpc_status_code code
 */
  __pyx_t_6 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_6, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_inbound_ops, __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 3+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 477, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 4;
    return __pyx_r;
    __pyx_L16_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 477, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(34, 477, __pyx_L1_error)
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":482
 * 
 *         cdef grpc_status_code code
 *         code = receive_status_on_client_op.code()             # <<<<<<<<<<<<<<
 * 
 *         self._set_status(AioRpcStatus(
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op), __pyx_n_s_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 482, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_13 = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 482, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_cur_scope->__pyx_v_code = __pyx_t_13;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":485
 * 
 *         self._set_status(AioRpcStatus(
 *             code,             # <<<<<<<<<<<<<<
 *             receive_status_on_client_op.details(),
 *             receive_status_on_client_op.trailing_metadata(),
 */
  __pyx_t_4 = __Pyx_PyInt_From_grpc_status_code(__pyx_cur_scope->__pyx_v_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":486
 *         self._set_status(AioRpcStatus(
 *             code,
 *             receive_status_on_client_op.details(),             # <<<<<<<<<<<<<<
 *             receive_status_on_client_op.trailing_metadata(),
 *             receive_status_on_client_op.error_string(),
 */
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op), __pyx_n_s_details); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 486, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":487
 *             code,
 *             receive_status_on_client_op.details(),
 *             receive_status_on_client_op.trailing_metadata(),             # <<<<<<<<<<<<<<
 *             receive_status_on_client_op.error_string(),
 *         ))
 */
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op), __pyx_n_s_trailing_metadata); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_10 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL};
    __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 487, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":488
 *             receive_status_on_client_op.details(),
 *             receive_status_on_client_op.trailing_metadata(),
 *             receive_status_on_client_op.error_string(),             # <<<<<<<<<<<<<<
 *         ))
 * 
 */
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op), __pyx_n_s_error_string); if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_10))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_10, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
    __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 488, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":484
 *         code = receive_status_on_client_op.code()
 * 
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             code,
 *             receive_status_on_client_op.details(),
 */
  __pyx_t_10 = PyTuple_New(4); if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_4)) __PYX_ERR(34, 484, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_5)) __PYX_ERR(34, 484, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_6)) __PYX_ERR(34, 484, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 3, __pyx_t_7)) __PYX_ERR(34, 484, __pyx_L1_error);
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus), __pyx_t_10, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_set_status(__pyx_cur_scope->__pyx_v_self, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_t_7)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 484, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":491
 *         ))
 * 
 *         if code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *             return receive_message_op.message()
 *         else:
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(__pyx_cur_scope->__pyx_v_code); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_ok); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = PyObject_RichCompare(__pyx_t_7, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 491, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(34, 491, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (__pyx_t_12) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":492
 * 
 *         if code == StatusCode.ok:
 *             return receive_message_op.message()             # <<<<<<<<<<<<<<
 *         else:
 *             return None
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op), __pyx_n_s_message); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 492, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
      __pyx_t_10 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 492, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":491
 *         ))
 * 
 *         if code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *             return receive_message_op.message()
 *         else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":494
 *             return receive_message_op.message()
 *         else:
 *             return None             # <<<<<<<<<<<<<<
 * 
 *     async def initiate_stream_stream(self,
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL;
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":437
 *             await status_task
 * 
 *     async def stream_unary(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("stream_unary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_55generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":496
 *             return None
 * 
 *     async def initiate_stream_stream(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_54initiate_stream_stream(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_53initiate_stream_stream, "Actual implementation of the complete stream-stream call.\n\n        Needs to pay extra attention to the raise mechanism. If we want to\n        propagate the final status exception, then we have to raise it.\n        Othersize, it would end normally and raise `StopAsyncIteration()`.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_54initiate_stream_stream = {"initiate_stream_stream", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_54initiate_stream_stream, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_53initiate_stream_stream};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_54initiate_stream_stream(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_outbound_initial_metadata = 0;
  PyObject *__pyx_v_metadata_sent_observer = 0;
  PyObject *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initiate_stream_stream (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_outbound_initial_metadata,&__pyx_n_s_metadata_sent_observer,&__pyx_n_s_context,0};

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":499
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 *                            object context = None):             # <<<<<<<<<<<<<<
 *         """Actual implementation of the complete stream-stream call.
 * 
 */
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_outbound_initial_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 496, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_metadata_sent_observer)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 496, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("initiate_stream_stream", 0, 2, 3, 1); __PYX_ERR(34, 496, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_context);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 496, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "initiate_stream_stream") < 0)) __PYX_ERR(34, 496, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_outbound_initial_metadata = ((PyObject*)values[0]);
    __pyx_v_metadata_sent_observer = values[1];
    __pyx_v_context = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("initiate_stream_stream", 0, 2, 3, __pyx_nargs); __PYX_ERR(34, 496, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.initiate_stream_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outbound_initial_metadata), (&PyTuple_Type), 1, "outbound_initial_metadata", 1))) __PYX_ERR(34, 497, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_53initiate_stream_stream(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_outbound_initial_metadata, __pyx_v_metadata_sent_observer, __pyx_v_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":496
 *             return None
 * 
 *     async def initiate_stream_stream(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_53initiate_stream_stream(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_metadata_sent_observer, PyObject *__pyx_v_context) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("initiate_stream_stream", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 496, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_outbound_initial_metadata = __pyx_v_outbound_initial_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __pyx_cur_scope->__pyx_v_metadata_sent_observer = __pyx_v_metadata_sent_observer;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
  __pyx_cur_scope->__pyx_v_context = __pyx_v_context;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_context);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_context);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_55generator17, __pyx_codeobj__68, (PyObject *) __pyx_cur_scope, __pyx_n_s_initiate_stream_stream, __pyx_n_s_AioCall_initiate_stream_stream, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 496, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.initiate_stream_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_55generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  char const *__pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initiate_stream_stream", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L11_resume_from_await;
    case 2: goto __pyx_L12_resume_from_await;
    case 3: goto __pyx_L20_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 496, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":508
 *         # Peer may prematurely end this RPC at any point. We need a corutine
 *         # that watches if the server sends the final status.
 *         status_task = self._loop.create_task(self._handle_status_once_received())             # <<<<<<<<<<<<<<
 * 
 *         if context is not None:
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->_loop, __pyx_n_s_create_task); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_handle_status_once_received); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 508, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 508, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_status_task = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":510
 *         status_task = self._loop.create_task(self._handle_status_once_received())
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 * 
 */
  __pyx_t_7 = (__pyx_cur_scope->__pyx_v_context != Py_None);
  if (__pyx_t_7) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":511
 * 
 *         if context is not None:
 *             set_instrumentation_context_on_call_aio(self, context)             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_set_instrumentation_context_on_c); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 511, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_context};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 511, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":510
 *         status_task = self._loop.create_task(self._handle_status_once_received())
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":513
 *             set_instrumentation_context_on_call_aio(self, context)
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_10);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":515
 *         try:
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,             # <<<<<<<<<<<<<<
 *                                         outbound_initial_metadata,
 *                                         self._send_initial_metadata_flags,
 */
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_send_initial_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 515, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_2);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":517
 *             await _send_initial_metadata(self,
 *                                         outbound_initial_metadata,
 *                                         self._send_initial_metadata_flags,             # <<<<<<<<<<<<<<
 *                                         self._loop)
 *             # Notify upper level that sending messages are allowed now.
 */
      __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_self->_send_initial_metadata_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 517, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_3);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":518
 *                                         outbound_initial_metadata,
 *                                         self._send_initial_metadata_flags,
 *                                         self._loop)             # <<<<<<<<<<<<<<
 *             # Notify upper level that sending messages are allowed now.
 *             metadata_sent_observer()
 */
      __pyx_t_4 = NULL;
      __pyx_t_6 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_6 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[5] = {__pyx_t_4, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_outbound_initial_metadata, __pyx_t_3, __pyx_cur_scope->__pyx_v_self->_loop};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 4+__pyx_t_6);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 515, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XGOTREF(__pyx_r);
      if (likely(__pyx_r)) {
        __Pyx_XGIVEREF(__pyx_t_8);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_8;
        __Pyx_XGIVEREF(__pyx_t_9);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
        __Pyx_XGIVEREF(__pyx_t_10);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 1;
        return __pyx_r;
        __pyx_L11_resume_from_await:;
        __pyx_t_8 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_8);
        __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_9);
        __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_10);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 515, __pyx_L5_error)
      } else {
        PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
        if (exc_type) {
          if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
          else __PYX_ERR(34, 515, __pyx_L5_error)
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":520
 *                                         self._loop)
 *             # Notify upper level that sending messages are allowed now.
 *             metadata_sent_observer()             # <<<<<<<<<<<<<<
 * 
 *             # Receives initial metadata.
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_metadata_sent_observer; __pyx_t_3 = NULL;
      __pyx_t_6 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_6 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 520, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":524
 *             # Receives initial metadata.
 *             self._set_initial_metadata(
 *                 await _receive_initial_metadata(self, self._loop)             # <<<<<<<<<<<<<<
 *             )
 *         except ExecuteBatchError as batch_error:
 */
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_receive_initial_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 524, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = NULL;
      __pyx_t_6 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_6 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_self->_loop};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 524, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XGOTREF(__pyx_r);
      if (likely(__pyx_r)) {
        __Pyx_XGIVEREF(__pyx_t_8);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_8;
        __Pyx_XGIVEREF(__pyx_t_9);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
        __Pyx_XGIVEREF(__pyx_t_10);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 2;
        return __pyx_r;
        __pyx_L12_resume_from_await:;
        __pyx_t_8 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_8);
        __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_9);
        __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_10);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 524, __pyx_L5_error)
        __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
      } else {
        __pyx_t_1 = NULL;
        if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(34, 524, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(34, 524, __pyx_L5_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":523
 * 
 *             # Receives initial metadata.
 *             self._set_initial_metadata(             # <<<<<<<<<<<<<<
 *                 await _receive_initial_metadata(self, self._loop)
 *             )
 */
      ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_set_initial_metadata(__pyx_cur_scope->__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 523, __pyx_L5_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":513
 *             set_instrumentation_context_on_call_aio(self, context)
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,
 */
    }
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    goto __pyx_L10_try_end;
    __pyx_L5_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":526
 *                 await _receive_initial_metadata(self, self._loop)
 *             )
 *         except ExecuteBatchError as batch_error:             # <<<<<<<<<<<<<<
 *             # Core should explain why this batch failed
 *             await status_task
 */
    __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ExecuteBatchError); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 526, __pyx_L7_except_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_11 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_ErrRestore(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0;
    if (__pyx_t_11) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.initiate_stream_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1) < 0) __PYX_ERR(34, 526, __pyx_L7_except_error)
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_cur_scope->__pyx_v_batch_error = __pyx_t_2;
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":528
 *         except ExecuteBatchError as batch_error:
 *             # Core should explain why this batch failed
 *             await status_task             # <<<<<<<<<<<<<<
 * 
 *             # Allow upper layer to proceed only if the status is set
 */
        __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_status_task);
        __Pyx_XGOTREF(__pyx_r);
        if (likely(__pyx_r)) {
          __Pyx_XGIVEREF(__pyx_t_1);
          __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
          __Pyx_XGIVEREF(__pyx_t_2);
          __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
          __Pyx_XGIVEREF(__pyx_t_3);
          __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
          __Pyx_XGIVEREF(__pyx_t_8);
          __pyx_cur_scope->__pyx_t_3 = __pyx_t_8;
          __Pyx_XGIVEREF(__pyx_t_9);
          __pyx_cur_scope->__pyx_t_4 = __pyx_t_9;
          __Pyx_XGIVEREF(__pyx_t_10);
          __pyx_cur_scope->__pyx_t_5 = __pyx_t_10;
          __Pyx_XGIVEREF(__pyx_r);
          __Pyx_RefNannyFinishContext();
          __Pyx_Coroutine_SwapException(__pyx_generator);
          /* return from generator, awaiting value */
          __pyx_generator->resume_label = 3;
          return __pyx_r;
          __pyx_L20_resume_from_await:;
          __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
          __pyx_cur_scope->__pyx_t_0 = 0;
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
          __pyx_cur_scope->__pyx_t_1 = 0;
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
          __pyx_cur_scope->__pyx_t_2 = 0;
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_8 = __pyx_cur_scope->__pyx_t_3;
          __pyx_cur_scope->__pyx_t_3 = 0;
          __Pyx_XGOTREF(__pyx_t_8);
          __pyx_t_9 = __pyx_cur_scope->__pyx_t_4;
          __pyx_cur_scope->__pyx_t_4 = 0;
          __Pyx_XGOTREF(__pyx_t_9);
          __pyx_t_10 = __pyx_cur_scope->__pyx_t_5;
          __pyx_cur_scope->__pyx_t_5 = 0;
          __Pyx_XGOTREF(__pyx_t_10);
          if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 528, __pyx_L18_error)
        } else {
          PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
          if (exc_type) {
            if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
            else __PYX_ERR(34, 528, __pyx_L18_error)
          }
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":531
 * 
 *             # Allow upper layer to proceed only if the status is set
 *             metadata_sent_observer()             # <<<<<<<<<<<<<<
 */
        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
        __pyx_t_5 = __pyx_cur_scope->__pyx_v_metadata_sent_observer; __pyx_t_12 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_12)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_12);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_12, NULL};
          __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 531, __pyx_L18_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":526
 *                 await _receive_initial_metadata(self, self._loop)
 *             )
 *         except ExecuteBatchError as batch_error:             # <<<<<<<<<<<<<<
 *             # Core should explain why this batch failed
 *             await status_task
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_batch_error);
          __Pyx_DECREF(__pyx_cur_scope->__pyx_v_batch_error); __pyx_cur_scope->__pyx_v_batch_error = 0;
          goto __pyx_L19;
        }
        __pyx_L18_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_assign
          __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0)) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __pyx_t_11 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename;
          {
            __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_batch_error);
            __Pyx_DECREF(__pyx_cur_scope->__pyx_v_batch_error); __pyx_cur_scope->__pyx_v_batch_error = 0;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_18);
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_XGIVEREF(__pyx_t_20);
            __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
          }
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_ErrRestore(__pyx_t_15, __pyx_t_16, __pyx_t_17);
          __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
          __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_14;
          goto __pyx_L7_except_error;
        }
        __pyx_L19:;
      }
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L6_exception_handled;
    }
    goto __pyx_L7_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":513
 *             set_instrumentation_context_on_call_aio(self, context)
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,
 */
    __pyx_L7_except_error:;
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
    goto __pyx_L1_error;
    __pyx_L6_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
    __pyx_L10_try_end:;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":496
 *             return None
 * 
 *     async def initiate_stream_stream(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("initiate_stream_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pxd.pxi":18
 * cdef class _AioCall(GrpcCallWrapper):
 *     cdef:
 *         readonly AioChannel _channel             # <<<<<<<<<<<<<<
 *         list _references
 *         object _deadline
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_8_channel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_8_channel_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_8_channel___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_8_channel___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_channel);
  __pyx_r = ((PyObject *)__pyx_v_self->_channel);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pxd.pxi":38
 *         # tasks that are asking for one of the field when they are not yet
 *         # available.
 *         readonly AioRpcStatus _status             # <<<<<<<<<<<<<<
 *         readonly tuple _initial_metadata
 *         list _waiters_status
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7_status_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7_status_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_7_status___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_7_status___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_status);
  __pyx_r = ((PyObject *)__pyx_v_self->_status);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pxd.pxi":39
 *         # available.
 *         readonly AioRpcStatus _status
 *         readonly tuple _initial_metadata             # <<<<<<<<<<<<<<
 *         list _waiters_status
 *         list _waiters_initial_metadata
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_17_initial_metadata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_17_initial_metadata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_17_initial_metadata___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_17_initial_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_initial_metadata);
  __pyx_r = __pyx_v_self->_initial_metadata;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_57__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_57__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_57__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_57__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_56__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_56__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_59__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_59__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_59__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_59__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_58__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_58__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":29
 * 
 * cdef class AioChannel:
 *     def __cinit__(self, bytes target, tuple options, ChannelCredentials credentials, object loop):             # <<<<<<<<<<<<<<
 *         init_grpc_aio()
 *         if options is None:
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_target = 0;
  PyObject *__pyx_v_options = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_credentials = 0;
  PyObject *__pyx_v_loop = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_target,&__pyx_n_s_options,&__pyx_n_s_credentials,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_target)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 29, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_options)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 29, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 1); __PYX_ERR(8, 29, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_credentials)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 29, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 2); __PYX_ERR(8, 29, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 29, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 3); __PYX_ERR(8, 29, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(8, 29, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
      values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
    }
    __pyx_v_target = ((PyObject*)values[0]);
    __pyx_v_options = ((PyObject*)values[1]);
    __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)values[2]);
    __pyx_v_loop = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, __pyx_nargs); __PYX_ERR(8, 29, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_target), (&PyBytes_Type), 1, "target", 1))) __PYX_ERR(8, 29, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_options), (&PyTuple_Type), 1, "options", 1))) __PYX_ERR(8, 29, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_credentials), __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, 1, "credentials", 0))) __PYX_ERR(8, 29, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self), __pyx_v_target, __pyx_v_options, __pyx_v_credentials, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_options, struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_credentials, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_channel_args = 0;
  grpc_channel_credentials *__pyx_v_creds;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  char *__pyx_t_3;
  grpc_channel_args *__pyx_t_4;
  grpc_channel_credentials *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_INCREF(__pyx_v_options);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":30
 * cdef class AioChannel:
 *     def __cinit__(self, bytes target, tuple options, ChannelCredentials credentials, object loop):
 *         init_grpc_aio()             # <<<<<<<<<<<<<<
 *         if options is None:
 *             options = ()
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":31
 *     def __cinit__(self, bytes target, tuple options, ChannelCredentials credentials, object loop):
 *         init_grpc_aio()
 *         if options is None:             # <<<<<<<<<<<<<<
 *             options = ()
 *         cdef _ChannelArgs channel_args = _ChannelArgs(options)
 */
  __pyx_t_2 = (__pyx_v_options == ((PyObject*)Py_None));
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":32
 *         init_grpc_aio()
 *         if options is None:
 *             options = ()             # <<<<<<<<<<<<<<
 *         cdef _ChannelArgs channel_args = _ChannelArgs(options)
 *         self._target = target
 */
    __Pyx_INCREF(__pyx_empty_tuple);
    __Pyx_DECREF_SET(__pyx_v_options, __pyx_empty_tuple);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":31
 *     def __cinit__(self, bytes target, tuple options, ChannelCredentials credentials, object loop):
 *         init_grpc_aio()
 *         if options is None:             # <<<<<<<<<<<<<<
 *             options = ()
 *         cdef _ChannelArgs channel_args = _ChannelArgs(options)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":33
 *         if options is None:
 *             options = ()
 *         cdef _ChannelArgs channel_args = _ChannelArgs(options)             # <<<<<<<<<<<<<<
 *         self._target = target
 *         self.loop = loop
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs), __pyx_v_options); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_channel_args = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":34
 *             options = ()
 *         cdef _ChannelArgs channel_args = _ChannelArgs(options)
 *         self._target = target             # <<<<<<<<<<<<<<
 *         self.loop = loop
 *         self._status = AIO_CHANNEL_STATUS_READY
 */
  __Pyx_INCREF(__pyx_v_target);
  __Pyx_GIVEREF(__pyx_v_target);
  __Pyx_GOTREF(__pyx_v_self->_target);
  __Pyx_DECREF(__pyx_v_self->_target);
  __pyx_v_self->_target = __pyx_v_target;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":35
 *         cdef _ChannelArgs channel_args = _ChannelArgs(options)
 *         self._target = target
 *         self.loop = loop             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_READY
 * 
 */
  __Pyx_INCREF(__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_v_loop);
  __Pyx_GOTREF(__pyx_v_self->loop);
  __Pyx_DECREF(__pyx_v_self->loop);
  __pyx_v_self->loop = __pyx_v_loop;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":36
 *         self._target = target
 *         self.loop = loop
 *         self._status = AIO_CHANNEL_STATUS_READY             # <<<<<<<<<<<<<<
 * 
 *         if credentials is None:
 */
  __pyx_v_self->_status = __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_READY;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":38
 *         self._status = AIO_CHANNEL_STATUS_READY
 * 
 *         if credentials is None:             # <<<<<<<<<<<<<<
 *             self._is_secure = False
 *             creds = grpc_insecure_credentials_create();
 */
  __pyx_t_2 = (((PyObject *)__pyx_v_credentials) == Py_None);
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":39
 * 
 *         if credentials is None:
 *             self._is_secure = False             # <<<<<<<<<<<<<<
 *             creds = grpc_insecure_credentials_create();
 *             self.channel = grpc_channel_create(<char *>target,
 */
    __pyx_v_self->_is_secure = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":40
 *         if credentials is None:
 *             self._is_secure = False
 *             creds = grpc_insecure_credentials_create();             # <<<<<<<<<<<<<<
 *             self.channel = grpc_channel_create(<char *>target,
 *                 creds,
 */
    __pyx_v_creds = grpc_insecure_credentials_create();

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":41
 *             self._is_secure = False
 *             creds = grpc_insecure_credentials_create();
 *             self.channel = grpc_channel_create(<char *>target,             # <<<<<<<<<<<<<<
 *                 creds,
 *                 channel_args.c_args())
 */
    if (unlikely(__pyx_v_target == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
      __PYX_ERR(8, 41, __pyx_L1_error)
    }
    __pyx_t_3 = __Pyx_PyBytes_AsWritableString(__pyx_v_target); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(8, 41, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":43
 *             self.channel = grpc_channel_create(<char *>target,
 *                 creds,
 *                 channel_args.c_args())             # <<<<<<<<<<<<<<
 *             grpc_channel_credentials_release(creds)
 *         else:
 */
    __pyx_t_4 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_channel_args->__pyx_vtab)->c_args(__pyx_v_channel_args); if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 43, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":41
 *             self._is_secure = False
 *             creds = grpc_insecure_credentials_create();
 *             self.channel = grpc_channel_create(<char *>target,             # <<<<<<<<<<<<<<
 *                 creds,
 *                 channel_args.c_args())
 */
    __pyx_v_self->channel = grpc_channel_create(((char *)__pyx_t_3), __pyx_v_creds, __pyx_t_4);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":44
 *                 creds,
 *                 channel_args.c_args())
 *             grpc_channel_credentials_release(creds)             # <<<<<<<<<<<<<<
 *         else:
 *             self._is_secure = True
 */
    grpc_channel_credentials_release(__pyx_v_creds);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":38
 *         self._status = AIO_CHANNEL_STATUS_READY
 * 
 *         if credentials is None:             # <<<<<<<<<<<<<<
 *             self._is_secure = False
 *             creds = grpc_insecure_credentials_create();
 */
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":46
 *             grpc_channel_credentials_release(creds)
 *         else:
 *             self._is_secure = True             # <<<<<<<<<<<<<<
 *             creds = <grpc_channel_credentials *> credentials.c()
 *             self.channel = grpc_channel_create(<char *>target,
 */
  /*else*/ {
    __pyx_v_self->_is_secure = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":47
 *         else:
 *             self._is_secure = True
 *             creds = <grpc_channel_credentials *> credentials.c()             # <<<<<<<<<<<<<<
 *             self.channel = grpc_channel_create(<char *>target,
 *                 creds,
 */
    __pyx_t_5 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_v_credentials->__pyx_vtab)->c(__pyx_v_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 47, __pyx_L1_error)
    __pyx_v_creds = ((grpc_channel_credentials *)__pyx_t_5);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":48
 *             self._is_secure = True
 *             creds = <grpc_channel_credentials *> credentials.c()
 *             self.channel = grpc_channel_create(<char *>target,             # <<<<<<<<<<<<<<
 *                 creds,
 *                 channel_args.c_args())
 */
    if (unlikely(__pyx_v_target == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
      __PYX_ERR(8, 48, __pyx_L1_error)
    }
    __pyx_t_3 = __Pyx_PyBytes_AsWritableString(__pyx_v_target); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(8, 48, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":50
 *             self.channel = grpc_channel_create(<char *>target,
 *                 creds,
 *                 channel_args.c_args())             # <<<<<<<<<<<<<<
 *             grpc_channel_credentials_release(creds)
 * 
 */
    __pyx_t_4 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_channel_args->__pyx_vtab)->c_args(__pyx_v_channel_args); if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 50, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":48
 *             self._is_secure = True
 *             creds = <grpc_channel_credentials *> credentials.c()
 *             self.channel = grpc_channel_create(<char *>target,             # <<<<<<<<<<<<<<
 *                 creds,
 *                 channel_args.c_args())
 */
    __pyx_v_self->channel = grpc_channel_create(((char *)__pyx_t_3), __pyx_v_creds, __pyx_t_4);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":51
 *                 creds,
 *                 channel_args.c_args())
 *             grpc_channel_credentials_release(creds)             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
    grpc_channel_credentials_release(__pyx_v_creds);
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":29
 * 
 * cdef class AioChannel:
 *     def __cinit__(self, bytes target, tuple options, ChannelCredentials credentials, object loop):             # <<<<<<<<<<<<<<
 *         init_grpc_aio()
 *         if options is None:
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_channel_args);
  __Pyx_XDECREF(__pyx_v_options);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":53
 *             grpc_channel_credentials_release(creds)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         shutdown_grpc_aio()
 * 
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_2__dealloc__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":54
 * 
 *     def __dealloc__(self):
 *         shutdown_grpc_aio()             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":53
 *             grpc_channel_credentials_release(creds)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         shutdown_grpc_aio()
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.AioChannel.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":56
 *         shutdown_grpc_aio()
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         class_name = self.__class__.__name__
 *         id_ = id(self)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_5__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_4__repr__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_4__repr__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self) {
  PyObject *__pyx_v_class_name = NULL;
  PyObject *__pyx_v_id_ = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_UCS4 __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":57
 * 
 *     def __repr__(self):
 *         class_name = self.__class__.__name__             # <<<<<<<<<<<<<<
 *         id_ = id(self)
 *         return f"<{class_name} {id_}>"
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_class_name = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":58
 *     def __repr__(self):
 *         class_name = self.__class__.__name__
 *         id_ = id(self)             # <<<<<<<<<<<<<<
 *         return f"<{class_name} {id_}>"
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_id_ = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":59
 *         class_name = self.__class__.__name__
 *         id_ = id(self)
 *         return f"<{class_name} {id_}>"             # <<<<<<<<<<<<<<
 * 
 *     def check_connectivity_state(self, bint try_to_connect):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = 0;
  __pyx_t_4 = 127;
  __Pyx_INCREF(__pyx_kp_u__69);
  __pyx_t_3 += 1;
  __Pyx_GIVEREF(__pyx_kp_u__69);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u__69);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_class_name, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_4;
  __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __pyx_t_1 = 0;
  __Pyx_INCREF(__pyx_kp_u__70);
  __pyx_t_3 += 1;
  __Pyx_GIVEREF(__pyx_kp_u__70);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u__70);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_id_, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_4;
  __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __Pyx_INCREF(__pyx_kp_u__71);
  __pyx_t_3 += 1;
  __Pyx_GIVEREF(__pyx_kp_u__71);
  PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u__71);
  __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_2, 5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":56
 *         shutdown_grpc_aio()
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         class_name = self.__class__.__name__
 *         id_ = id(self)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_class_name);
  __Pyx_XDECREF(__pyx_v_id_);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":61
 *         return f"<{class_name} {id_}>"
 * 
 *     def check_connectivity_state(self, bint try_to_connect):             # <<<<<<<<<<<<<<
 *         """A Cython wrapper for Core's check connectivity state API."""
 *         if self._status == AIO_CHANNEL_STATUS_DESTROYED:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_7check_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_6check_connectivity_state, "A Cython wrapper for Core's check connectivity state API.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_7check_connectivity_state = {"check_connectivity_state", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_7check_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_6check_connectivity_state};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_7check_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_try_to_connect;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("check_connectivity_state (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_try_to_connect,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_try_to_connect)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 61, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "check_connectivity_state") < 0)) __PYX_ERR(8, 61, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_try_to_connect = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_try_to_connect == (int)-1) && PyErr_Occurred())) __PYX_ERR(8, 61, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("check_connectivity_state", 1, 1, 1, __pyx_nargs); __PYX_ERR(8, 61, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.check_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_6check_connectivity_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self), __pyx_v_try_to_connect);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_6check_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, int __pyx_v_try_to_connect) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("check_connectivity_state", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":63
 *     def check_connectivity_state(self, bint try_to_connect):
 *         """A Cython wrapper for Core's check connectivity state API."""
 *         if self._status == AIO_CHANNEL_STATUS_DESTROYED:             # <<<<<<<<<<<<<<
 *             return ConnectivityState.shutdown
 *         else:
 */
  __pyx_t_1 = (__pyx_v_self->_status == __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_DESTROYED);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":64
 *         """A Cython wrapper for Core's check connectivity state API."""
 *         if self._status == AIO_CHANNEL_STATUS_DESTROYED:
 *             return ConnectivityState.shutdown             # <<<<<<<<<<<<<<
 *         else:
 *             return grpc_channel_check_connectivity_state(
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ConnectivityState); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 64, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_shutdown); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 64, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":63
 *     def check_connectivity_state(self, bint try_to_connect):
 *         """A Cython wrapper for Core's check connectivity state API."""
 *         if self._status == AIO_CHANNEL_STATUS_DESTROYED:             # <<<<<<<<<<<<<<
 *             return ConnectivityState.shutdown
 *         else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":66
 *             return ConnectivityState.shutdown
 *         else:
 *             return grpc_channel_check_connectivity_state(             # <<<<<<<<<<<<<<
 *                 self.channel,
 *                 try_to_connect,
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":68
 *             return grpc_channel_check_connectivity_state(
 *                 self.channel,
 *                 try_to_connect,             # <<<<<<<<<<<<<<
 *             )
 * 
 */
    __pyx_t_3 = __Pyx_PyInt_From_grpc_connectivity_state(grpc_channel_check_connectivity_state(__pyx_v_self->channel, __pyx_v_try_to_connect)); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 66, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":61
 *         return f"<{class_name} {id_}>"
 * 
 *     def check_connectivity_state(self, bint try_to_connect):             # <<<<<<<<<<<<<<
 *         """A Cython wrapper for Core's check connectivity state API."""
 *         if self._status == AIO_CHANNEL_STATUS_DESTROYED:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.check_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_10AioChannel_10generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":71
 *             )
 * 
 *     async def watch_connectivity_state(self,             # <<<<<<<<<<<<<<
 *                                        grpc_connectivity_state last_observed_state,
 *                                        object deadline):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_9watch_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_8watch_connectivity_state, "Watch for one connectivity state change.\n\n        Keeps mirroring the behavior from Core, so we can easily switch to\n        other design of API if necessary.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_9watch_connectivity_state = {"watch_connectivity_state", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_9watch_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_8watch_connectivity_state};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_9watch_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_connectivity_state __pyx_v_last_observed_state;
  PyObject *__pyx_v_deadline = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("watch_connectivity_state (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_last_observed_state,&__pyx_n_s_deadline,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_last_observed_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 71, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_deadline)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 71, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("watch_connectivity_state", 1, 2, 2, 1); __PYX_ERR(8, 71, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "watch_connectivity_state") < 0)) __PYX_ERR(8, 71, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_last_observed_state = ((grpc_connectivity_state)__Pyx_PyInt_As_grpc_connectivity_state(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 72, __pyx_L3_error)
    __pyx_v_deadline = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("watch_connectivity_state", 1, 2, 2, __pyx_nargs); __PYX_ERR(8, 71, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_8watch_connectivity_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self), __pyx_v_last_observed_state, __pyx_v_deadline);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_8watch_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, grpc_connectivity_state __pyx_v_last_observed_state, PyObject *__pyx_v_deadline) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("watch_connectivity_state", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(8, 71, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_last_observed_state = __pyx_v_last_observed_state;
  __pyx_cur_scope->__pyx_v_deadline = __pyx_v_deadline;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_deadline);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_deadline);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_10AioChannel_10generator18, __pyx_codeobj__72, (PyObject *) __pyx_cur_scope, __pyx_n_s_watch_connectivity_state, __pyx_n_s_AioChannel_watch_connectivity_st, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(8, 71, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_10AioChannel_10generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  gpr_timespec __pyx_t_5;
  grpc_completion_queue *__pyx_t_6;
  grpc_completion_queue_functor *__pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("watch_connectivity_state", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L10_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(8, 71, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":79
 *         other design of API if necessary.
 *         """
 *         if self._status in (AIO_CHANNEL_STATUS_DESTROYED, AIO_CHANNEL_STATUS_CLOSING):             # <<<<<<<<<<<<<<
 *             raise UsageError('Channel is closed.')
 * 
 */
  switch (__pyx_cur_scope->__pyx_v_self->_status) {
    case __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_DESTROYED:
    case __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_CLOSING:

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":80
 *         """
 *         if self._status in (AIO_CHANNEL_STATUS_DESTROYED, AIO_CHANNEL_STATUS_CLOSING):
 *             raise UsageError('Channel is closed.')             # <<<<<<<<<<<<<<
 * 
 *         cdef gpr_timespec c_deadline = _timespec_from_time(deadline)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_UsageError); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_s_Channel_is_closed};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 80, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(8, 80, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":79
 *         other design of API if necessary.
 *         """
 *         if self._status in (AIO_CHANNEL_STATUS_DESTROYED, AIO_CHANNEL_STATUS_CLOSING):             # <<<<<<<<<<<<<<
 *             raise UsageError('Channel is closed.')
 * 
 */
    break;
    default: break;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":82
 *             raise UsageError('Channel is closed.')
 * 
 *         cdef gpr_timespec c_deadline = _timespec_from_time(deadline)             # <<<<<<<<<<<<<<
 * 
 *         cdef object future = self.loop.create_future()
 */
  __pyx_t_5 = __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(__pyx_cur_scope->__pyx_v_deadline); if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 82, __pyx_L1_error)
  __pyx_cur_scope->__pyx_v_c_deadline = __pyx_t_5;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":84
 *         cdef gpr_timespec c_deadline = _timespec_from_time(deadline)
 * 
 *         cdef object future = self.loop.create_future()             # <<<<<<<<<<<<<<
 *         cdef CallbackWrapper wrapper = CallbackWrapper(
 *             future,
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->loop, __pyx_n_s_create_future); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_future = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":85
 * 
 *         cdef object future = self.loop.create_future()
 *         cdef CallbackWrapper wrapper = CallbackWrapper(             # <<<<<<<<<<<<<<
 *             future,
 *             self.loop,
 */
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_future);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_future);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_future)) __PYX_ERR(8, 85, __pyx_L1_error);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self->loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self->loop);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_cur_scope->__pyx_v_self->loop)) __PYX_ERR(8, 85, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc__WATCH_CONNECTIVITY_FAILURE_HANDLER);
  __Pyx_GIVEREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc__WATCH_CONNECTIVITY_FAILURE_HANDLER);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc__WATCH_CONNECTIVITY_FAILURE_HANDLER))) __PYX_ERR(8, 85, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":93
 *             last_observed_state,
 *             c_deadline,
 *             global_completion_queue(),             # <<<<<<<<<<<<<<
 *             wrapper.c_functor())
 * 
 */
  __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(); if (unlikely(__pyx_t_6 == ((grpc_completion_queue *)NULL) && PyErr_Occurred())) __PYX_ERR(8, 93, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":94
 *             c_deadline,
 *             global_completion_queue(),
 *             wrapper.c_functor())             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
  __pyx_t_7 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_cur_scope->__pyx_v_wrapper->__pyx_vtab)->c_functor(__pyx_cur_scope->__pyx_v_wrapper); if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 94, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":89
 *             self.loop,
 *             _WATCH_CONNECTIVITY_FAILURE_HANDLER)
 *         grpc_channel_watch_connectivity_state(             # <<<<<<<<<<<<<<
 *             self.channel,
 *             last_observed_state,
 */
  grpc_channel_watch_connectivity_state(__pyx_cur_scope->__pyx_v_self->channel, __pyx_cur_scope->__pyx_v_last_observed_state, __pyx_cur_scope->__pyx_v_c_deadline, __pyx_t_6, __pyx_t_7);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":96
 *             wrapper.c_functor())
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             await future
 *         except _WatchConnectivityFailed:
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_10);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":97
 * 
 *         try:
 *             await future             # <<<<<<<<<<<<<<
 *         except _WatchConnectivityFailed:
 *             return False
 */
      __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_future);
      __Pyx_XGOTREF(__pyx_r);
      if (likely(__pyx_r)) {
        __Pyx_XGIVEREF(__pyx_t_8);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_8;
        __Pyx_XGIVEREF(__pyx_t_9);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
        __Pyx_XGIVEREF(__pyx_t_10);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 1;
        return __pyx_r;
        __pyx_L10_resume_from_await:;
        __pyx_t_8 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_8);
        __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_9);
        __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_10);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(8, 97, __pyx_L4_error)
      } else {
        PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
        if (exc_type) {
          if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
          else __PYX_ERR(8, 97, __pyx_L4_error)
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":96
 *             wrapper.c_functor())
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             await future
 *         except _WatchConnectivityFailed:
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":101
 *             return False
 *         else:
 *             return True             # <<<<<<<<<<<<<<
 * 
 *     def closing(self):
 */
    /*else:*/ {
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = NULL; __Pyx_ReturnWithStopIteration(Py_True);
      goto __pyx_L7_except_return;
    }
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":98
 *         try:
 *             await future
 *         except _WatchConnectivityFailed:             # <<<<<<<<<<<<<<
 *             return False
 *         else:
 */
    __Pyx_ErrFetch(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3);
    __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_WatchConnectivityFailed); if (unlikely(!__pyx_t_11)) __PYX_ERR(8, 98, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_2, __pyx_t_11);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_ErrRestore(__pyx_t_2, __pyx_t_1, __pyx_t_3);
    __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0;
    if (__pyx_t_12) {
      __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(8, 98, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_XGOTREF(__pyx_t_2);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":99
 *             await future
 *         except _WatchConnectivityFailed:
 *             return False             # <<<<<<<<<<<<<<
 *         else:
 *             return True
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = NULL; __Pyx_ReturnWithStopIteration(Py_False);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L7_except_return;
    }
    goto __pyx_L6_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":96
 *             wrapper.c_functor())
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             await future
 *         except _WatchConnectivityFailed:
 */
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
    goto __pyx_L1_error;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":71
 *             )
 * 
 *     async def watch_connectivity_state(self,             # <<<<<<<<<<<<<<
 *                                        grpc_connectivity_state last_observed_state,
 *                                        object deadline):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":103
 *             return True
 * 
 *     def closing(self):             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_CLOSING
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_12closing(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_12closing = {"closing", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_12closing, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_12closing(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("closing (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("closing", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "closing", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_11closing(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_11closing(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("closing", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":104
 * 
 *     def closing(self):
 *         self._status = AIO_CHANNEL_STATUS_CLOSING             # <<<<<<<<<<<<<<
 * 
 *     def close(self):
 */
  __pyx_v_self->_status = __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_CLOSING;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":103
 *             return True
 * 
 *     def closing(self):             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_CLOSING
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":106
 *         self._status = AIO_CHANNEL_STATUS_CLOSING
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_DESTROYED
 *         grpc_channel_destroy(self.channel)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_14close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_14close = {"close", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_14close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_14close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("close", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "close", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_13close(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_13close(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":107
 * 
 *     def close(self):
 *         self._status = AIO_CHANNEL_STATUS_DESTROYED             # <<<<<<<<<<<<<<
 *         grpc_channel_destroy(self.channel)
 * 
 */
  __pyx_v_self->_status = __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_DESTROYED;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":108
 *     def close(self):
 *         self._status = AIO_CHANNEL_STATUS_DESTROYED
 *         grpc_channel_destroy(self.channel)             # <<<<<<<<<<<<<<
 * 
 *     def closed(self):
 */
  grpc_channel_destroy(__pyx_v_self->channel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":106
 *         self._status = AIO_CHANNEL_STATUS_CLOSING
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_DESTROYED
 *         grpc_channel_destroy(self.channel)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":110
 *         grpc_channel_destroy(self.channel)
 * 
 *     def closed(self):             # <<<<<<<<<<<<<<
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_16closed(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_16closed = {"closed", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_16closed, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_16closed(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("closed (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("closed", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "closed", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_15closed(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_15closed(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("closed", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":111
 * 
 *     def closed(self):
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)             # <<<<<<<<<<<<<<
 * 
 *     def call(self,
 */
  __Pyx_XDECREF(__pyx_r);
  switch (__pyx_v_self->_status) {
    case __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_CLOSING:
    case __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_DESTROYED:
    __pyx_t_1 = 1;
    break;
    default:
    __pyx_t_1 = 0;
    break;
  }
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":110
 *         grpc_channel_destroy(self.channel)
 * 
 *     def closed(self):             # <<<<<<<<<<<<<<
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.closed", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":113
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)
 * 
 *     def call(self,             # <<<<<<<<<<<<<<
 *              bytes method,
 *              object deadline,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_18call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_17call, "Assembles a Cython Call object.\n\n        Returns:\n          An _AioCall object.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_18call = {"call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_18call, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_17call};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_18call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_method = 0;
  PyObject *__pyx_v_deadline = 0;
  PyObject *__pyx_v_python_call_credentials = 0;
  PyObject *__pyx_v_wait_for_ready = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_method,&__pyx_n_s_deadline,&__pyx_n_s_python_call_credentials,&__pyx_n_s_wait_for_ready,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 113, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_deadline)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 113, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("call", 1, 4, 4, 1); __PYX_ERR(8, 113, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_python_call_credentials)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 113, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("call", 1, 4, 4, 2); __PYX_ERR(8, 113, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_wait_for_ready)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 113, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("call", 1, 4, 4, 3); __PYX_ERR(8, 113, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "call") < 0)) __PYX_ERR(8, 113, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_method = ((PyObject*)values[0]);
    __pyx_v_deadline = values[1];
    __pyx_v_python_call_credentials = values[2];
    __pyx_v_wait_for_ready = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("call", 1, 4, 4, __pyx_nargs); __PYX_ERR(8, 113, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyBytes_Type), 1, "method", 1))) __PYX_ERR(8, 114, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_17call(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self), __pyx_v_method, __pyx_v_deadline, __pyx_v_python_call_credentials, __pyx_v_wait_for_ready);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_17call(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, PyObject *__pyx_v_method, PyObject *__pyx_v_deadline, PyObject *__pyx_v_python_call_credentials, PyObject *__pyx_v_wait_for_ready) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_cython_call_credentials = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":123
 *           An _AioCall object.
 *         """
 *         if self.closed():             # <<<<<<<<<<<<<<
 *             raise UsageError('Channel is closed.')
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_closed); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(8, 123, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(__pyx_t_5)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":124
 *         """
 *         if self.closed():
 *             raise UsageError('Channel is closed.')             # <<<<<<<<<<<<<<
 * 
 *         cdef CallCredentials cython_call_credentials
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_UsageError); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_s_Channel_is_closed};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 124, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(8, 124, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":123
 *           An _AioCall object.
 *         """
 *         if self.closed():             # <<<<<<<<<<<<<<
 *             raise UsageError('Channel is closed.')
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":127
 * 
 *         cdef CallCredentials cython_call_credentials
 *         if python_call_credentials is not None:             # <<<<<<<<<<<<<<
 *             if not self._is_secure:
 *                 raise UsageError("Call credentials are only valid on secure channels")
 */
  __pyx_t_5 = (__pyx_v_python_call_credentials != Py_None);
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":128
 *         cdef CallCredentials cython_call_credentials
 *         if python_call_credentials is not None:
 *             if not self._is_secure:             # <<<<<<<<<<<<<<
 *                 raise UsageError("Call credentials are only valid on secure channels")
 * 
 */
    __pyx_t_5 = (!__pyx_v_self->_is_secure);
    if (unlikely(__pyx_t_5)) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":129
 *         if python_call_credentials is not None:
 *             if not self._is_secure:
 *                 raise UsageError("Call credentials are only valid on secure channels")             # <<<<<<<<<<<<<<
 * 
 *             cython_call_credentials = python_call_credentials._credentials
 */
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_UsageError); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 129, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = NULL;
      __pyx_t_4 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_4 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_s_Call_credentials_are_only_valid};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 129, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_Raise(__pyx_t_1, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __PYX_ERR(8, 129, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":128
 *         cdef CallCredentials cython_call_credentials
 *         if python_call_credentials is not None:
 *             if not self._is_secure:             # <<<<<<<<<<<<<<
 *                 raise UsageError("Call credentials are only valid on secure channels")
 * 
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":131
 *                 raise UsageError("Call credentials are only valid on secure channels")
 * 
 *             cython_call_credentials = python_call_credentials._credentials             # <<<<<<<<<<<<<<
 *         else:
 *             cython_call_credentials = None
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_python_call_credentials, __pyx_n_s_credentials_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials))))) __PYX_ERR(8, 131, __pyx_L1_error)
    __pyx_v_cython_call_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":127
 * 
 *         cdef CallCredentials cython_call_credentials
 *         if python_call_credentials is not None:             # <<<<<<<<<<<<<<
 *             if not self._is_secure:
 *                 raise UsageError("Call credentials are only valid on secure channels")
 */
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":133
 *             cython_call_credentials = python_call_credentials._credentials
 *         else:
 *             cython_call_credentials = None             # <<<<<<<<<<<<<<
 * 
 *         return _AioCall(self, deadline, method, cython_call_credentials, wait_for_ready)
 */
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_cython_call_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)Py_None);
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":135
 *             cython_call_credentials = None
 * 
 *         return _AioCall(self, deadline, method, cython_call_credentials, wait_for_ready)             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self))) __PYX_ERR(8, 135, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_deadline);
  __Pyx_GIVEREF(__pyx_v_deadline);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_deadline)) __PYX_ERR(8, 135, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_method);
  __Pyx_GIVEREF(__pyx_v_method);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_method)) __PYX_ERR(8, 135, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_cython_call_credentials);
  __Pyx_GIVEREF((PyObject *)__pyx_v_cython_call_credentials);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_cython_call_credentials))) __PYX_ERR(8, 135, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_wait_for_ready);
  __Pyx_GIVEREF(__pyx_v_wait_for_ready);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_v_wait_for_ready)) __PYX_ERR(8, 135, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":113
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)
 * 
 *     def call(self,             # <<<<<<<<<<<<<<
 *              bytes method,
 *              object deadline,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cython_call_credentials);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_20__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_20__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_20__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_20__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_19__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_19__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_22__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_22__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_22__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_22__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_21__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_21__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":25
 * cdef str _SERVER_STOPPED_DETAILS = 'Server already stopped.'
 * 
 * cdef _augment_metadata(tuple metadata, object compression):             # <<<<<<<<<<<<<<
 *     if compression is None:
 *         return metadata
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__augment_metadata(PyObject *__pyx_v_metadata, PyObject *__pyx_v_compression) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_augment_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":26
 * 
 * cdef _augment_metadata(tuple metadata, object compression):
 *     if compression is None:             # <<<<<<<<<<<<<<
 *         return metadata
 *     else:
 */
  __pyx_t_1 = (__pyx_v_compression == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":27
 * cdef _augment_metadata(tuple metadata, object compression):
 *     if compression is None:
 *         return metadata             # <<<<<<<<<<<<<<
 *     else:
 *         return ((
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_metadata);
    __pyx_r = __pyx_v_metadata;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":26
 * 
 * cdef _augment_metadata(tuple metadata, object compression):
 *     if compression is None:             # <<<<<<<<<<<<<<
 *         return metadata
 *     else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":29
 *         return metadata
 *     else:
 *         return ((             # <<<<<<<<<<<<<<
 *             GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY,
 *             _COMPRESSION_METADATA_STRING_MAPPING[compression]
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":30
 *     else:
 *         return ((
 *             GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY,             # <<<<<<<<<<<<<<
 *             _COMPRESSION_METADATA_STRING_MAPPING[compression]
 *         ),) + metadata
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_GRPC_COMPRESSION_REQUEST_ALGORIT); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 30, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":31
 *         return ((
 *             GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY,
 *             _COMPRESSION_METADATA_STRING_MAPPING[compression]             # <<<<<<<<<<<<<<
 *         ),) + metadata
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_COMPRESSION_METADATA_STRING_MAP); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 31, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_compression); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 31, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":30
 *     else:
 *         return ((
 *             GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY,             # <<<<<<<<<<<<<<
 *             _COMPRESSION_METADATA_STRING_MAPPING[compression]
 *         ),) + metadata
 */
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 30, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(9, 30, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(9, 30, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":29
 *         return metadata
 *     else:
 *         return ((             # <<<<<<<<<<<<<<
 *             GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY,
 *             _COMPRESSION_METADATA_STRING_MAPPING[compression]
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 29, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(9, 29, __pyx_L1_error);
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":32
 *             GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY,
 *             _COMPRESSION_METADATA_STRING_MAPPING[compression]
 *         ),) + metadata             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_3 = PyNumber_Add(__pyx_t_4, __pyx_v_metadata); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 32, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":25
 * cdef str _SERVER_STOPPED_DETAILS = 'Server already stopped.'
 * 
 * cdef _augment_metadata(tuple metadata, object compression):             # <<<<<<<<<<<<<<
 *     if compression is None:
 *         return metadata
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._augment_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":36
 * 
 * cdef class _HandlerCallDetails:
 *     def __cinit__(self, str method, tuple invocation_metadata):             # <<<<<<<<<<<<<<
 *         self.method = method
 *         self.invocation_metadata = invocation_metadata
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_method = 0;
  PyObject *__pyx_v_invocation_metadata = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_method,&__pyx_n_s_invocation_metadata,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 36, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_invocation_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 36, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(9, 36, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(9, 36, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_method = ((PyObject*)values[0]);
    __pyx_v_invocation_metadata = ((PyObject*)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(9, 36, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._HandlerCallDetails.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyString_Type), 1, "method", 1))) __PYX_ERR(9, 36, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_invocation_metadata), (&PyTuple_Type), 1, "invocation_metadata", 1))) __PYX_ERR(9, 36, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)__pyx_v_self), __pyx_v_method, __pyx_v_invocation_metadata);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self, PyObject *__pyx_v_method, PyObject *__pyx_v_invocation_metadata) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":37
 * cdef class _HandlerCallDetails:
 *     def __cinit__(self, str method, tuple invocation_metadata):
 *         self.method = method             # <<<<<<<<<<<<<<
 *         self.invocation_metadata = invocation_metadata
 * 
 */
  __Pyx_INCREF(__pyx_v_method);
  __Pyx_GIVEREF(__pyx_v_method);
  __Pyx_GOTREF(__pyx_v_self->method);
  __Pyx_DECREF(__pyx_v_self->method);
  __pyx_v_self->method = __pyx_v_method;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":38
 *     def __cinit__(self, str method, tuple invocation_metadata):
 *         self.method = method
 *         self.invocation_metadata = invocation_metadata             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_INCREF(__pyx_v_invocation_metadata);
  __Pyx_GIVEREF(__pyx_v_invocation_metadata);
  __Pyx_GOTREF(__pyx_v_self->invocation_metadata);
  __Pyx_DECREF(__pyx_v_self->invocation_metadata);
  __pyx_v_self->invocation_metadata = __pyx_v_invocation_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":36
 * 
 * cdef class _HandlerCallDetails:
 *     def __cinit__(self, str method, tuple invocation_metadata):             # <<<<<<<<<<<<<<
 *         self.method = method
 *         self.invocation_metadata = invocation_metadata
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":16
 * 
 * cdef class _HandlerCallDetails:
 *     cdef readonly str method             # <<<<<<<<<<<<<<
 *     cdef readonly tuple invocation_metadata
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_6method_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_6method_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_6method___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_6method___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->method);
  __pyx_r = __pyx_v_self->method;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":17
 * cdef class _HandlerCallDetails:
 *     cdef readonly str method
 *     cdef readonly tuple invocation_metadata             # <<<<<<<<<<<<<<
 * 
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_19invocation_metadata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_19invocation_metadata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_19invocation_metadata___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_19invocation_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->invocation_metadata);
  __pyx_r = __pyx_v_self->invocation_metadata;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._HandlerCallDetails.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._HandlerCallDetails.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._HandlerCallDetails.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":47
 * cdef class RPCState:
 * 
 *     def __cinit__(self, AioServer server):             # <<<<<<<<<<<<<<
 *         init_grpc_aio()
 *         self.call = NULL
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_server = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_server,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_server)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 47, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(9, 47, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 47, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_server), __pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, 1, "server", 0))) __PYX_ERR(9, 47, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)__pyx_v_self), __pyx_v_server);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_server) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  grpc_status_code __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":48
 * 
 *     def __cinit__(self, AioServer server):
 *         init_grpc_aio()             # <<<<<<<<<<<<<<
 *         self.call = NULL
 *         self.server = server
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":49
 *     def __cinit__(self, AioServer server):
 *         init_grpc_aio()
 *         self.call = NULL             # <<<<<<<<<<<<<<
 *         self.server = server
 *         grpc_metadata_array_init(&self.request_metadata)
 */
  __pyx_v_self->__pyx_base.call = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":50
 *         init_grpc_aio()
 *         self.call = NULL
 *         self.server = server             # <<<<<<<<<<<<<<
 *         grpc_metadata_array_init(&self.request_metadata)
 *         grpc_call_details_init(&self.details)
 */
  __Pyx_INCREF((PyObject *)__pyx_v_server);
  __Pyx_GIVEREF((PyObject *)__pyx_v_server);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->server);
  __Pyx_DECREF((PyObject *)__pyx_v_self->server);
  __pyx_v_self->server = __pyx_v_server;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":51
 *         self.call = NULL
 *         self.server = server
 *         grpc_metadata_array_init(&self.request_metadata)             # <<<<<<<<<<<<<<
 *         grpc_call_details_init(&self.details)
 *         self.client_closed = False
 */
  grpc_metadata_array_init((&__pyx_v_self->request_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":52
 *         self.server = server
 *         grpc_metadata_array_init(&self.request_metadata)
 *         grpc_call_details_init(&self.details)             # <<<<<<<<<<<<<<
 *         self.client_closed = False
 *         self.abort_exception = None
 */
  grpc_call_details_init((&__pyx_v_self->details));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":53
 *         grpc_metadata_array_init(&self.request_metadata)
 *         grpc_call_details_init(&self.details)
 *         self.client_closed = False             # <<<<<<<<<<<<<<
 *         self.abort_exception = None
 *         self.metadata_sent = False
 */
  __pyx_v_self->client_closed = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":54
 *         grpc_call_details_init(&self.details)
 *         self.client_closed = False
 *         self.abort_exception = None             # <<<<<<<<<<<<<<
 *         self.metadata_sent = False
 *         self.status_sent = False
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->abort_exception);
  __Pyx_DECREF(__pyx_v_self->abort_exception);
  __pyx_v_self->abort_exception = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":55
 *         self.client_closed = False
 *         self.abort_exception = None
 *         self.metadata_sent = False             # <<<<<<<<<<<<<<
 *         self.status_sent = False
 *         self.status_code = StatusCode.ok
 */
  __pyx_v_self->metadata_sent = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":56
 *         self.abort_exception = None
 *         self.metadata_sent = False
 *         self.status_sent = False             # <<<<<<<<<<<<<<
 *         self.status_code = StatusCode.ok
 *         self.py_status_code = None
 */
  __pyx_v_self->status_sent = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":57
 *         self.metadata_sent = False
 *         self.status_sent = False
 *         self.status_code = StatusCode.ok             # <<<<<<<<<<<<<<
 *         self.py_status_code = None
 *         self.status_details = ''
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ok); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = ((grpc_status_code)__Pyx_PyInt_As_grpc_status_code(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_self->status_code = __pyx_t_3;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":58
 *         self.status_sent = False
 *         self.status_code = StatusCode.ok
 *         self.py_status_code = None             # <<<<<<<<<<<<<<
 *         self.status_details = ''
 *         self.trailing_metadata = _IMMUTABLE_EMPTY_METADATA
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->py_status_code);
  __Pyx_DECREF(__pyx_v_self->py_status_code);
  __pyx_v_self->py_status_code = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":59
 *         self.status_code = StatusCode.ok
 *         self.py_status_code = None
 *         self.status_details = ''             # <<<<<<<<<<<<<<
 *         self.trailing_metadata = _IMMUTABLE_EMPTY_METADATA
 *         self.compression_algorithm = None
 */
  __Pyx_INCREF(__pyx_kp_s__7);
  __Pyx_GIVEREF(__pyx_kp_s__7);
  __Pyx_GOTREF(__pyx_v_self->status_details);
  __Pyx_DECREF(__pyx_v_self->status_details);
  __pyx_v_self->status_details = __pyx_kp_s__7;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":60
 *         self.py_status_code = None
 *         self.status_details = ''
 *         self.trailing_metadata = _IMMUTABLE_EMPTY_METADATA             # <<<<<<<<<<<<<<
 *         self.compression_algorithm = None
 *         self.disable_next_compression = False
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(9, 60, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->trailing_metadata);
  __Pyx_DECREF(__pyx_v_self->trailing_metadata);
  __pyx_v_self->trailing_metadata = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":61
 *         self.status_details = ''
 *         self.trailing_metadata = _IMMUTABLE_EMPTY_METADATA
 *         self.compression_algorithm = None             # <<<<<<<<<<<<<<
 *         self.disable_next_compression = False
 *         self.callbacks = []
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->compression_algorithm);
  __Pyx_DECREF(__pyx_v_self->compression_algorithm);
  __pyx_v_self->compression_algorithm = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":62
 *         self.trailing_metadata = _IMMUTABLE_EMPTY_METADATA
 *         self.compression_algorithm = None
 *         self.disable_next_compression = False             # <<<<<<<<<<<<<<
 *         self.callbacks = []
 * 
 */
  __pyx_v_self->disable_next_compression = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":63
 *         self.compression_algorithm = None
 *         self.disable_next_compression = False
 *         self.callbacks = []             # <<<<<<<<<<<<<<
 * 
 *     cdef bytes method(self):
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->callbacks);
  __Pyx_DECREF(__pyx_v_self->callbacks);
  __pyx_v_self->callbacks = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":47
 * cdef class RPCState:
 * 
 *     def __cinit__(self, AioServer server):             # <<<<<<<<<<<<<<
 *         init_grpc_aio()
 *         self.call = NULL
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":65
 *         self.callbacks = []
 * 
 *     cdef bytes method(self):             # <<<<<<<<<<<<<<
 *         return _slice_bytes(self.details.method)
 * 
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_method(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("method", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":66
 * 
 *     cdef bytes method(self):
 *         return _slice_bytes(self.details.method)             # <<<<<<<<<<<<<<
 * 
 *     cdef tuple invocation_metadata(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(__pyx_v_self->details.method); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":65
 *         self.callbacks = []
 * 
 *     cdef bytes method(self):             # <<<<<<<<<<<<<<
 *         return _slice_bytes(self.details.method)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.method", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":68
 *         return _slice_bytes(self.details.method)
 * 
 *     cdef tuple invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return _metadata(&self.request_metadata)
 * 
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_invocation_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("invocation_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":69
 * 
 *     cdef tuple invocation_metadata(self):
 *         return _metadata(&self.request_metadata)             # <<<<<<<<<<<<<<
 * 
 *     cdef void raise_for_termination(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__metadata((&__pyx_v_self->request_metadata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":68
 *         return _slice_bytes(self.details.method)
 * 
 *     cdef tuple invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return _metadata(&self.request_metadata)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.invocation_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":71
 *         return _metadata(&self.request_metadata)
 * 
 *     cdef void raise_for_termination(self) except *:             # <<<<<<<<<<<<<<
 *         """Raise exceptions if RPC is not running.
 * 
 */

static void __pyx_f_4grpc_7_cython_6cygrpc_8RPCState_raise_for_termination(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("raise_for_termination", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":81
 *         into Core functions, otherwise, segfault.
 *         """
 *         if self.abort_exception is not None:             # <<<<<<<<<<<<<<
 *             raise self.abort_exception
 *         if self.status_sent:
 */
  __pyx_t_1 = (__pyx_v_self->abort_exception != Py_None);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":82
 *         """
 *         if self.abort_exception is not None:
 *             raise self.abort_exception             # <<<<<<<<<<<<<<
 *         if self.status_sent:
 *             raise UsageError(_RPC_FINISHED_DETAILS)
 */
    __Pyx_Raise(__pyx_v_self->abort_exception, 0, 0, 0);
    __PYX_ERR(9, 82, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":81
 *         into Core functions, otherwise, segfault.
 *         """
 *         if self.abort_exception is not None:             # <<<<<<<<<<<<<<
 *             raise self.abort_exception
 *         if self.status_sent:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":83
 *         if self.abort_exception is not None:
 *             raise self.abort_exception
 *         if self.status_sent:             # <<<<<<<<<<<<<<
 *             raise UsageError(_RPC_FINISHED_DETAILS)
 *         if self.server._status == AIO_SERVER_STATUS_STOPPED:
 */
  if (unlikely(__pyx_v_self->status_sent)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":84
 *             raise self.abort_exception
 *         if self.status_sent:
 *             raise UsageError(_RPC_FINISHED_DETAILS)             # <<<<<<<<<<<<<<
 *         if self.server._status == AIO_SERVER_STATUS_STOPPED:
 *             raise _ServerStoppedError(_SERVER_STOPPED_DETAILS)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_UsageError); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_4grpc_7_cython_6cygrpc__RPC_FINISHED_DETAILS};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 84, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(9, 84, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":83
 *         if self.abort_exception is not None:
 *             raise self.abort_exception
 *         if self.status_sent:             # <<<<<<<<<<<<<<
 *             raise UsageError(_RPC_FINISHED_DETAILS)
 *         if self.server._status == AIO_SERVER_STATUS_STOPPED:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":85
 *         if self.status_sent:
 *             raise UsageError(_RPC_FINISHED_DETAILS)
 *         if self.server._status == AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             raise _ServerStoppedError(_SERVER_STOPPED_DETAILS)
 * 
 */
  __pyx_t_1 = (__pyx_v_self->server->_status == __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPED);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":86
 *             raise UsageError(_RPC_FINISHED_DETAILS)
 *         if self.server._status == AIO_SERVER_STATUS_STOPPED:
 *             raise _ServerStoppedError(_SERVER_STOPPED_DETAILS)             # <<<<<<<<<<<<<<
 * 
 *     cdef int get_write_flag(self):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ServerStoppedError); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_4grpc_7_cython_6cygrpc__SERVER_STOPPED_DETAILS};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 86, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(9, 86, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":85
 *         if self.status_sent:
 *             raise UsageError(_RPC_FINISHED_DETAILS)
 *         if self.server._status == AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             raise _ServerStoppedError(_SERVER_STOPPED_DETAILS)
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":71
 *         return _metadata(&self.request_metadata)
 * 
 *     cdef void raise_for_termination(self) except *:             # <<<<<<<<<<<<<<
 *         """Raise exceptions if RPC is not running.
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.raise_for_termination", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":88
 *             raise _ServerStoppedError(_SERVER_STOPPED_DETAILS)
 * 
 *     cdef int get_write_flag(self):             # <<<<<<<<<<<<<<
 *         if self.disable_next_compression:
 *             self.disable_next_compression = False
 */

static int __pyx_f_4grpc_7_cython_6cygrpc_8RPCState_get_write_flag(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_write_flag", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":89
 * 
 *     cdef int get_write_flag(self):
 *         if self.disable_next_compression:             # <<<<<<<<<<<<<<
 *             self.disable_next_compression = False
 *             return WriteFlag.no_compress
 */
  if (__pyx_v_self->disable_next_compression) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":90
 *     cdef int get_write_flag(self):
 *         if self.disable_next_compression:
 *             self.disable_next_compression = False             # <<<<<<<<<<<<<<
 *             return WriteFlag.no_compress
 *         else:
 */
    __pyx_v_self->disable_next_compression = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":91
 *         if self.disable_next_compression:
 *             self.disable_next_compression = False
 *             return WriteFlag.no_compress             # <<<<<<<<<<<<<<
 *         else:
 *             return _EMPTY_FLAG
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_WriteFlag); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 91, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_no_compress); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 91, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(9, 91, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_3;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":89
 * 
 *     cdef int get_write_flag(self):
 *         if self.disable_next_compression:             # <<<<<<<<<<<<<<
 *             self.disable_next_compression = False
 *             return WriteFlag.no_compress
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":93
 *             return WriteFlag.no_compress
 *         else:
 *             return _EMPTY_FLAG             # <<<<<<<<<<<<<<
 * 
 *     cdef Operation create_send_initial_metadata_op_if_not_sent(self):
 */
  /*else*/ {
    __pyx_r = __pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":88
 *             raise _ServerStoppedError(_SERVER_STOPPED_DETAILS)
 * 
 *     cdef int get_write_flag(self):             # <<<<<<<<<<<<<<
 *         if self.disable_next_compression:
 *             self.disable_next_compression = False
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.get_write_flag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":95
 *             return _EMPTY_FLAG
 * 
 *     cdef Operation create_send_initial_metadata_op_if_not_sent(self):             # <<<<<<<<<<<<<<
 *         cdef SendInitialMetadataOperation op
 *         if self.metadata_sent:
 */

static struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_create_send_initial_metadata_op_if_not_sent(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_op = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("create_send_initial_metadata_op_if_not_sent", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":97
 *     cdef Operation create_send_initial_metadata_op_if_not_sent(self):
 *         cdef SendInitialMetadataOperation op
 *         if self.metadata_sent:             # <<<<<<<<<<<<<<
 *             return None
 *         else:
 */
  if (__pyx_v_self->metadata_sent) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":98
 *         cdef SendInitialMetadataOperation op
 *         if self.metadata_sent:
 *             return None             # <<<<<<<<<<<<<<
 *         else:
 *             op = SendInitialMetadataOperation(
 */
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":97
 *     cdef Operation create_send_initial_metadata_op_if_not_sent(self):
 *         cdef SendInitialMetadataOperation op
 *         if self.metadata_sent:             # <<<<<<<<<<<<<<
 *             return None
 *         else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":100
 *             return None
 *         else:
 *             op = SendInitialMetadataOperation(             # <<<<<<<<<<<<<<
 *                 _augment_metadata(_IMMUTABLE_EMPTY_METADATA, self.compression_algorithm),
 *                 _EMPTY_FLAG
 */
  /*else*/ {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":101
 *         else:
 *             op = SendInitialMetadataOperation(
 *                 _augment_metadata(_IMMUTABLE_EMPTY_METADATA, self.compression_algorithm),             # <<<<<<<<<<<<<<
 *                 _EMPTY_FLAG
 *             )
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(9, 101, __pyx_L1_error)
    __pyx_t_2 = __pyx_v_self->compression_algorithm;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__augment_metadata(((PyObject*)__pyx_t_1), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":102
 *             op = SendInitialMetadataOperation(
 *                 _augment_metadata(_IMMUTABLE_EMPTY_METADATA, self.compression_algorithm),
 *                 _EMPTY_FLAG             # <<<<<<<<<<<<<<
 *             )
 *             return op
 */
    __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":100
 *             return None
 *         else:
 *             op = SendInitialMetadataOperation(             # <<<<<<<<<<<<<<
 *                 _augment_metadata(_IMMUTABLE_EMPTY_METADATA, self.compression_algorithm),
 *                 _EMPTY_FLAG
 */
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3)) __PYX_ERR(9, 100, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2)) __PYX_ERR(9, 100, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":104
 *                 _EMPTY_FLAG
 *             )
 *             return op             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __Pyx_INCREF((PyObject *)__pyx_v_op);
    __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_v_op);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":95
 *             return _EMPTY_FLAG
 * 
 *     cdef Operation create_send_initial_metadata_op_if_not_sent(self):             # <<<<<<<<<<<<<<
 *         cdef SendInitialMetadataOperation op
 *         if self.metadata_sent:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.create_send_initial_metadata_op_if_not_sent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_op);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":106
 *             return op
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         """Cleans the Core objects."""
 *         grpc_call_details_destroy(&self.details)
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":108
 *     def __dealloc__(self):
 *         """Cleans the Core objects."""
 *         grpc_call_details_destroy(&self.details)             # <<<<<<<<<<<<<<
 *         grpc_metadata_array_destroy(&self.request_metadata)
 *         if self.call:
 */
  grpc_call_details_destroy((&__pyx_v_self->details));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":109
 *         """Cleans the Core objects."""
 *         grpc_call_details_destroy(&self.details)
 *         grpc_metadata_array_destroy(&self.request_metadata)             # <<<<<<<<<<<<<<
 *         if self.call:
 *             grpc_call_unref(self.call)
 */
  grpc_metadata_array_destroy((&__pyx_v_self->request_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":110
 *         grpc_call_details_destroy(&self.details)
 *         grpc_metadata_array_destroy(&self.request_metadata)
 *         if self.call:             # <<<<<<<<<<<<<<
 *             grpc_call_unref(self.call)
 *         shutdown_grpc_aio()
 */
  __pyx_t_1 = (__pyx_v_self->__pyx_base.call != 0);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":111
 *         grpc_metadata_array_destroy(&self.request_metadata)
 *         if self.call:
 *             grpc_call_unref(self.call)             # <<<<<<<<<<<<<<
 *         shutdown_grpc_aio()
 * 
 */
    grpc_call_unref(__pyx_v_self->__pyx_base.call);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":110
 *         grpc_call_details_destroy(&self.details)
 *         grpc_metadata_array_destroy(&self.request_metadata)
 *         if self.call:             # <<<<<<<<<<<<<<
 *             grpc_call_unref(self.call)
 *         shutdown_grpc_aio()
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":112
 *         if self.call:
 *             grpc_call_unref(self.call)
 *         shutdown_grpc_aio()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":106
 *             return op
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         """Cleans the Core objects."""
 *         grpc_call_details_destroy(&self.details)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.RPCState.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8RPCState_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8RPCState_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":117
 * cdef class _ServicerContext:
 * 
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   RPCState rpc_state,
 *                   object request_deserializer,
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_request_deserializer = 0;
  PyObject *__pyx_v_response_serializer = 0;
  PyObject *__pyx_v_loop = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rpc_state,&__pyx_n_s_request_deserializer,&__pyx_n_s_response_serializer,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 117, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_request_deserializer)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 117, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 1); __PYX_ERR(9, 117, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_response_serializer)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 117, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 2); __PYX_ERR(9, 117, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 117, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 3); __PYX_ERR(9, 117, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(9, 117, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
      values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
    }
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[0]);
    __pyx_v_request_deserializer = values[1];
    __pyx_v_response_serializer = values[2];
    __pyx_v_loop = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, __pyx_nargs); __PYX_ERR(9, 117, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 118, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_rpc_state, __pyx_v_request_deserializer, __pyx_v_response_serializer, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_request_deserializer, PyObject *__pyx_v_response_serializer, PyObject *__pyx_v_loop) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":122
 *                   object response_serializer,
 *                   object loop):
 *         self._rpc_state = rpc_state             # <<<<<<<<<<<<<<
 *         self._request_deserializer = request_deserializer
 *         self._response_serializer = response_serializer
 */
  __Pyx_INCREF((PyObject *)__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rpc_state);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_rpc_state);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_rpc_state);
  __pyx_v_self->_rpc_state = __pyx_v_rpc_state;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":123
 *                   object loop):
 *         self._rpc_state = rpc_state
 *         self._request_deserializer = request_deserializer             # <<<<<<<<<<<<<<
 *         self._response_serializer = response_serializer
 *         self._loop = loop
 */
  __Pyx_INCREF(__pyx_v_request_deserializer);
  __Pyx_GIVEREF(__pyx_v_request_deserializer);
  __Pyx_GOTREF(__pyx_v_self->_request_deserializer);
  __Pyx_DECREF(__pyx_v_self->_request_deserializer);
  __pyx_v_self->_request_deserializer = __pyx_v_request_deserializer;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":124
 *         self._rpc_state = rpc_state
 *         self._request_deserializer = request_deserializer
 *         self._response_serializer = response_serializer             # <<<<<<<<<<<<<<
 *         self._loop = loop
 * 
 */
  __Pyx_INCREF(__pyx_v_response_serializer);
  __Pyx_GIVEREF(__pyx_v_response_serializer);
  __Pyx_GOTREF(__pyx_v_self->_response_serializer);
  __Pyx_DECREF(__pyx_v_self->_response_serializer);
  __pyx_v_self->_response_serializer = __pyx_v_response_serializer;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":125
 *         self._request_deserializer = request_deserializer
 *         self._response_serializer = response_serializer
 *         self._loop = loop             # <<<<<<<<<<<<<<
 * 
 *     async def read(self):
 */
  __Pyx_INCREF(__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_v_loop);
  __Pyx_GOTREF(__pyx_v_self->_loop);
  __Pyx_DECREF(__pyx_v_self->_loop);
  __pyx_v_self->_loop = __pyx_v_loop;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":117
 * cdef class _ServicerContext:
 * 
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   RPCState rpc_state,
 *                   object request_deserializer,
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_4generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":127
 *         self._loop = loop
 * 
 *     async def read(self):             # <<<<<<<<<<<<<<
 *         cdef bytes raw_message
 *         self._rpc_state.raise_for_termination()
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_3read(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_3read = {"read", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_3read, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_3read(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("read (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("read", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "read", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_2read(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_2read(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("read", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 127, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_4generator19, __pyx_codeobj__73, (PyObject *) __pyx_cur_scope, __pyx_n_s_read, __pyx_n_s_ServicerContext_read, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 127, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_4generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("read", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 127, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":129
 *     async def read(self):
 *         cdef bytes raw_message
 *         self._rpc_state.raise_for_termination()             # <<<<<<<<<<<<<<
 * 
 *         raw_message = await _receive_message(self._rpc_state, self._loop)
 */
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_self->_rpc_state->__pyx_vtab)->raise_for_termination(__pyx_cur_scope->__pyx_v_self->_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 129, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":131
 *         self._rpc_state.raise_for_termination()
 * 
 *         raw_message = await _receive_message(self._rpc_state, self._loop)             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_receive_message); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self->_rpc_state), __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 131, __pyx_L1_error)
    __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
  } else {
    __pyx_t_1 = NULL;
    if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(9, 131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(9, 131, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_raw_message = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":132
 * 
 *         raw_message = await _receive_message(self._rpc_state, self._loop)
 *         self._rpc_state.raise_for_termination()             # <<<<<<<<<<<<<<
 * 
 *         if raw_message is None:
 */
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_self->_rpc_state->__pyx_vtab)->raise_for_termination(__pyx_cur_scope->__pyx_v_self->_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 132, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":134
 *         self._rpc_state.raise_for_termination()
 * 
 *         if raw_message is None:             # <<<<<<<<<<<<<<
 *             return EOF
 *         else:
 */
  __pyx_t_5 = (__pyx_cur_scope->__pyx_v_raw_message == ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":135
 * 
 *         if raw_message is None:
 *             return EOF             # <<<<<<<<<<<<<<
 *         else:
 *             return deserialize(self._request_deserializer,
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_EOF); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":134
 *         self._rpc_state.raise_for_termination()
 * 
 *         if raw_message is None:             # <<<<<<<<<<<<<<
 *             return EOF
 *         else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":137
 *             return EOF
 *         else:
 *             return deserialize(self._request_deserializer,             # <<<<<<<<<<<<<<
 *                             raw_message)
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->_request_deserializer;
    __Pyx_INCREF(__pyx_t_1);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":138
 *         else:
 *             return deserialize(self._request_deserializer,
 *                             raw_message)             # <<<<<<<<<<<<<<
 * 
 *     async def write(self, object message):
 */
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc_deserialize(__pyx_t_1, __pyx_cur_scope->__pyx_v_raw_message); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":127
 *         self._loop = loop
 * 
 *     async def read(self):             # <<<<<<<<<<<<<<
 *         cdef bytes raw_message
 *         self._rpc_state.raise_for_termination()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("read", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_7generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":140
 *                             raw_message)
 * 
 *     async def write(self, object message):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_6write(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_6write = {"write", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_6write, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_6write(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_message = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("write (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_message,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_message)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 140, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "write") < 0)) __PYX_ERR(9, 140, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_message = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("write", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 140, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_5write(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_message);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_5write(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_message) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("write", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 140, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_message = __pyx_v_message;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_message);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_message);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_7generator20, __pyx_codeobj__74, (PyObject *) __pyx_cur_scope, __pyx_n_s_write, __pyx_n_s_ServicerContext_write, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 140, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_7generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  unsigned int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("write", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 140, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":141
 * 
 *     async def write(self, object message):
 *         self._rpc_state.raise_for_termination()             # <<<<<<<<<<<<<<
 * 
 *         await _send_message(self._rpc_state,
 */
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_self->_rpc_state->__pyx_vtab)->raise_for_termination(__pyx_cur_scope->__pyx_v_self->_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 141, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":143
 *         self._rpc_state.raise_for_termination()
 * 
 *         await _send_message(self._rpc_state,             # <<<<<<<<<<<<<<
 *                             serialize(self._response_serializer, message),
 *                             self._rpc_state.create_send_initial_metadata_op_if_not_sent(),
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_send_message); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":144
 * 
 *         await _send_message(self._rpc_state,
 *                             serialize(self._response_serializer, message),             # <<<<<<<<<<<<<<
 *                             self._rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *                             self._rpc_state.get_write_flag(),
 */
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->_response_serializer;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc_serialize(__pyx_t_3, __pyx_cur_scope->__pyx_v_message); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":145
 *         await _send_message(self._rpc_state,
 *                             serialize(self._response_serializer, message),
 *                             self._rpc_state.create_send_initial_metadata_op_if_not_sent(),             # <<<<<<<<<<<<<<
 *                             self._rpc_state.get_write_flag(),
 *                             self._loop)
 */
  __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_self->_rpc_state->__pyx_vtab)->create_send_initial_metadata_op_if_not_sent(__pyx_cur_scope->__pyx_v_self->_rpc_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":146
 *                             serialize(self._response_serializer, message),
 *                             self._rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *                             self._rpc_state.get_write_flag(),             # <<<<<<<<<<<<<<
 *                             self._loop)
 *         self._rpc_state.metadata_sent = True
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_self->_rpc_state->__pyx_vtab)->get_write_flag(__pyx_cur_scope->__pyx_v_self->_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 146, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":147
 *                             self._rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *                             self._rpc_state.get_write_flag(),
 *                             self._loop)             # <<<<<<<<<<<<<<
 *         self._rpc_state.metadata_sent = True
 * 
 */
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_7, ((PyObject *)__pyx_cur_scope->__pyx_v_self->_rpc_state), __pyx_t_4, __pyx_t_3, __pyx_t_6, __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_8, 5+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 143, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(9, 143, __pyx_L1_error)
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":148
 *                             self._rpc_state.get_write_flag(),
 *                             self._loop)
 *         self._rpc_state.metadata_sent = True             # <<<<<<<<<<<<<<
 * 
 *     async def send_initial_metadata(self, object metadata):
 */
  __pyx_cur_scope->__pyx_v_self->_rpc_state->metadata_sent = 1;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":140
 *                             raw_message)
 * 
 *     async def write(self, object message):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("write", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_10generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":150
 *         self._rpc_state.metadata_sent = True
 * 
 *     async def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_9send_initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_9send_initial_metadata = {"send_initial_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_9send_initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_9send_initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("send_initial_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_metadata,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 150, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "send_initial_metadata") < 0)) __PYX_ERR(9, 150, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_metadata = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("send_initial_metadata", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 150, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_8send_initial_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_metadata);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_8send_initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("send_initial_metadata", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 150, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_metadata = __pyx_v_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_metadata);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_10generator21, __pyx_codeobj__75, (PyObject *) __pyx_cur_scope, __pyx_n_s_send_initial_metadata_2, __pyx_n_s_ServicerContext_send_initial_me, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 150, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_10generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("send_initial_metadata", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 150, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":151
 * 
 *     async def send_initial_metadata(self, object metadata):
 *         self._rpc_state.raise_for_termination()             # <<<<<<<<<<<<<<
 * 
 *         if self._rpc_state.metadata_sent:
 */
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_self->_rpc_state->__pyx_vtab)->raise_for_termination(__pyx_cur_scope->__pyx_v_self->_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 151, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":153
 *         self._rpc_state.raise_for_termination()
 * 
 *         if self._rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *             raise UsageError('Send initial metadata failed: already sent')
 *         else:
 */
  if (unlikely(__pyx_cur_scope->__pyx_v_self->_rpc_state->metadata_sent)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":154
 * 
 *         if self._rpc_state.metadata_sent:
 *             raise UsageError('Send initial metadata failed: already sent')             # <<<<<<<<<<<<<<
 *         else:
 *             await _send_initial_metadata(
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_UsageError); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_s_Send_initial_metadata_failed_alr};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 154, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(9, 154, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":153
 *         self._rpc_state.raise_for_termination()
 * 
 *         if self._rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *             raise UsageError('Send initial metadata failed: already sent')
 *         else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":156
 *             raise UsageError('Send initial metadata failed: already sent')
 *         else:
 *             await _send_initial_metadata(             # <<<<<<<<<<<<<<
 *                 self._rpc_state,
 *                 _augment_metadata(tuple(metadata), self._rpc_state.compression_algorithm),
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_send_initial_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 156, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":158
 *             await _send_initial_metadata(
 *                 self._rpc_state,
 *                 _augment_metadata(tuple(metadata), self._rpc_state.compression_algorithm),             # <<<<<<<<<<<<<<
 *                 _EMPTY_FLAG,
 *                 self._loop
 */
    __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_cur_scope->__pyx_v_metadata); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __pyx_cur_scope->__pyx_v_self->_rpc_state->compression_algorithm;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc__augment_metadata(((PyObject*)__pyx_t_3), __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":159
 *                 self._rpc_state,
 *                 _augment_metadata(tuple(metadata), self._rpc_state.compression_algorithm),
 *                 _EMPTY_FLAG,             # <<<<<<<<<<<<<<
 *                 self._loop
 *             )
 */
    __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":160
 *                 _augment_metadata(tuple(metadata), self._rpc_state.compression_algorithm),
 *                 _EMPTY_FLAG,
 *                 self._loop             # <<<<<<<<<<<<<<
 *             )
 *             self._rpc_state.metadata_sent = True
 */
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[5] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self->_rpc_state), __pyx_t_6, __pyx_t_5, __pyx_cur_scope->__pyx_v_self->_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 4+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L5_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 156, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(9, 156, __pyx_L1_error)
      }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":162
 *                 self._loop
 *             )
 *             self._rpc_state.metadata_sent = True             # <<<<<<<<<<<<<<
 * 
 *     async def abort(self,
 */
    __pyx_cur_scope->__pyx_v_self->_rpc_state->metadata_sent = 1;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":150
 *         self._rpc_state.metadata_sent = True
 * 
 *     async def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_13generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":164
 *             self._rpc_state.metadata_sent = True
 * 
 *     async def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_12abort(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_12abort = {"abort", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_12abort, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_12abort(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  PyObject *__pyx_v_details = 0;
  PyObject *__pyx_v_trailing_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("abort (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_code,&__pyx_n_s_details,&__pyx_n_s_trailing_metadata,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject*)__pyx_kp_s__7));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(__pyx_k__76);
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_code)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 164, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_details);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 164, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_trailing_metadata);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 164, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "abort") < 0)) __PYX_ERR(9, 164, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_code = values[0];
    __pyx_v_details = ((PyObject*)values[1]);
    __pyx_v_trailing_metadata = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("abort", 0, 1, 3, __pyx_nargs); __PYX_ERR(9, 164, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.abort", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_details), (&PyString_Type), 1, "details", 1))) __PYX_ERR(9, 166, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_trailing_metadata), (&PyTuple_Type), 1, "trailing_metadata", 1))) __PYX_ERR(9, 167, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_11abort(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_code, __pyx_v_details, __pyx_v_trailing_metadata);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_11abort(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("abort", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 164, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_code = __pyx_v_code;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_code);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_code);
  __pyx_cur_scope->__pyx_v_details = __pyx_v_details;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_details);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_details);
  __pyx_cur_scope->__pyx_v_trailing_metadata = __pyx_v_trailing_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_13generator22, __pyx_codeobj__77, (PyObject *) __pyx_cur_scope, __pyx_n_s_abort, __pyx_n_s_ServicerContext_abort, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 164, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.abort", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_13generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_t_6;
  grpc_status_code __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("abort", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L11_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 164, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":168
 *               str details='',
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):
 *         if self._rpc_state.abort_exception is not None:             # <<<<<<<<<<<<<<
 *             raise UsageError('Abort already called!')
 *         else:
 */
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->_rpc_state->abort_exception != Py_None);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":169
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):
 *         if self._rpc_state.abort_exception is not None:
 *             raise UsageError('Abort already called!')             # <<<<<<<<<<<<<<
 *         else:
 *             # Keeps track of the exception object. After abort happen, the RPC
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_UsageError); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 169, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_s_Abort_already_called};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 169, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(9, 169, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":168
 *               str details='',
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):
 *         if self._rpc_state.abort_exception is not None:             # <<<<<<<<<<<<<<
 *             raise UsageError('Abort already called!')
 *         else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":174
 *             # should stop execution. However, if users decided to suppress it, it
 *             # could lead to undefined behavior.
 *             self._rpc_state.abort_exception = AbortError('Locally aborted.')             # <<<<<<<<<<<<<<
 * 
 *             if trailing_metadata == _IMMUTABLE_EMPTY_METADATA and self._rpc_state.trailing_metadata:
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_AbortError); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_s_Locally_aborted};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 174, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->abort_exception);
    __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->abort_exception);
    __pyx_cur_scope->__pyx_v_self->_rpc_state->abort_exception = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":176
 *             self._rpc_state.abort_exception = AbortError('Locally aborted.')
 * 
 *             if trailing_metadata == _IMMUTABLE_EMPTY_METADATA and self._rpc_state.trailing_metadata:             # <<<<<<<<<<<<<<
 *                 trailing_metadata = self._rpc_state.trailing_metadata
 *             else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_trailing_metadata, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 176, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 176, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_6) {
    } else {
      __pyx_t_1 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_cur_scope->__pyx_v_self->_rpc_state->trailing_metadata != Py_None)&&(PyTuple_GET_SIZE(__pyx_cur_scope->__pyx_v_self->_rpc_state->trailing_metadata) != 0);
    __pyx_t_1 = __pyx_t_6;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":177
 * 
 *             if trailing_metadata == _IMMUTABLE_EMPTY_METADATA and self._rpc_state.trailing_metadata:
 *                 trailing_metadata = self._rpc_state.trailing_metadata             # <<<<<<<<<<<<<<
 *             else:
 *                 raise_if_not_valid_trailing_metadata(trailing_metadata)
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->_rpc_state->trailing_metadata;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
      __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_trailing_metadata, ((PyObject*)__pyx_t_3));
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":176
 *             self._rpc_state.abort_exception = AbortError('Locally aborted.')
 * 
 *             if trailing_metadata == _IMMUTABLE_EMPTY_METADATA and self._rpc_state.trailing_metadata:             # <<<<<<<<<<<<<<
 *                 trailing_metadata = self._rpc_state.trailing_metadata
 *             else:
 */
      goto __pyx_L5;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":179
 *                 trailing_metadata = self._rpc_state.trailing_metadata
 *             else:
 *                 raise_if_not_valid_trailing_metadata(trailing_metadata)             # <<<<<<<<<<<<<<
 *                 self._rpc_state.trailing_metadata = trailing_metadata
 * 
 */
    /*else*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_raise_if_not_valid_trailing_meta); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 179, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = NULL;
      __pyx_t_5 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_5 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_trailing_metadata};
        __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 179, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":180
 *             else:
 *                 raise_if_not_valid_trailing_metadata(trailing_metadata)
 *                 self._rpc_state.trailing_metadata = trailing_metadata             # <<<<<<<<<<<<<<
 * 
 *             if details == '' and self._rpc_state.status_details:
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->trailing_metadata);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->trailing_metadata);
      __pyx_cur_scope->__pyx_v_self->_rpc_state->trailing_metadata = __pyx_cur_scope->__pyx_v_trailing_metadata;
    }
    __pyx_L5:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":182
 *                 self._rpc_state.trailing_metadata = trailing_metadata
 * 
 *             if details == '' and self._rpc_state.status_details:             # <<<<<<<<<<<<<<
 *                 details = self._rpc_state.status_details
 *             else:
 */
    __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_cur_scope->__pyx_v_details, __pyx_kp_s__7, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 182, __pyx_L1_error)
    if (__pyx_t_6) {
    } else {
      __pyx_t_1 = __pyx_t_6;
      goto __pyx_L9_bool_binop_done;
    }
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_self->_rpc_state->status_details); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 182, __pyx_L1_error)
    __pyx_t_1 = __pyx_t_6;
    __pyx_L9_bool_binop_done:;
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":183
 * 
 *             if details == '' and self._rpc_state.status_details:
 *                 details = self._rpc_state.status_details             # <<<<<<<<<<<<<<
 *             else:
 *                 self._rpc_state.status_details = details
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->_rpc_state->status_details;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_details);
      __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_details, ((PyObject*)__pyx_t_3));
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":182
 *                 self._rpc_state.trailing_metadata = trailing_metadata
 * 
 *             if details == '' and self._rpc_state.status_details:             # <<<<<<<<<<<<<<
 *                 details = self._rpc_state.status_details
 *             else:
 */
      goto __pyx_L8;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":185
 *                 details = self._rpc_state.status_details
 *             else:
 *                 self._rpc_state.status_details = details             # <<<<<<<<<<<<<<
 * 
 *             actual_code = get_status_code(code)
 */
    /*else*/ {
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_details);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_details);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->status_details);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->status_details);
      __pyx_cur_scope->__pyx_v_self->_rpc_state->status_details = __pyx_cur_scope->__pyx_v_details;
    }
    __pyx_L8:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":187
 *                 self._rpc_state.status_details = details
 * 
 *             actual_code = get_status_code(code)             # <<<<<<<<<<<<<<
 *             self._rpc_state.py_status_code = code
 *             self._rpc_state.status_code = actual_code
 */
    __pyx_t_7 = __pyx_f_4grpc_7_cython_6cygrpc_get_status_code(__pyx_cur_scope->__pyx_v_code); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 187, __pyx_L1_error)
    __pyx_cur_scope->__pyx_v_actual_code = __pyx_t_7;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":188
 * 
 *             actual_code = get_status_code(code)
 *             self._rpc_state.py_status_code = code             # <<<<<<<<<<<<<<
 *             self._rpc_state.status_code = actual_code
 * 
 */
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_code);
    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_code);
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->py_status_code);
    __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->py_status_code);
    __pyx_cur_scope->__pyx_v_self->_rpc_state->py_status_code = __pyx_cur_scope->__pyx_v_code;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":189
 *             actual_code = get_status_code(code)
 *             self._rpc_state.py_status_code = code
 *             self._rpc_state.status_code = actual_code             # <<<<<<<<<<<<<<
 * 
 *             self._rpc_state.status_sent = True
 */
    __pyx_cur_scope->__pyx_v_self->_rpc_state->status_code = __pyx_cur_scope->__pyx_v_actual_code;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":191
 *             self._rpc_state.status_code = actual_code
 * 
 *             self._rpc_state.status_sent = True             # <<<<<<<<<<<<<<
 *             await _send_error_status_from_server(
 *                 self._rpc_state,
 */
    __pyx_cur_scope->__pyx_v_self->_rpc_state->status_sent = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":192
 * 
 *             self._rpc_state.status_sent = True
 *             await _send_error_status_from_server(             # <<<<<<<<<<<<<<
 *                 self._rpc_state,
 *                 actual_code,
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_send_error_status_from_server); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 192, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":194
 *             await _send_error_status_from_server(
 *                 self._rpc_state,
 *                 actual_code,             # <<<<<<<<<<<<<<
 *                 details,
 *                 trailing_metadata,
 */
    __pyx_t_4 = __Pyx_PyInt_From_grpc_status_code(__pyx_cur_scope->__pyx_v_actual_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 194, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":197
 *                 details,
 *                 trailing_metadata,
 *                 self._rpc_state.create_send_initial_metadata_op_if_not_sent(),             # <<<<<<<<<<<<<<
 *                 self._loop
 *             )
 */
    __pyx_t_8 = ((PyObject *)((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_self->_rpc_state->__pyx_vtab)->create_send_initial_metadata_op_if_not_sent(__pyx_cur_scope->__pyx_v_self->_rpc_state)); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":198
 *                 trailing_metadata,
 *                 self._rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *                 self._loop             # <<<<<<<<<<<<<<
 *             )
 * 
 */
    __pyx_t_9 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[7] = {__pyx_t_9, ((PyObject *)__pyx_cur_scope->__pyx_v_self->_rpc_state), __pyx_t_4, __pyx_cur_scope->__pyx_v_details, __pyx_cur_scope->__pyx_v_trailing_metadata, __pyx_t_8, __pyx_cur_scope->__pyx_v_self->_loop};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 6+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 192, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L11_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 192, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(9, 192, __pyx_L1_error)
      }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":201
 *             )
 * 
 *             raise self._rpc_state.abort_exception             # <<<<<<<<<<<<<<
 * 
 *     async def abort_with_status(self, object status):
 */
    __Pyx_Raise(__pyx_cur_scope->__pyx_v_self->_rpc_state->abort_exception, 0, 0, 0);
    __PYX_ERR(9, 201, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":164
 *             self._rpc_state.metadata_sent = True
 * 
 *     async def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("abort", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_16generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":203
 *             raise self._rpc_state.abort_exception
 * 
 *     async def abort_with_status(self, object status):             # <<<<<<<<<<<<<<
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_15abort_with_status(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_15abort_with_status = {"abort_with_status", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_15abort_with_status, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_15abort_with_status(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_status = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("abort_with_status (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_status,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_status)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 203, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "abort_with_status") < 0)) __PYX_ERR(9, 203, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_status = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("abort_with_status", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 203, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.abort_with_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_14abort_with_status(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_status);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_14abort_with_status(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_status) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("abort_with_status", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 203, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_status = __pyx_v_status;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_status);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_status);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_16generator23, __pyx_codeobj__78, (PyObject *) __pyx_cur_scope, __pyx_n_s_abort_with_status, __pyx_n_s_ServicerContext_abort_with_stat, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 203, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.abort_with_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_16generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  unsigned int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("abort_with_status", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 203, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":204
 * 
 *     async def abort_with_status(self, object status):
 *         await self.abort(status.code, status.details, status.trailing_metadata)             # <<<<<<<<<<<<<<
 * 
 *     def set_trailing_metadata(self, object metadata):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_abort); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_status, __pyx_n_s_code); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_status, __pyx_n_s_details); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_status, __pyx_n_s_trailing_metadata); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_6, __pyx_t_3, __pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 3+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 204, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(9, 204, __pyx_L1_error)
    }
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":203
 *             raise self._rpc_state.abort_exception
 * 
 *     async def abort_with_status(self, object status):             # <<<<<<<<<<<<<<
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("abort_with_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":206
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
 *     def set_trailing_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         raise_if_not_valid_trailing_metadata(metadata)
 *         self._rpc_state.trailing_metadata = tuple(metadata)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_18set_trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_18set_trailing_metadata = {"set_trailing_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_18set_trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_18set_trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_trailing_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_metadata,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 206, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_trailing_metadata") < 0)) __PYX_ERR(9, 206, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_metadata = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_trailing_metadata", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 206, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.set_trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_17set_trailing_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_metadata);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_17set_trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_trailing_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":207
 * 
 *     def set_trailing_metadata(self, object metadata):
 *         raise_if_not_valid_trailing_metadata(metadata)             # <<<<<<<<<<<<<<
 *         self._rpc_state.trailing_metadata = tuple(metadata)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_raise_if_not_valid_trailing_meta); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_metadata};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":208
 *     def set_trailing_metadata(self, object metadata):
 *         raise_if_not_valid_trailing_metadata(metadata)
 *         self._rpc_state.trailing_metadata = tuple(metadata)             # <<<<<<<<<<<<<<
 * 
 *     def trailing_metadata(self):
 */
  __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_metadata); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_rpc_state->trailing_metadata);
  __Pyx_DECREF(__pyx_v_self->_rpc_state->trailing_metadata);
  __pyx_v_self->_rpc_state->trailing_metadata = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":206
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
 *     def set_trailing_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         raise_if_not_valid_trailing_metadata(metadata)
 *         self._rpc_state.trailing_metadata = tuple(metadata)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.set_trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":210
 *         self._rpc_state.trailing_metadata = tuple(metadata)
 * 
 *     def trailing_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.trailing_metadata
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_20trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_20trailing_metadata = {"trailing_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_20trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_20trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("trailing_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("trailing_metadata", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "trailing_metadata", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_19trailing_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_19trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("trailing_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":211
 * 
 *     def trailing_metadata(self):
 *         return self._rpc_state.trailing_metadata             # <<<<<<<<<<<<<<
 * 
 *     def invocation_metadata(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_rpc_state->trailing_metadata);
  __pyx_r = __pyx_v_self->_rpc_state->trailing_metadata;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":210
 *         self._rpc_state.trailing_metadata = tuple(metadata)
 * 
 *     def trailing_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.trailing_metadata
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":213
 *         return self._rpc_state.trailing_metadata
 * 
 *     def invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.invocation_metadata()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_22invocation_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_22invocation_metadata = {"invocation_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_22invocation_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_22invocation_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("invocation_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("invocation_metadata", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "invocation_metadata", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_21invocation_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_21invocation_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("invocation_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":214
 * 
 *     def invocation_metadata(self):
 *         return self._rpc_state.invocation_metadata()             # <<<<<<<<<<<<<<
 * 
 *     def set_code(self, object code):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_v_self->_rpc_state->__pyx_vtab)->invocation_metadata(__pyx_v_self->_rpc_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":213
 *         return self._rpc_state.trailing_metadata
 * 
 *     def invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.invocation_metadata()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.invocation_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":216
 *         return self._rpc_state.invocation_metadata()
 * 
 *     def set_code(self, object code):             # <<<<<<<<<<<<<<
 *         self._rpc_state.status_code = get_status_code(code)
 *         self._rpc_state.py_status_code = code
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_24set_code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_24set_code = {"set_code", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_24set_code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_24set_code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_code (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_code,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_code)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 216, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_code") < 0)) __PYX_ERR(9, 216, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_code = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_code", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 216, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.set_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_23set_code(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_code);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_23set_code(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_code) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  grpc_status_code __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_code", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":217
 * 
 *     def set_code(self, object code):
 *         self._rpc_state.status_code = get_status_code(code)             # <<<<<<<<<<<<<<
 *         self._rpc_state.py_status_code = code
 * 
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_get_status_code(__pyx_v_code); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 217, __pyx_L1_error)
  __pyx_v_self->_rpc_state->status_code = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":218
 *     def set_code(self, object code):
 *         self._rpc_state.status_code = get_status_code(code)
 *         self._rpc_state.py_status_code = code             # <<<<<<<<<<<<<<
 * 
 *     def code(self):
 */
  __Pyx_INCREF(__pyx_v_code);
  __Pyx_GIVEREF(__pyx_v_code);
  __Pyx_GOTREF(__pyx_v_self->_rpc_state->py_status_code);
  __Pyx_DECREF(__pyx_v_self->_rpc_state->py_status_code);
  __pyx_v_self->_rpc_state->py_status_code = __pyx_v_code;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":216
 *         return self._rpc_state.invocation_metadata()
 * 
 *     def set_code(self, object code):             # <<<<<<<<<<<<<<
 *         self._rpc_state.status_code = get_status_code(code)
 *         self._rpc_state.py_status_code = code
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.set_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":220
 *         self._rpc_state.py_status_code = code
 * 
 *     def code(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.py_status_code
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_26code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_26code = {"code", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_26code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_26code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("code (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("code", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "code", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_25code(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_25code(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("code", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":221
 * 
 *     def code(self):
 *         return self._rpc_state.py_status_code             # <<<<<<<<<<<<<<
 * 
 *     def set_details(self, str details):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_rpc_state->py_status_code);
  __pyx_r = __pyx_v_self->_rpc_state->py_status_code;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":220
 *         self._rpc_state.py_status_code = code
 * 
 *     def code(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.py_status_code
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":223
 *         return self._rpc_state.py_status_code
 * 
 *     def set_details(self, str details):             # <<<<<<<<<<<<<<
 *         self._rpc_state.status_details = details
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_28set_details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_28set_details = {"set_details", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_28set_details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_28set_details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_details (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_details,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 223, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_details") < 0)) __PYX_ERR(9, 223, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_details = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_details", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 223, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.set_details", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_details), (&PyString_Type), 1, "details", 1))) __PYX_ERR(9, 223, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_27set_details(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_details);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_27set_details(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_details) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_details", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":224
 * 
 *     def set_details(self, str details):
 *         self._rpc_state.status_details = details             # <<<<<<<<<<<<<<
 * 
 *     def details(self):
 */
  __Pyx_INCREF(__pyx_v_details);
  __Pyx_GIVEREF(__pyx_v_details);
  __Pyx_GOTREF(__pyx_v_self->_rpc_state->status_details);
  __Pyx_DECREF(__pyx_v_self->_rpc_state->status_details);
  __pyx_v_self->_rpc_state->status_details = __pyx_v_details;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":223
 *         return self._rpc_state.py_status_code
 * 
 *     def set_details(self, str details):             # <<<<<<<<<<<<<<
 *         self._rpc_state.status_details = details
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":226
 *         self._rpc_state.status_details = details
 * 
 *     def details(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_details
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_30details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_30details = {"details", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_30details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_30details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("details (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("details", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "details", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_29details(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_29details(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("details", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":227
 * 
 *     def details(self):
 *         return self._rpc_state.status_details             # <<<<<<<<<<<<<<
 * 
 *     def set_compression(self, object compression):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_rpc_state->status_details);
  __pyx_r = __pyx_v_self->_rpc_state->status_details;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":226
 *         self._rpc_state.status_details = details
 * 
 *     def details(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_details
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":229
 *         return self._rpc_state.status_details
 * 
 *     def set_compression(self, object compression):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.metadata_sent:
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_32set_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_32set_compression = {"set_compression", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_32set_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_32set_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_compression = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_compression (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_compression,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_compression)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 229, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_compression") < 0)) __PYX_ERR(9, 229, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_compression = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_compression", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 229, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.set_compression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_31set_compression(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_compression);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_31set_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_compression) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_compression", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":230
 * 
 *     def set_compression(self, object compression):
 *         if self._rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')
 *         else:
 */
  if (unlikely(__pyx_v_self->_rpc_state->metadata_sent)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":231
 *     def set_compression(self, object compression):
 *         if self._rpc_state.metadata_sent:
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')             # <<<<<<<<<<<<<<
 *         else:
 *             self._rpc_state.compression_algorithm = compression
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__79, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 231, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(9, 231, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":230
 * 
 *     def set_compression(self, object compression):
 *         if self._rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')
 *         else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":233
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')
 *         else:
 *             self._rpc_state.compression_algorithm = compression             # <<<<<<<<<<<<<<
 * 
 *     def disable_next_message_compression(self):
 */
  /*else*/ {
    __Pyx_INCREF(__pyx_v_compression);
    __Pyx_GIVEREF(__pyx_v_compression);
    __Pyx_GOTREF(__pyx_v_self->_rpc_state->compression_algorithm);
    __Pyx_DECREF(__pyx_v_self->_rpc_state->compression_algorithm);
    __pyx_v_self->_rpc_state->compression_algorithm = __pyx_v_compression;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":229
 *         return self._rpc_state.status_details
 * 
 *     def set_compression(self, object compression):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.metadata_sent:
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.set_compression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":235
 *             self._rpc_state.compression_algorithm = compression
 * 
 *     def disable_next_message_compression(self):             # <<<<<<<<<<<<<<
 *         self._rpc_state.disable_next_compression = True
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_34disable_next_message_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_34disable_next_message_compression = {"disable_next_message_compression", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_34disable_next_message_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_34disable_next_message_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("disable_next_message_compression (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("disable_next_message_compression", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "disable_next_message_compression", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_33disable_next_message_compression(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_33disable_next_message_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("disable_next_message_compression", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":236
 * 
 *     def disable_next_message_compression(self):
 *         self._rpc_state.disable_next_compression = True             # <<<<<<<<<<<<<<
 * 
 *     def peer(self):
 */
  __pyx_v_self->_rpc_state->disable_next_compression = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":235
 *             self._rpc_state.compression_algorithm = compression
 * 
 *     def disable_next_message_compression(self):             # <<<<<<<<<<<<<<
 *         self._rpc_state.disable_next_compression = True
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":238
 *         self._rpc_state.disable_next_compression = True
 * 
 *     def peer(self):             # <<<<<<<<<<<<<<
 *         cdef char *c_peer = NULL
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_36peer(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_36peer = {"peer", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_36peer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_36peer(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("peer", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "peer", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_35peer(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_35peer(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  char *__pyx_v_c_peer;
  PyObject *__pyx_v_peer = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":239
 * 
 *     def peer(self):
 *         cdef char *c_peer = NULL             # <<<<<<<<<<<<<<
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)
 *         peer = (<bytes>c_peer).decode('utf8')
 */
  __pyx_v_c_peer = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":240
 *     def peer(self):
 *         cdef char *c_peer = NULL
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)             # <<<<<<<<<<<<<<
 *         peer = (<bytes>c_peer).decode('utf8')
 *         gpr_free(c_peer)
 */
  __pyx_v_c_peer = grpc_call_get_peer(__pyx_v_self->_rpc_state->__pyx_base.call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":241
 *         cdef char *c_peer = NULL
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)
 *         peer = (<bytes>c_peer).decode('utf8')             # <<<<<<<<<<<<<<
 *         gpr_free(c_peer)
 *         return peer
 */
  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_c_peer); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
    __PYX_ERR(9, 241, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_t_1), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_peer = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":242
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)
 *         peer = (<bytes>c_peer).decode('utf8')
 *         gpr_free(c_peer)             # <<<<<<<<<<<<<<
 *         return peer
 * 
 */
  gpr_free(__pyx_v_c_peer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":243
 *         peer = (<bytes>c_peer).decode('utf8')
 *         gpr_free(c_peer)
 *         return peer             # <<<<<<<<<<<<<<
 * 
 *     def peer_identities(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_peer);
  __pyx_r = __pyx_v_peer;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":238
 *         self._rpc_state.disable_next_compression = True
 * 
 *     def peer(self):             # <<<<<<<<<<<<<<
 *         cdef char *c_peer = NULL
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.peer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_peer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":245
 *         return peer
 * 
 *     def peer_identities(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_38peer_identities(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_38peer_identities = {"peer_identities", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_38peer_identities, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_38peer_identities(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer_identities (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("peer_identities", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "peer_identities", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_37peer_identities(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_37peer_identities(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_query_call = 0;
  PyObject *__pyx_v_identities = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  grpc_call *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer_identities", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":246
 * 
 *     def peer_identities(self):
 *         cdef Call query_call = Call()             # <<<<<<<<<<<<<<
 *         query_call.c_call = self._rpc_state.call
 *         identities = peer_identities(query_call)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Call)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_query_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":247
 *     def peer_identities(self):
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call             # <<<<<<<<<<<<<<
 *         identities = peer_identities(query_call)
 *         query_call.c_call = NULL
 */
  __pyx_t_2 = __pyx_v_self->_rpc_state->__pyx_base.call;
  __pyx_v_query_call->c_call = __pyx_t_2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":248
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 *         identities = peer_identities(query_call)             # <<<<<<<<<<<<<<
 *         query_call.c_call = NULL
 *         return identities
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_peer_identities); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_query_call)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_identities = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":249
 *         query_call.c_call = self._rpc_state.call
 *         identities = peer_identities(query_call)
 *         query_call.c_call = NULL             # <<<<<<<<<<<<<<
 *         return identities
 * 
 */
  __pyx_v_query_call->c_call = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":250
 *         identities = peer_identities(query_call)
 *         query_call.c_call = NULL
 *         return identities             # <<<<<<<<<<<<<<
 * 
 *     def peer_identity_key(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_identities);
  __pyx_r = __pyx_v_identities;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":245
 *         return peer
 * 
 *     def peer_identities(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.peer_identities", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_query_call);
  __Pyx_XDECREF(__pyx_v_identities);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":252
 *         return identities
 * 
 *     def peer_identity_key(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_40peer_identity_key(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_40peer_identity_key = {"peer_identity_key", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_40peer_identity_key, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_40peer_identity_key(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer_identity_key (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("peer_identity_key", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "peer_identity_key", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_39peer_identity_key(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_39peer_identity_key(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_query_call = 0;
  PyObject *__pyx_v_identity_key = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  grpc_call *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer_identity_key", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":253
 * 
 *     def peer_identity_key(self):
 *         cdef Call query_call = Call()             # <<<<<<<<<<<<<<
 *         query_call.c_call = self._rpc_state.call
 *         identity_key = peer_identity_key(query_call)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Call)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_query_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":254
 *     def peer_identity_key(self):
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call             # <<<<<<<<<<<<<<
 *         identity_key = peer_identity_key(query_call)
 *         query_call.c_call = NULL
 */
  __pyx_t_2 = __pyx_v_self->_rpc_state->__pyx_base.call;
  __pyx_v_query_call->c_call = __pyx_t_2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":255
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 *         identity_key = peer_identity_key(query_call)             # <<<<<<<<<<<<<<
 *         query_call.c_call = NULL
 *         if identity_key:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_peer_identity_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_query_call)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_identity_key = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":256
 *         query_call.c_call = self._rpc_state.call
 *         identity_key = peer_identity_key(query_call)
 *         query_call.c_call = NULL             # <<<<<<<<<<<<<<
 *         if identity_key:
 *             return identity_key.decode('utf8')
 */
  __pyx_v_query_call->c_call = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":257
 *         identity_key = peer_identity_key(query_call)
 *         query_call.c_call = NULL
 *         if identity_key:             # <<<<<<<<<<<<<<
 *             return identity_key.decode('utf8')
 *         else:
 */
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_identity_key); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 257, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":258
 *         query_call.c_call = NULL
 *         if identity_key:
 *             return identity_key.decode('utf8')             # <<<<<<<<<<<<<<
 *         else:
 *             return None
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_identity_key, __pyx_n_s_decode); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_n_s_utf8};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 258, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":257
 *         identity_key = peer_identity_key(query_call)
 *         query_call.c_call = NULL
 *         if identity_key:             # <<<<<<<<<<<<<<
 *             return identity_key.decode('utf8')
 *         else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":260
 *             return identity_key.decode('utf8')
 *         else:
 *             return None             # <<<<<<<<<<<<<<
 * 
 *     def auth_context(self):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":252
 *         return identities
 * 
 *     def peer_identity_key(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.peer_identity_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_query_call);
  __Pyx_XDECREF(__pyx_v_identity_key);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":262
 *             return None
 * 
 *     def auth_context(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_42auth_context(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_42auth_context = {"auth_context", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_42auth_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_42auth_context(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("auth_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("auth_context", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "auth_context", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_41auth_context(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_41auth_context(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_query_call = 0;
  PyObject *__pyx_v_bytes_ctx = NULL;
  PyObject *__pyx_v_ctx = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  grpc_call *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("auth_context", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":263
 * 
 *     def auth_context(self):
 *         cdef Call query_call = Call()             # <<<<<<<<<<<<<<
 *         query_call.c_call = self._rpc_state.call
 *         bytes_ctx = auth_context(query_call)
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Call)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_query_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":264
 *     def auth_context(self):
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call             # <<<<<<<<<<<<<<
 *         bytes_ctx = auth_context(query_call)
 *         query_call.c_call = NULL
 */
  __pyx_t_2 = __pyx_v_self->_rpc_state->__pyx_base.call;
  __pyx_v_query_call->c_call = __pyx_t_2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":265
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 *         bytes_ctx = auth_context(query_call)             # <<<<<<<<<<<<<<
 *         query_call.c_call = NULL
 *         if bytes_ctx:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_auth_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_query_call)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 265, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_bytes_ctx = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":266
 *         query_call.c_call = self._rpc_state.call
 *         bytes_ctx = auth_context(query_call)
 *         query_call.c_call = NULL             # <<<<<<<<<<<<<<
 *         if bytes_ctx:
 *             ctx = {}
 */
  __pyx_v_query_call->c_call = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":267
 *         bytes_ctx = auth_context(query_call)
 *         query_call.c_call = NULL
 *         if bytes_ctx:             # <<<<<<<<<<<<<<
 *             ctx = {}
 *             for key in bytes_ctx:
 */
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_bytes_ctx); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 267, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":268
 *         query_call.c_call = NULL
 *         if bytes_ctx:
 *             ctx = {}             # <<<<<<<<<<<<<<
 *             for key in bytes_ctx:
 *                 ctx[key.decode('utf8')] = bytes_ctx[key]
 */
    __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_ctx = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":269
 *         if bytes_ctx:
 *             ctx = {}
 *             for key in bytes_ctx:             # <<<<<<<<<<<<<<
 *                 ctx[key.decode('utf8')] = bytes_ctx[key]
 *             return ctx
 */
    if (likely(PyList_CheckExact(__pyx_v_bytes_ctx)) || PyTuple_CheckExact(__pyx_v_bytes_ctx)) {
      __pyx_t_1 = __pyx_v_bytes_ctx; __Pyx_INCREF(__pyx_t_1);
      __pyx_t_7 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_bytes_ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 269, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 269, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
            #if !CYTHON_ASSUME_SAFE_MACROS
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(9, 269, __pyx_L1_error)
            #endif
            if (__pyx_t_7 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(9, 269, __pyx_L1_error)
          #else
          __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 269, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
            #if !CYTHON_ASSUME_SAFE_MACROS
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(9, 269, __pyx_L1_error)
            #endif
            if (__pyx_t_7 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(9, 269, __pyx_L1_error)
          #else
          __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 269, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_8(__pyx_t_1);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(9, 269, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":270
 *             ctx = {}
 *             for key in bytes_ctx:
 *                 ctx[key.decode('utf8')] = bytes_ctx[key]             # <<<<<<<<<<<<<<
 *             return ctx
 *         else:
 */
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_bytes_ctx, __pyx_v_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 270, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_key, __pyx_n_s_decode); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 270, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = NULL;
      __pyx_t_5 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
          __pyx_t_5 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_n_s_utf8};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 270, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
      if (unlikely((PyDict_SetItem(__pyx_v_ctx, __pyx_t_4, __pyx_t_3) < 0))) __PYX_ERR(9, 270, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":269
 *         if bytes_ctx:
 *             ctx = {}
 *             for key in bytes_ctx:             # <<<<<<<<<<<<<<
 *                 ctx[key.decode('utf8')] = bytes_ctx[key]
 *             return ctx
 */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":271
 *             for key in bytes_ctx:
 *                 ctx[key.decode('utf8')] = bytes_ctx[key]
 *             return ctx             # <<<<<<<<<<<<<<
 *         else:
 *             return {}
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_ctx);
    __pyx_r = __pyx_v_ctx;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":267
 *         bytes_ctx = auth_context(query_call)
 *         query_call.c_call = NULL
 *         if bytes_ctx:             # <<<<<<<<<<<<<<
 *             ctx = {}
 *             for key in bytes_ctx:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":273
 *             return ctx
 *         else:
 *             return {}             # <<<<<<<<<<<<<<
 * 
 *     def time_remaining(self):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 273, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":262
 *             return None
 * 
 *     def auth_context(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.auth_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_query_call);
  __Pyx_XDECREF(__pyx_v_bytes_ctx);
  __Pyx_XDECREF(__pyx_v_ctx);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":275
 *             return {}
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.details.deadline.seconds == _GPR_INF_FUTURE.seconds:
 *             return None
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_44time_remaining(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_44time_remaining = {"time_remaining", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_44time_remaining, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_44time_remaining(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("time_remaining (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("time_remaining", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "time_remaining", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_43time_remaining(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_43time_remaining(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  long __pyx_t_2;
  double __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  unsigned int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("time_remaining", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":276
 * 
 *     def time_remaining(self):
 *         if self._rpc_state.details.deadline.seconds == _GPR_INF_FUTURE.seconds:             # <<<<<<<<<<<<<<
 *             return None
 *         else:
 */
  __pyx_t_1 = (__pyx_v_self->_rpc_state->details.deadline.tv_sec == __pyx_v_4grpc_7_cython_6cygrpc__GPR_INF_FUTURE.tv_sec);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":277
 *     def time_remaining(self):
 *         if self._rpc_state.details.deadline.seconds == _GPR_INF_FUTURE.seconds:
 *             return None             # <<<<<<<<<<<<<<
 *         else:
 *             return max(_time_from_timespec(self._rpc_state.details.deadline) - time.time(), 0)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":276
 * 
 *     def time_remaining(self):
 *         if self._rpc_state.details.deadline.seconds == _GPR_INF_FUTURE.seconds:             # <<<<<<<<<<<<<<
 *             return None
 *         else:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":279
 *             return None
 *         else:
 *             return max(_time_from_timespec(self._rpc_state.details.deadline) - time.time(), 0)             # <<<<<<<<<<<<<<
 * 
 *     def add_done_callback(self, callback):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = 0;
    __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__time_from_timespec(__pyx_v_self->_rpc_state->details.deadline); if (unlikely(__pyx_t_3 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(9, 279, __pyx_L1_error)
    __pyx_t_4 = PyFloat_FromDouble(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_time); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_time); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __pyx_t_7 = PyNumber_Subtract(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_t_7, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_1) {
      __pyx_t_6 = __Pyx_PyInt_From_long(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = __pyx_t_6;
      __pyx_t_6 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_7);
      __pyx_t_5 = __pyx_t_7;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_r = __pyx_t_5;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":275
 *             return {}
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.details.deadline.seconds == _GPR_INF_FUTURE.seconds:
 *             return None
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.time_remaining", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":281
 *             return max(_time_from_timespec(self._rpc_state.details.deadline) - time.time(), 0)
 * 
 *     def add_done_callback(self, callback):             # <<<<<<<<<<<<<<
 *         cb = functools.partial(callback, self)
 *         self._rpc_state.callbacks.append(cb)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_46add_done_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_46add_done_callback = {"add_done_callback", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_46add_done_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_46add_done_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_callback = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_done_callback (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_callback,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_callback)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 281, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "add_done_callback") < 0)) __PYX_ERR(9, 281, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_callback = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_done_callback", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 281, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.add_done_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_45add_done_callback(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_callback);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_45add_done_callback(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_callback) {
  PyObject *__pyx_v_cb = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_done_callback", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":282
 * 
 *     def add_done_callback(self, callback):
 *         cb = functools.partial(callback, self)             # <<<<<<<<<<<<<<
 *         self._rpc_state.callbacks.append(cb)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_functools); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_partial); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_callback, ((PyObject *)__pyx_v_self)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_cb = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":283
 *     def add_done_callback(self, callback):
 *         cb = functools.partial(callback, self)
 *         self._rpc_state.callbacks.append(cb)             # <<<<<<<<<<<<<<
 * 
 *     def done(self):
 */
  __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_self->_rpc_state->callbacks, __pyx_v_cb); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(9, 283, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":281
 *             return max(_time_from_timespec(self._rpc_state.details.deadline) - time.time(), 0)
 * 
 *     def add_done_callback(self, callback):             # <<<<<<<<<<<<<<
 *         cb = functools.partial(callback, self)
 *         self._rpc_state.callbacks.append(cb)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.add_done_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cb);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":285
 *         self._rpc_state.callbacks.append(cb)
 * 
 *     def done(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_sent
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_48done(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_48done = {"done", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_48done, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_48done(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("done (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("done", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "done", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_47done(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_47done(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("done", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":286
 * 
 *     def done(self):
 *         return self._rpc_state.status_sent             # <<<<<<<<<<<<<<
 * 
 *     def cancelled(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->_rpc_state->status_sent); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":285
 *         self._rpc_state.callbacks.append(cb)
 * 
 *     def done(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_sent
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.done", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":288
 *         return self._rpc_state.status_sent
 * 
 *     def cancelled(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_code == StatusCode.cancelled
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_50cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_50cancelled = {"cancelled", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_50cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_50cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancelled (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("cancelled", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "cancelled", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_49cancelled(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_49cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cancelled", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":289
 * 
 *     def cancelled(self):
 *         return self._rpc_state.status_code == StatusCode.cancelled             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_grpc_status_code(__pyx_v_self->_rpc_state->status_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_cancelled); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":288
 *         return self._rpc_state.status_sent
 * 
 *     def cancelled(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_code == StatusCode.cancelled
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.cancelled", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_52__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_52__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_52__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_52__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_51__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_51__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_54__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_54__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_54__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_54__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_53__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_53__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":295
 *     """Sync servicer context for sync handler compatibility."""
 * 
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   _ServicerContext context):
 *         self._context = context
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_context = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_context,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_context)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 295, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(9, 295, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 295, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, 1, "context", 0))) __PYX_ERR(9, 296, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_context);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_context) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":297
 *     def __cinit__(self,
 *                   _ServicerContext context):
 *         self._context = context             # <<<<<<<<<<<<<<
 *         self._callbacks = []
 *         self._loop = context._loop
 */
  __Pyx_INCREF((PyObject *)__pyx_v_context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_context);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_context);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_context);
  __pyx_v_self->_context = __pyx_v_context;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":298
 *                   _ServicerContext context):
 *         self._context = context
 *         self._callbacks = []             # <<<<<<<<<<<<<<
 *         self._loop = context._loop
 * 
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_callbacks);
  __Pyx_DECREF(__pyx_v_self->_callbacks);
  __pyx_v_self->_callbacks = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":299
 *         self._context = context
 *         self._callbacks = []
 *         self._loop = context._loop             # <<<<<<<<<<<<<<
 * 
 *     def abort(self,
 */
  __pyx_t_1 = __pyx_v_context->_loop;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_loop);
  __Pyx_DECREF(__pyx_v_self->_loop);
  __pyx_v_self->_loop = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":295
 *     """Sync servicer context for sync handler compatibility."""
 * 
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   _ServicerContext context):
 *         self._context = context
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":301
 *         self._loop = context._loop
 * 
 *     def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_3abort(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_3abort = {"abort", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_3abort, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_3abort(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  PyObject *__pyx_v_details = 0;
  PyObject *__pyx_v_trailing_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("abort (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_code,&__pyx_n_s_details,&__pyx_n_s_trailing_metadata,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject*)__pyx_kp_s__7));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(__pyx_k__80);
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_code)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 301, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_details);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 301, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_trailing_metadata);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 301, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "abort") < 0)) __PYX_ERR(9, 301, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_code = values[0];
    __pyx_v_details = ((PyObject*)values[1]);
    __pyx_v_trailing_metadata = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("abort", 0, 1, 3, __pyx_nargs); __PYX_ERR(9, 301, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.abort", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_details), (&PyString_Type), 1, "details", 1))) __PYX_ERR(9, 303, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_trailing_metadata), (&PyTuple_Type), 1, "trailing_metadata", 1))) __PYX_ERR(9, 304, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_2abort(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_code, __pyx_v_details, __pyx_v_trailing_metadata);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_2abort(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata) {
  PyObject *__pyx_v_future = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("abort", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":305
 *               str details='',
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):
 *         future = asyncio.run_coroutine_threadsafe(             # <<<<<<<<<<<<<<
 *             self._context.abort(code, details, trailing_metadata),
 *             self._loop)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_run_coroutine_threadsafe); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":306
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.abort(code, details, trailing_metadata),             # <<<<<<<<<<<<<<
 *             self._loop)
 *         # Abort should raise an AbortError
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context), __pyx_n_s_abort); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_v_code, __pyx_v_details, __pyx_v_trailing_metadata};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 306, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":307
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.abort(code, details, trailing_metadata),
 *             self._loop)             # <<<<<<<<<<<<<<
 *         # Abort should raise an AbortError
 *         future.exception()
 */
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_2, __pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_future = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":309
 *             self._loop)
 *         # Abort should raise an AbortError
 *         future.exception()             # <<<<<<<<<<<<<<
 * 
 *     def send_initial_metadata(self, object metadata):
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_future, __pyx_n_s_exception); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 309, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":301
 *         self._loop = context._loop
 * 
 *     def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.abort", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_future);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":311
 *         future.exception()
 * 
 *     def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.send_initial_metadata(metadata),
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_5send_initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_5send_initial_metadata = {"send_initial_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_5send_initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_5send_initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("send_initial_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_metadata,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 311, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "send_initial_metadata") < 0)) __PYX_ERR(9, 311, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_metadata = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("send_initial_metadata", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 311, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_4send_initial_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_metadata);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_4send_initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata) {
  PyObject *__pyx_v_future = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("send_initial_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":312
 * 
 *     def send_initial_metadata(self, object metadata):
 *         future = asyncio.run_coroutine_threadsafe(             # <<<<<<<<<<<<<<
 *             self._context.send_initial_metadata(metadata),
 *             self._loop)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_run_coroutine_threadsafe); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":313
 *     def send_initial_metadata(self, object metadata):
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.send_initial_metadata(metadata),             # <<<<<<<<<<<<<<
 *             self._loop)
 *         future.result()
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context), __pyx_n_s_send_initial_metadata_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_metadata};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":314
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.send_initial_metadata(metadata),
 *             self._loop)             # <<<<<<<<<<<<<<
 *         future.result()
 * 
 */
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_2, __pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 312, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_future = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":315
 *             self._context.send_initial_metadata(metadata),
 *             self._loop)
 *         future.result()             # <<<<<<<<<<<<<<
 * 
 *     def set_trailing_metadata(self, object metadata):
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_future, __pyx_n_s_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":311
 *         future.exception()
 * 
 *     def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.send_initial_metadata(metadata),
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_future);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":317
 *         future.result()
 * 
 *     def set_trailing_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._context.set_trailing_metadata(metadata)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_7set_trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_7set_trailing_metadata = {"set_trailing_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_7set_trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_7set_trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_trailing_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_metadata,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 317, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_trailing_metadata") < 0)) __PYX_ERR(9, 317, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_metadata = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_trailing_metadata", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 317, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_6set_trailing_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_metadata);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_6set_trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_trailing_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":318
 * 
 *     def set_trailing_metadata(self, object metadata):
 *         self._context.set_trailing_metadata(metadata)             # <<<<<<<<<<<<<<
 * 
 *     def invocation_metadata(self):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context), __pyx_n_s_set_trailing_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_metadata};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 318, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":317
 *         future.result()
 * 
 *     def set_trailing_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._context.set_trailing_metadata(metadata)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":320
 *         self._context.set_trailing_metadata(metadata)
 * 
 *     def invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._context.invocation_metadata()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_9invocation_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_9invocation_metadata = {"invocation_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_9invocation_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_9invocation_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("invocation_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("invocation_metadata", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "invocation_metadata", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_8invocation_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_8invocation_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("invocation_metadata", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":321
 * 
 *     def invocation_metadata(self):
 *         return self._context.invocation_metadata()             # <<<<<<<<<<<<<<
 * 
 *     def set_code(self, object code):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context), __pyx_n_s_invocation_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":320
 *         self._context.set_trailing_metadata(metadata)
 * 
 *     def invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._context.invocation_metadata()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.invocation_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":323
 *         return self._context.invocation_metadata()
 * 
 *     def set_code(self, object code):             # <<<<<<<<<<<<<<
 *         self._context.set_code(code)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_11set_code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_11set_code = {"set_code", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_11set_code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_11set_code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_code (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_code,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_code)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 323, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_code") < 0)) __PYX_ERR(9, 323, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_code = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_code", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 323, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_10set_code(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_code);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_10set_code(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_code) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_code", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":324
 * 
 *     def set_code(self, object code):
 *         self._context.set_code(code)             # <<<<<<<<<<<<<<
 * 
 *     def set_details(self, str details):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context), __pyx_n_s_set_code); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_code};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":323
 *         return self._context.invocation_metadata()
 * 
 *     def set_code(self, object code):             # <<<<<<<<<<<<<<
 *         self._context.set_code(code)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":326
 *         self._context.set_code(code)
 * 
 *     def set_details(self, str details):             # <<<<<<<<<<<<<<
 *         self._context.set_details(details)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_13set_details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_13set_details = {"set_details", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_13set_details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_13set_details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_details (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_details,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 326, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_details") < 0)) __PYX_ERR(9, 326, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_details = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_details", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 326, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_details", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_details), (&PyString_Type), 1, "details", 1))) __PYX_ERR(9, 326, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_12set_details(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_details);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_12set_details(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_details) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_details", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":327
 * 
 *     def set_details(self, str details):
 *         self._context.set_details(details)             # <<<<<<<<<<<<<<
 * 
 *     def set_compression(self, object compression):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context), __pyx_n_s_set_details); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_details};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 327, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":326
 *         self._context.set_code(code)
 * 
 *     def set_details(self, str details):             # <<<<<<<<<<<<<<
 *         self._context.set_details(details)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_details", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":329
 *         self._context.set_details(details)
 * 
 *     def set_compression(self, object compression):             # <<<<<<<<<<<<<<
 *         self._context.set_compression(compression)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_15set_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_15set_compression = {"set_compression", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_15set_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_15set_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_compression = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_compression (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_compression,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_compression)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 329, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_compression") < 0)) __PYX_ERR(9, 329, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_compression = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_compression", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 329, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_compression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_14set_compression(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_compression);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_14set_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_compression) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_compression", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":330
 * 
 *     def set_compression(self, object compression):
 *         self._context.set_compression(compression)             # <<<<<<<<<<<<<<
 * 
 *     def disable_next_message_compression(self):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context), __pyx_n_s_set_compression); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_compression};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":329
 *         self._context.set_details(details)
 * 
 *     def set_compression(self, object compression):             # <<<<<<<<<<<<<<
 *         self._context.set_compression(compression)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_compression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":332
 *         self._context.set_compression(compression)
 * 
 *     def disable_next_message_compression(self):             # <<<<<<<<<<<<<<
 *         self._context.disable_next_message_compression()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_17disable_next_message_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_17disable_next_message_compression = {"disable_next_message_compression", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_17disable_next_message_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_17disable_next_message_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("disable_next_message_compression (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("disable_next_message_compression", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "disable_next_message_compression", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_16disable_next_message_compression(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_16disable_next_message_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("disable_next_message_compression", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":333
 * 
 *     def disable_next_message_compression(self):
 *         self._context.disable_next_message_compression()             # <<<<<<<<<<<<<<
 * 
 *     def add_callback(self, object callback):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context), __pyx_n_s_disable_next_message_compression); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":332
 *         self._context.set_compression(compression)
 * 
 *     def disable_next_message_compression(self):             # <<<<<<<<<<<<<<
 *         self._context.disable_next_message_compression()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.disable_next_message_compression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":335
 *         self._context.disable_next_message_compression()
 * 
 *     def add_callback(self, object callback):             # <<<<<<<<<<<<<<
 *         self._callbacks.append(callback)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_19add_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_19add_callback = {"add_callback", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_19add_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_19add_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_callback = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_callback (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_callback,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_callback)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 335, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "add_callback") < 0)) __PYX_ERR(9, 335, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_callback = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_callback", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 335, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.add_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_18add_callback(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_callback);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_18add_callback(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_callback) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_callback", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":336
 * 
 *     def add_callback(self, object callback):
 *         self._callbacks.append(callback)             # <<<<<<<<<<<<<<
 * 
 *     def peer(self):
 */
  if (unlikely(__pyx_v_self->_callbacks == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(9, 336, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyList_Append(__pyx_v_self->_callbacks, __pyx_v_callback); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(9, 336, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":335
 *         self._context.disable_next_message_compression()
 * 
 *     def add_callback(self, object callback):             # <<<<<<<<<<<<<<
 *         self._callbacks.append(callback)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.add_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":338
 *         self._callbacks.append(callback)
 * 
 *     def peer(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_21peer(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_21peer = {"peer", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_21peer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_21peer(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("peer", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "peer", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_20peer(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_20peer(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":339
 * 
 *     def peer(self):
 *         return self._context.peer()             # <<<<<<<<<<<<<<
 * 
 *     def peer_identities(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context), __pyx_n_s_peer); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 339, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":338
 *         self._callbacks.append(callback)
 * 
 *     def peer(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.peer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":341
 *         return self._context.peer()
 * 
 *     def peer_identities(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer_identities()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_23peer_identities(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_23peer_identities = {"peer_identities", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_23peer_identities, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_23peer_identities(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer_identities (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("peer_identities", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "peer_identities", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_22peer_identities(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_22peer_identities(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer_identities", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":342
 * 
 *     def peer_identities(self):
 *         return self._context.peer_identities()             # <<<<<<<<<<<<<<
 * 
 *     def peer_identity_key(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context), __pyx_n_s_peer_identities); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":341
 *         return self._context.peer()
 * 
 *     def peer_identities(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer_identities()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.peer_identities", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":344
 *         return self._context.peer_identities()
 * 
 *     def peer_identity_key(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer_identity_key()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_25peer_identity_key(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_25peer_identity_key = {"peer_identity_key", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_25peer_identity_key, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_25peer_identity_key(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer_identity_key (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("peer_identity_key", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "peer_identity_key", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_24peer_identity_key(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_24peer_identity_key(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer_identity_key", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":345
 * 
 *     def peer_identity_key(self):
 *         return self._context.peer_identity_key()             # <<<<<<<<<<<<<<
 * 
 *     def auth_context(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context), __pyx_n_s_peer_identity_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 345, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":344
 *         return self._context.peer_identities()
 * 
 *     def peer_identity_key(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer_identity_key()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.peer_identity_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":347
 *         return self._context.peer_identity_key()
 * 
 *     def auth_context(self):             # <<<<<<<<<<<<<<
 *         return self._context.auth_context()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_27auth_context(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_27auth_context = {"auth_context", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_27auth_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_27auth_context(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("auth_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("auth_context", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "auth_context", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_26auth_context(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_26auth_context(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("auth_context", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":348
 * 
 *     def auth_context(self):
 *         return self._context.auth_context()             # <<<<<<<<<<<<<<
 * 
 *     def time_remaining(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context), __pyx_n_s_auth_context); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 348, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":347
 *         return self._context.peer_identity_key()
 * 
 *     def auth_context(self):             # <<<<<<<<<<<<<<
 *         return self._context.auth_context()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.auth_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":350
 *         return self._context.auth_context()
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         return self._context.time_remaining()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_29time_remaining(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_29time_remaining = {"time_remaining", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_29time_remaining, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_29time_remaining(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("time_remaining (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("time_remaining", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "time_remaining", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_28time_remaining(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_28time_remaining(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("time_remaining", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":351
 * 
 *     def time_remaining(self):
 *         return self._context.time_remaining()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context), __pyx_n_s_time_remaining); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 351, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":350
 *         return self._context.auth_context()
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         return self._context.time_remaining()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.time_remaining", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_31__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_31__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_31__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_31__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_30__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_30__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_33__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_33__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_33__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_33__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_32__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_32__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_152generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":354
 * 
 * 
 * async def _run_interceptor(object interceptors, object query_handler,             # <<<<<<<<<<<<<<
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_151_run_interceptor(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_151_run_interceptor = {"_run_interceptor", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_151_run_interceptor, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_151_run_interceptor(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_interceptors = 0;
  PyObject *__pyx_v_query_handler = 0;
  PyObject *__pyx_v_handler_call_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run_interceptor (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_interceptors,&__pyx_n_s_query_handler,&__pyx_n_s_handler_call_details,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_interceptors)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 354, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_query_handler)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 354, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_run_interceptor", 1, 3, 3, 1); __PYX_ERR(9, 354, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_handler_call_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 354, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_run_interceptor", 1, 3, 3, 2); __PYX_ERR(9, 354, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_run_interceptor") < 0)) __PYX_ERR(9, 354, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_interceptors = values[0];
    __pyx_v_query_handler = values[1];
    __pyx_v_handler_call_details = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_run_interceptor", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 354, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_interceptor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_150_run_interceptor(__pyx_self, __pyx_v_interceptors, __pyx_v_query_handler, __pyx_v_handler_call_details);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_150_run_interceptor(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_interceptors, PyObject *__pyx_v_query_handler, PyObject *__pyx_v_handler_call_details) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_run_interceptor", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 354, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_interceptors = __pyx_v_interceptors;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_interceptors);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_interceptors);
  __pyx_cur_scope->__pyx_v_query_handler = __pyx_v_query_handler;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_query_handler);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_query_handler);
  __pyx_cur_scope->__pyx_v_handler_call_details = __pyx_v_handler_call_details;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_handler_call_details);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_handler_call_details);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_152generator24, __pyx_codeobj__81, (PyObject *) __pyx_cur_scope, __pyx_n_s_run_interceptor, __pyx_n_s_run_interceptor, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 354, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_interceptor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_152generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run_interceptor", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 354, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":356
 * async def _run_interceptor(object interceptors, object query_handler,
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)             # <<<<<<<<<<<<<<
 *     if interceptor:
 *         continuation = functools.partial(_run_interceptor, interceptors,
 */
  __pyx_t_1 = __Pyx_PyIter_Next2(__pyx_cur_scope->__pyx_v_interceptors, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_interceptor = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":357
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)
 *     if interceptor:             # <<<<<<<<<<<<<<
 *         continuation = functools.partial(_run_interceptor, interceptors,
 *                                          query_handler)
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_interceptor); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(9, 357, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":358
 *     interceptor = next(interceptors, None)
 *     if interceptor:
 *         continuation = functools.partial(_run_interceptor, interceptors,             # <<<<<<<<<<<<<<
 *                                          query_handler)
 *         return await interceptor.intercept_service(continuation, handler_call_details)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_functools); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_partial); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_run_interceptor); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":359
 *     if interceptor:
 *         continuation = functools.partial(_run_interceptor, interceptors,
 *                                          query_handler)             # <<<<<<<<<<<<<<
 *         return await interceptor.intercept_service(continuation, handler_call_details)
 *     else:
 */
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_3, __pyx_cur_scope->__pyx_v_interceptors, __pyx_cur_scope->__pyx_v_query_handler};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 358, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_v_continuation = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":360
 *         continuation = functools.partial(_run_interceptor, interceptors,
 *                                          query_handler)
 *         return await interceptor.intercept_service(continuation, handler_call_details)             # <<<<<<<<<<<<<<
 *     else:
 *         return query_handler(handler_call_details)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_interceptor, __pyx_n_s_intercept_service); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 360, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_continuation, __pyx_cur_scope->__pyx_v_handler_call_details};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 360, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L5_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 360, __pyx_L1_error)
      __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
    } else {
      __pyx_t_1 = NULL;
      if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(9, 360, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":357
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)
 *     if interceptor:             # <<<<<<<<<<<<<<
 *         continuation = functools.partial(_run_interceptor, interceptors,
 *                                          query_handler)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":362
 *         return await interceptor.intercept_service(continuation, handler_call_details)
 *     else:
 *         return query_handler(handler_call_details)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_query_handler);
    __pyx_t_4 = __pyx_cur_scope->__pyx_v_query_handler; __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_handler_call_details};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 362, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":354
 * 
 * 
 * async def _run_interceptor(object interceptors, object query_handler,             # <<<<<<<<<<<<<<
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("_run_interceptor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":365
 * 
 * 
 * def _is_async_handler(object handler):             # <<<<<<<<<<<<<<
 *     """Inspect if a method handler is async or sync."""
 *     return inspect.isawaitable(handler) or inspect.iscoroutinefunction(handler) or inspect.isasyncgenfunction(handler)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_154_is_async_handler(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_153_is_async_handler, "Inspect if a method handler is async or sync.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_154_is_async_handler = {"_is_async_handler", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_154_is_async_handler, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_153_is_async_handler};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_154_is_async_handler(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_handler = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_is_async_handler (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_handler,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_handler)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 365, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_is_async_handler") < 0)) __PYX_ERR(9, 365, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_handler = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_is_async_handler", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 365, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._is_async_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_153_is_async_handler(__pyx_self, __pyx_v_handler);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_153_is_async_handler(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_handler) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_is_async_handler", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":367
 * def _is_async_handler(object handler):
 *     """Inspect if a method handler is async or sync."""
 *     return inspect.isawaitable(handler) or inspect.iscoroutinefunction(handler) or inspect.isasyncgenfunction(handler)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_inspect); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_isawaitable); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_handler};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 367, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 367, __pyx_L1_error)
  if (!__pyx_t_6) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_inspect); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_iscoroutinefunction); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_handler};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 367, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 367, __pyx_L1_error)
  if (!__pyx_t_6) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_inspect); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_isasyncgenfunction); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_handler};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 367, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_1 = __pyx_t_2;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":365
 * 
 * 
 * def _is_async_handler(object handler):             # <<<<<<<<<<<<<<
 *     """Inspect if a method handler is async or sync."""
 *     return inspect.isawaitable(handler) or inspect.iscoroutinefunction(handler) or inspect.isasyncgenfunction(handler)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._is_async_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_157generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":370
 * 
 * 
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,             # <<<<<<<<<<<<<<
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_156_find_method_handler(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_156_find_method_handler = {"_find_method_handler", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_156_find_method_handler, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_156_find_method_handler(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_method = 0;
  PyObject *__pyx_v_metadata = 0;
  PyObject *__pyx_v_generic_handlers = 0;
  PyObject *__pyx_v_interceptors = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_find_method_handler (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_method,&__pyx_n_s_metadata,&__pyx_n_s_generic_handlers,&__pyx_n_s_interceptors,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 370, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_metadata)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 370, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_find_method_handler", 1, 4, 4, 1); __PYX_ERR(9, 370, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_generic_handlers)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 370, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_find_method_handler", 1, 4, 4, 2); __PYX_ERR(9, 370, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_interceptors)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 370, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_find_method_handler", 1, 4, 4, 3); __PYX_ERR(9, 370, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_find_method_handler") < 0)) __PYX_ERR(9, 370, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_method = ((PyObject*)values[0]);
    __pyx_v_metadata = ((PyObject*)values[1]);
    __pyx_v_generic_handlers = ((PyObject*)values[2]);
    __pyx_v_interceptors = ((PyObject*)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_find_method_handler", 1, 4, 4, __pyx_nargs); __PYX_ERR(9, 370, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._find_method_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyString_Type), 1, "method", 1))) __PYX_ERR(9, 370, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metadata), (&PyTuple_Type), 1, "metadata", 1))) __PYX_ERR(9, 370, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_generic_handlers), (&PyList_Type), 1, "generic_handlers", 1))) __PYX_ERR(9, 370, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interceptors), (&PyTuple_Type), 1, "interceptors", 1))) __PYX_ERR(9, 371, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_155_find_method_handler(__pyx_self, __pyx_v_method, __pyx_v_metadata, __pyx_v_generic_handlers, __pyx_v_interceptors);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_155_find_method_handler(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method, PyObject *__pyx_v_metadata, PyObject *__pyx_v_generic_handlers, PyObject *__pyx_v_interceptors) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_find_method_handler", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 370, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_method = __pyx_v_method;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_method);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_method);
  __pyx_cur_scope->__pyx_v_metadata = __pyx_v_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_metadata);
  __pyx_cur_scope->__pyx_v_generic_handlers = __pyx_v_generic_handlers;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_generic_handlers);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_generic_handlers);
  __pyx_cur_scope->__pyx_v_interceptors = __pyx_v_interceptors;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_interceptors);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_interceptors);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_157generator25, __pyx_codeobj__82, (PyObject *) __pyx_cur_scope, __pyx_n_s_find_method_handler, __pyx_n_s_find_method_handler, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 370, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._find_method_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":372
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):             # <<<<<<<<<<<<<<
 *         for generic_handler in generic_handlers:
 *             method_handler = generic_handler.service(handler_call_details)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_find_method_handler_1query_handlers(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_find_method_handler_1query_handlers = {"query_handlers", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_find_method_handler_1query_handlers, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_find_method_handler_1query_handlers(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_handler_call_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("query_handlers (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_handler_call_details,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_handler_call_details)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 372, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "query_handlers") < 0)) __PYX_ERR(9, 372, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_handler_call_details = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("query_handlers", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 372, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._find_method_handler.query_handlers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_find_method_handler_query_handlers(__pyx_self, __pyx_v_handler_call_details);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_find_method_handler_query_handlers(PyObject *__pyx_self, PyObject *__pyx_v_handler_call_details) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *__pyx_outer_scope;
  PyObject *__pyx_v_generic_handler = NULL;
  PyObject *__pyx_v_method_handler = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("query_handlers", 1);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":373
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
 *         for generic_handler in generic_handlers:             # <<<<<<<<<<<<<<
 *             method_handler = generic_handler.service(handler_call_details)
 *             if method_handler is not None:
 */
  if (unlikely(!__pyx_cur_scope->__pyx_v_generic_handlers)) { __Pyx_RaiseClosureNameError("generic_handlers"); __PYX_ERR(9, 373, __pyx_L1_error) }
  if (unlikely(__pyx_cur_scope->__pyx_v_generic_handlers == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(9, 373, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_generic_handlers; __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
      #if !CYTHON_ASSUME_SAFE_MACROS
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(9, 373, __pyx_L1_error)
      #endif
      if (__pyx_t_2 >= __pyx_temp) break;
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(9, 373, __pyx_L1_error)
    #else
    __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_generic_handler, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":374
 *     def query_handlers(handler_call_details):
 *         for generic_handler in generic_handlers:
 *             method_handler = generic_handler.service(handler_call_details)             # <<<<<<<<<<<<<<
 *             if method_handler is not None:
 *                 return method_handler
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_generic_handler, __pyx_n_s_service); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 374, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_handler_call_details};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 374, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_XDECREF_SET(__pyx_v_method_handler, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":375
 *         for generic_handler in generic_handlers:
 *             method_handler = generic_handler.service(handler_call_details)
 *             if method_handler is not None:             # <<<<<<<<<<<<<<
 *                 return method_handler
 *         return None
 */
    __pyx_t_7 = (__pyx_v_method_handler != Py_None);
    if (__pyx_t_7) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":376
 *             method_handler = generic_handler.service(handler_call_details)
 *             if method_handler is not None:
 *                 return method_handler             # <<<<<<<<<<<<<<
 *         return None
 * 
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_method_handler);
      __pyx_r = __pyx_v_method_handler;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":375
 *         for generic_handler in generic_handlers:
 *             method_handler = generic_handler.service(handler_call_details)
 *             if method_handler is not None:             # <<<<<<<<<<<<<<
 *                 return method_handler
 *         return None
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":373
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
 *         for generic_handler in generic_handlers:             # <<<<<<<<<<<<<<
 *             method_handler = generic_handler.service(handler_call_details)
 *             if method_handler is not None:
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":377
 *             if method_handler is not None:
 *                 return method_handler
 *         return None             # <<<<<<<<<<<<<<
 * 
 *     cdef _HandlerCallDetails handler_call_details = _HandlerCallDetails(method,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":372
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):             # <<<<<<<<<<<<<<
 *         for generic_handler in generic_handlers:
 *             method_handler = generic_handler.service(handler_call_details)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._find_method_handler.query_handlers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_generic_handler);
  __Pyx_XDECREF(__pyx_v_method_handler);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":370
 * 
 * 
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,             # <<<<<<<<<<<<<<
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
 */

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_157generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_find_method_handler", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 370, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":372
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):             # <<<<<<<<<<<<<<
 *         for generic_handler in generic_handlers:
 *             method_handler = generic_handler.service(handler_call_details)
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_find_method_handler_1query_handlers, 0, __pyx_n_s_find_method_handler_locals_quer, ((PyObject*)__pyx_cur_scope), __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_query_handlers = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":379
 *         return None
 * 
 *     cdef _HandlerCallDetails handler_call_details = _HandlerCallDetails(method,             # <<<<<<<<<<<<<<
 *                                                                         metadata)
 *     # interceptor
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_method);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_method);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_method)) __PYX_ERR(9, 379, __pyx_L1_error);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_metadata);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_cur_scope->__pyx_v_metadata)) __PYX_ERR(9, 379, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_handler_call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":382
 *                                                                         metadata)
 *     # interceptor
 *     if interceptors:             # <<<<<<<<<<<<<<
 *         return await _run_interceptor(iter(interceptors), query_handlers,
 *                                       handler_call_details)
 */
  __pyx_t_3 = (__pyx_cur_scope->__pyx_v_interceptors != Py_None)&&(PyTuple_GET_SIZE(__pyx_cur_scope->__pyx_v_interceptors) != 0);
  if (__pyx_t_3) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":383
 *     # interceptor
 *     if interceptors:
 *         return await _run_interceptor(iter(interceptors), query_handlers,             # <<<<<<<<<<<<<<
 *                                       handler_call_details)
 *     else:
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_run_interceptor); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_interceptors); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":384
 *     if interceptors:
 *         return await _run_interceptor(iter(interceptors), query_handlers,
 *                                       handler_call_details)             # <<<<<<<<<<<<<<
 *     else:
 *         return query_handlers(handler_call_details)
 */
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_4, __pyx_cur_scope->__pyx_v_query_handlers, ((PyObject *)__pyx_cur_scope->__pyx_v_handler_call_details)};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 383, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L5_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 383, __pyx_L1_error)
      __pyx_t_2 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_2);
    } else {
      __pyx_t_2 = NULL;
      if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_2) < 0) __PYX_ERR(9, 383, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":382
 *                                                                         metadata)
 *     # interceptor
 *     if interceptors:             # <<<<<<<<<<<<<<
 *         return await _run_interceptor(iter(interceptors), query_handlers,
 *                                       handler_call_details)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":386
 *                                       handler_call_details)
 *     else:
 *         return query_handlers(handler_call_details)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_pf_4grpc_7_cython_6cygrpc_20_find_method_handler_query_handlers(__pyx_cur_scope->__pyx_v_query_handlers, ((PyObject *)__pyx_cur_scope->__pyx_v_handler_call_details)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 386, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":370
 * 
 * 
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,             # <<<<<<<<<<<<<<
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("_find_method_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_160generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":389
 * 
 * 
 * async def _finish_handler_with_unary_response(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                               object unary_handler,
 *                                               object request,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_159_finish_handler_with_unary_response(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_158_finish_handler_with_unary_response, "Finishes server method handler with a single response.\n\n    This function executes the application handler, and handles response\n    sending, as well as errors. It is shared between unary-unary and\n    stream-unary handlers.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_159_finish_handler_with_unary_response = {"_finish_handler_with_unary_response", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_159_finish_handler_with_unary_response, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_158_finish_handler_with_unary_response};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_159_finish_handler_with_unary_response(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_unary_handler = 0;
  PyObject *__pyx_v_request = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context = 0;
  PyObject *__pyx_v_response_serializer = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_finish_handler_with_unary_response (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rpc_state,&__pyx_n_s_unary_handler,&__pyx_n_s_request,&__pyx_n_s_servicer_context,&__pyx_n_s_response_serializer,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 389, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_unary_handler)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 389, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_finish_handler_with_unary_response", 1, 6, 6, 1); __PYX_ERR(9, 389, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_request)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 389, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_finish_handler_with_unary_response", 1, 6, 6, 2); __PYX_ERR(9, 389, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_servicer_context)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 389, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_finish_handler_with_unary_response", 1, 6, 6, 3); __PYX_ERR(9, 389, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_response_serializer)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 389, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_finish_handler_with_unary_response", 1, 6, 6, 4); __PYX_ERR(9, 389, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 389, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_finish_handler_with_unary_response", 1, 6, 6, 5); __PYX_ERR(9, 389, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_finish_handler_with_unary_response") < 0)) __PYX_ERR(9, 389, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[0]);
    __pyx_v_unary_handler = values[1];
    __pyx_v_request = values[2];
    __pyx_v_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)values[3]);
    __pyx_v_response_serializer = values[4];
    __pyx_v_loop = values[5];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_finish_handler_with_unary_response", 1, 6, 6, __pyx_nargs); __PYX_ERR(9, 389, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._finish_handler_with_unary_response", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 389, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_servicer_context), __pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, 1, "servicer_context", 0))) __PYX_ERR(9, 392, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_158_finish_handler_with_unary_response(__pyx_self, __pyx_v_rpc_state, __pyx_v_unary_handler, __pyx_v_request, __pyx_v_servicer_context, __pyx_v_response_serializer, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_158_finish_handler_with_unary_response(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_unary_handler, PyObject *__pyx_v_request, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context, PyObject *__pyx_v_response_serializer, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_finish_handler_with_unary_response", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 389, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_unary_handler = __pyx_v_unary_handler;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_unary_handler);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_unary_handler);
  __pyx_cur_scope->__pyx_v_request = __pyx_v_request;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_request);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_request);
  __pyx_cur_scope->__pyx_v_servicer_context = __pyx_v_servicer_context;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context);
  __pyx_cur_scope->__pyx_v_response_serializer = __pyx_v_response_serializer;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_response_serializer);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_response_serializer);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_160generator26, __pyx_codeobj__85, (PyObject *) __pyx_cur_scope, __pyx_n_s_finish_handler_with_unary_respo, __pyx_n_s_finish_handler_with_unary_respo, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 389, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._finish_handler_with_unary_response", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_160generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_finish_handler_with_unary_response", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    case 2: goto __pyx_L6_resume_from_await;
    case 3: goto __pyx_L12_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 389, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":404
 *     cdef object response_message
 *     cdef _SyncServicerContext sync_servicer_context
 *     install_context_from_request_call_event_aio(rpc_state)             # <<<<<<<<<<<<<<
 * 
 *     if _is_async_handler(unary_handler):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_install_context_from_request_cal); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":406
 *     install_context_from_request_call_event_aio(rpc_state)
 * 
 *     if _is_async_handler(unary_handler):             # <<<<<<<<<<<<<<
 *         # Run async method handlers in this coroutine
 *         response_message = await unary_handler(
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_is_async_handler); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_unary_handler};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 406, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(9, 406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":410
 *         response_message = await unary_handler(
 *             request,
 *             servicer_context,             # <<<<<<<<<<<<<<
 *         )
 *     else:
 */
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_unary_handler);
    __pyx_t_2 = __pyx_cur_scope->__pyx_v_unary_handler; __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_request, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 408, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L5_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 408, __pyx_L1_error)
      __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
    } else {
      __pyx_t_1 = NULL;
      if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(9, 408, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_v_response_message = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":406
 *     install_context_from_request_call_event_aio(rpc_state)
 * 
 *     if _is_async_handler(unary_handler):             # <<<<<<<<<<<<<<
 *         # Run async method handlers in this coroutine
 *         response_message = await unary_handler(
 */
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":414
 *     else:
 *         # Run sync method handlers in the thread pool
 *         sync_servicer_context = _SyncServicerContext(servicer_context)             # <<<<<<<<<<<<<<
 *         response_message = await loop.run_in_executor(
 *             rpc_state.server.thread_pool(),
 */
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext), ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 414, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_v_sync_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":415
 *         # Run sync method handlers in the thread pool
 *         sync_servicer_context = _SyncServicerContext(servicer_context)
 *         response_message = await loop.run_in_executor(             # <<<<<<<<<<<<<<
 *             rpc_state.server.thread_pool(),
 *             unary_handler,
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_loop, __pyx_n_s_run_in_executor); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 415, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":416
 *         sync_servicer_context = _SyncServicerContext(servicer_context)
 *         response_message = await loop.run_in_executor(
 *             rpc_state.server.thread_pool(),             # <<<<<<<<<<<<<<
 *             unary_handler,
 *             request,
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioServer *)__pyx_cur_scope->__pyx_v_rpc_state->server->__pyx_vtab)->thread_pool(__pyx_cur_scope->__pyx_v_rpc_state->server); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":419
 *             unary_handler,
 *             request,
 *             sync_servicer_context,             # <<<<<<<<<<<<<<
 *         )
 *         # Support sync-stack callback
 */
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[5] = {__pyx_t_6, __pyx_t_3, __pyx_cur_scope->__pyx_v_unary_handler, __pyx_cur_scope->__pyx_v_request, ((PyObject *)__pyx_cur_scope->__pyx_v_sync_servicer_context)};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 4+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 415, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 2;
      return __pyx_r;
      __pyx_L6_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 415, __pyx_L1_error)
      __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
    } else {
      __pyx_t_1 = NULL;
      if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(9, 415, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_v_response_message = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":422
 *         )
 *         # Support sync-stack callback
 *         for callback in sync_servicer_context._callbacks:             # <<<<<<<<<<<<<<
 *             callback()
 * 
 */
    if (unlikely(__pyx_cur_scope->__pyx_v_sync_servicer_context->_callbacks == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(9, 422, __pyx_L1_error)
    }
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_sync_servicer_context->_callbacks; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_7 = 0;
    for (;;) {
      {
        Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
        #if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely((__pyx_temp < 0))) __PYX_ERR(9, 422, __pyx_L1_error)
        #endif
        if (__pyx_t_7 >= __pyx_temp) break;
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(9, 422, __pyx_L1_error)
      #else
      __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 422, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      #endif
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_callback);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_callback, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_t_2 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":423
 *         # Support sync-stack callback
 *         for callback in sync_servicer_context._callbacks:
 *             callback()             # <<<<<<<<<<<<<<
 * 
 *     # Raises exception if aborted
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_callback);
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_callback; __pyx_t_6 = NULL;
      __pyx_t_4 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
          __pyx_t_4 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
        __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 423, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":422
 *         )
 *         # Support sync-stack callback
 *         for callback in sync_servicer_context._callbacks:             # <<<<<<<<<<<<<<
 *             callback()
 * 
 */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":426
 * 
 *     # Raises exception if aborted
 *     rpc_state.raise_for_termination()             # <<<<<<<<<<<<<<
 * 
 *     # Serializes the response message
 */
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->raise_for_termination(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 426, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":430
 *     # Serializes the response message
 *     cdef bytes response_raw
 *     if rpc_state.status_code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *         response_raw = serialize(
 *             response_serializer,
 */
  __pyx_t_1 = __Pyx_PyInt_From_grpc_status_code(__pyx_cur_scope->__pyx_v_rpc_state->status_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ok); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 430, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(9, 430, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":431
 *     cdef bytes response_raw
 *     if rpc_state.status_code == StatusCode.ok:
 *         response_raw = serialize(             # <<<<<<<<<<<<<<
 *             response_serializer,
 *             response_message,
 */
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc_serialize(__pyx_cur_scope->__pyx_v_response_serializer, __pyx_cur_scope->__pyx_v_response_message); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 431, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_cur_scope->__pyx_v_response_raw = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":430
 *     # Serializes the response message
 *     cdef bytes response_raw
 *     if rpc_state.status_code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *         response_raw = serialize(
 *             response_serializer,
 */
    goto __pyx_L10;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":437
 *     else:
 *         # Discards the response message if the status code is non-OK.
 *         response_raw = b''             # <<<<<<<<<<<<<<
 * 
 *     # Assembles the batch operations
 */
  /*else*/ {
    __Pyx_INCREF(__pyx_kp_b__7);
    __Pyx_GIVEREF(__pyx_kp_b__7);
    __pyx_cur_scope->__pyx_v_response_raw = __pyx_kp_b__7;
  }
  __pyx_L10:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":442
 *     cdef tuple finish_ops
 *     finish_ops = (
 *         SendMessageOperation(response_raw, rpc_state.get_write_flag()),             # <<<<<<<<<<<<<<
 *         SendStatusFromServerOperation(
 *             rpc_state.trailing_metadata,
 */
  __pyx_t_8 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->get_write_flag(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 442, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_response_raw);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_response_raw);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_response_raw)) __PYX_ERR(9, 442, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(9, 442, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":445
 *         SendStatusFromServerOperation(
 *             rpc_state.trailing_metadata,
 *             rpc_state.status_code,             # <<<<<<<<<<<<<<
 *             rpc_state.status_details,
 *             _EMPTY_FLAGS,
 */
  __pyx_t_3 = __Pyx_PyInt_From_grpc_status_code(__pyx_cur_scope->__pyx_v_rpc_state->status_code); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 445, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":447
 *             rpc_state.status_code,
 *             rpc_state.status_details,
 *             _EMPTY_FLAGS,             # <<<<<<<<<<<<<<
 *         ),
 *     )
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":443
 *     finish_ops = (
 *         SendMessageOperation(response_raw, rpc_state.get_write_flag()),
 *         SendStatusFromServerOperation(             # <<<<<<<<<<<<<<
 *             rpc_state.trailing_metadata,
 *             rpc_state.status_code,
 */
  __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_rpc_state->trailing_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_rpc_state->trailing_metadata);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_cur_scope->__pyx_v_rpc_state->trailing_metadata)) __PYX_ERR(9, 443, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3)) __PYX_ERR(9, 443, __pyx_L1_error);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_rpc_state->status_details);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_rpc_state->status_details);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_cur_scope->__pyx_v_rpc_state->status_details)) __PYX_ERR(9, 443, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_1)) __PYX_ERR(9, 443, __pyx_L1_error);
  __pyx_t_3 = 0;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation), __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":442
 *     cdef tuple finish_ops
 *     finish_ops = (
 *         SendMessageOperation(response_raw, rpc_state.get_write_flag()),             # <<<<<<<<<<<<<<
 *         SendStatusFromServerOperation(
 *             rpc_state.trailing_metadata,
 */
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2)) __PYX_ERR(9, 442, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1)) __PYX_ERR(9, 442, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_cur_scope->__pyx_v_finish_ops = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":450
 *         ),
 *     )
 *     if not rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *         finish_ops = prepend_send_initial_metadata_op(
 *             finish_ops,
 */
  __pyx_t_5 = (!__pyx_cur_scope->__pyx_v_rpc_state->metadata_sent);
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":451
 *     )
 *     if not rpc_state.metadata_sent:
 *         finish_ops = prepend_send_initial_metadata_op(             # <<<<<<<<<<<<<<
 *             finish_ops,
 *             None)
 */
    __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc_prepend_send_initial_metadata_op(__pyx_cur_scope->__pyx_v_finish_ops, ((PyObject*)Py_None)); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (!(likely(PyTuple_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_6))) __PYX_ERR(9, 451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_finish_ops);
    __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_finish_ops, ((PyObject*)__pyx_t_6));
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":450
 *         ),
 *     )
 *     if not rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *         finish_ops = prepend_send_initial_metadata_op(
 *             finish_ops,
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":454
 *             finish_ops,
 *             None)
 *     rpc_state.metadata_sent = True             # <<<<<<<<<<<<<<
 *     rpc_state.status_sent = True
 *     await execute_batch(rpc_state, finish_ops, loop)
 */
  __pyx_cur_scope->__pyx_v_rpc_state->metadata_sent = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":455
 *             None)
 *     rpc_state.metadata_sent = True
 *     rpc_state.status_sent = True             # <<<<<<<<<<<<<<
 *     await execute_batch(rpc_state, finish_ops, loop)
 *     uninstall_context()
 */
  __pyx_cur_scope->__pyx_v_rpc_state->status_sent = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":456
 *     rpc_state.metadata_sent = True
 *     rpc_state.status_sent = True
 *     await execute_batch(rpc_state, finish_ops, loop)             # <<<<<<<<<<<<<<
 *     uninstall_context()
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_execute_batch); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_finish_ops, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 456, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_6);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 3;
    return __pyx_r;
    __pyx_L12_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 456, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(9, 456, __pyx_L1_error)
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":457
 *     rpc_state.status_sent = True
 *     await execute_batch(rpc_state, finish_ops, loop)
 *     uninstall_context()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_uninstall_context); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":389
 * 
 * 
 * async def _finish_handler_with_unary_response(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                               object unary_handler,
 *                                               object request,
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("_finish_handler_with_unary_response", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_163generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":460
 * 
 * 
 * async def _finish_handler_with_stream_responses(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                                 object stream_handler,
 *                                                 object request,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_162_finish_handler_with_stream_responses(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_161_finish_handler_with_stream_responses, "Finishes server method handler with multiple responses.\n\n    This function executes the application handler, and handles response\n    sending, as well as errors. It is shared between unary-stream and\n    stream-stream handlers.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_162_finish_handler_with_stream_responses = {"_finish_handler_with_stream_responses", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_162_finish_handler_with_stream_responses, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_161_finish_handler_with_stream_responses};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_162_finish_handler_with_stream_responses(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_stream_handler = 0;
  PyObject *__pyx_v_request = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_finish_handler_with_stream_responses (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rpc_state,&__pyx_n_s_stream_handler,&__pyx_n_s_request,&__pyx_n_s_servicer_context,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 460, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_stream_handler)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 460, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_finish_handler_with_stream_responses", 1, 5, 5, 1); __PYX_ERR(9, 460, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_request)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 460, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_finish_handler_with_stream_responses", 1, 5, 5, 2); __PYX_ERR(9, 460, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_servicer_context)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 460, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_finish_handler_with_stream_responses", 1, 5, 5, 3); __PYX_ERR(9, 460, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 460, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_finish_handler_with_stream_responses", 1, 5, 5, 4); __PYX_ERR(9, 460, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_finish_handler_with_stream_responses") < 0)) __PYX_ERR(9, 460, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[0]);
    __pyx_v_stream_handler = values[1];
    __pyx_v_request = values[2];
    __pyx_v_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)values[3]);
    __pyx_v_loop = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_finish_handler_with_stream_responses", 1, 5, 5, __pyx_nargs); __PYX_ERR(9, 460, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._finish_handler_with_stream_responses", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 460, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_servicer_context), __pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, 1, "servicer_context", 0))) __PYX_ERR(9, 463, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_161_finish_handler_with_stream_responses(__pyx_self, __pyx_v_rpc_state, __pyx_v_stream_handler, __pyx_v_request, __pyx_v_servicer_context, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_161_finish_handler_with_stream_responses(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_stream_handler, PyObject *__pyx_v_request, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_finish_handler_with_stream_responses", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 460, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_stream_handler = __pyx_v_stream_handler;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_stream_handler);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_stream_handler);
  __pyx_cur_scope->__pyx_v_request = __pyx_v_request;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_request);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_request);
  __pyx_cur_scope->__pyx_v_servicer_context = __pyx_v_servicer_context;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_163generator27, __pyx_codeobj__86, (PyObject *) __pyx_cur_scope, __pyx_n_s_finish_handler_with_stream_resp, __pyx_n_s_finish_handler_with_stream_resp, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 460, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._finish_handler_with_stream_responses", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_163generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_finish_handler_with_stream_responses", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    case 2: goto __pyx_L9_resume_from_await;
    case 3: goto __pyx_L10_resume_from_await;
    case 4: goto __pyx_L13_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 460, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":473
 *     cdef object async_response_generator
 *     cdef object response_message
 *     install_context_from_request_call_event_aio(rpc_state)             # <<<<<<<<<<<<<<
 * 
 *     if inspect.iscoroutinefunction(stream_handler):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_install_context_from_request_cal); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":475
 *     install_context_from_request_call_event_aio(rpc_state)
 * 
 *     if inspect.iscoroutinefunction(stream_handler):             # <<<<<<<<<<<<<<
 *         # Case 1: Coroutine async handler - using reader-writer API
 *         # The handler uses reader / writer API, returns None.
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_inspect); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_iscoroutinefunction); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_stream_handler};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(9, 475, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":480
 *         await stream_handler(
 *             request,
 *             servicer_context,             # <<<<<<<<<<<<<<
 *         )
 *     else:
 */
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_stream_handler);
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_stream_handler; __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_request, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 478, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L5_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 478, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(9, 478, __pyx_L1_error)
      }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":475
 *     install_context_from_request_call_event_aio(rpc_state)
 * 
 *     if inspect.iscoroutinefunction(stream_handler):             # <<<<<<<<<<<<<<
 *         # Case 1: Coroutine async handler - using reader-writer API
 *         # The handler uses reader / writer API, returns None.
 */
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":483
 *         )
 *     else:
 *         if inspect.isasyncgenfunction(stream_handler):             # <<<<<<<<<<<<<<
 *             # Case 2: Async handler - async generator
 *             # The handler uses async generator API
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_inspect); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 483, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_isasyncgenfunction); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 483, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_stream_handler};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 483, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(9, 483, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":488
 *             async_response_generator = stream_handler(
 *                 request,
 *                 servicer_context,             # <<<<<<<<<<<<<<
 *             )
 *         else:
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_stream_handler);
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_stream_handler; __pyx_t_3 = NULL;
      __pyx_t_4 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_4 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_request, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 486, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_v_async_response_generator = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":483
 *         )
 *     else:
 *         if inspect.isasyncgenfunction(stream_handler):             # <<<<<<<<<<<<<<
 *             # Case 2: Async handler - async generator
 *             # The handler uses async generator API
 */
      goto __pyx_L6;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":494
 *             # NOTE(lidiz) Streaming handler in sync stack is either a generator
 *             # function or a function returns a generator.
 *             sync_servicer_context = _SyncServicerContext(servicer_context)             # <<<<<<<<<<<<<<
 *             gen = stream_handler(request, sync_servicer_context)
 *             async_response_generator = generator_to_async_generator(gen,
 */
    /*else*/ {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext), ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 494, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_v_sync_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_t_1);
      __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":495
 *             # function or a function returns a generator.
 *             sync_servicer_context = _SyncServicerContext(servicer_context)
 *             gen = stream_handler(request, sync_servicer_context)             # <<<<<<<<<<<<<<
 *             async_response_generator = generator_to_async_generator(gen,
 *                                                                     loop,
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_stream_handler);
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_stream_handler; __pyx_t_3 = NULL;
      __pyx_t_4 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_4 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_request, ((PyObject *)__pyx_cur_scope->__pyx_v_sync_servicer_context)};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 495, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_v_gen = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":496
 *             sync_servicer_context = _SyncServicerContext(servicer_context)
 *             gen = stream_handler(request, sync_servicer_context)
 *             async_response_generator = generator_to_async_generator(gen,             # <<<<<<<<<<<<<<
 *                                                                     loop,
 *                                                                     rpc_state.server.thread_pool())
 */
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_generator_to_async_generator); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 496, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":498
 *             async_response_generator = generator_to_async_generator(gen,
 *                                                                     loop,
 *                                                                     rpc_state.server.thread_pool())             # <<<<<<<<<<<<<<
 * 
 *         # Consumes messages from the generator
 */
      __pyx_t_3 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioServer *)__pyx_cur_scope->__pyx_v_rpc_state->server->__pyx_vtab)->thread_pool(__pyx_cur_scope->__pyx_v_rpc_state->server); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 498, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = NULL;
      __pyx_t_4 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_4 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[4] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_gen, __pyx_cur_scope->__pyx_v_loop, __pyx_t_3};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 496, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_v_async_response_generator = __pyx_t_1;
      __pyx_t_1 = 0;
    }
    __pyx_L6:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":501
 * 
 *         # Consumes messages from the generator
 *         async for response_message in async_response_generator:             # <<<<<<<<<<<<<<
 *             # Raises exception if aborted
 *             rpc_state.raise_for_termination()
 */
    __pyx_t_1 = __Pyx_Coroutine_GetAsyncIter(__pyx_cur_scope->__pyx_v_async_response_generator); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 501, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    for (;;) {
      __pyx_t_2 = __Pyx_Coroutine_AsyncIterNext(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 501, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XGOTREF(__pyx_r);
      if (likely(__pyx_r)) {
        __Pyx_XGIVEREF(__pyx_t_1);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 2;
        return __pyx_r;
        __pyx_L9_resume_from_await:;
        __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_1);
        if (unlikely(!__pyx_sent_value)) {
          PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
          if (unlikely(exc_type && (exc_type == __Pyx_PyExc_StopAsyncIteration || ( exc_type != PyExc_StopIteration && exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, __Pyx_PyExc_StopAsyncIteration))))) {
            PyErr_Clear();
            break;
          }
          __PYX_ERR(9, 501, __pyx_L1_error)
        }
        __pyx_t_2 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_2);
      } else {
        PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
        if (unlikely(exc_type && (exc_type == __Pyx_PyExc_StopAsyncIteration || ( exc_type != PyExc_StopIteration && exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, __Pyx_PyExc_StopAsyncIteration))))) {
          PyErr_Clear();
          break;
        }
        __pyx_t_2 = NULL;
        if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_2) < 0) __PYX_ERR(9, 501, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_response_message);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_response_message, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_t_2 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":503
 *         async for response_message in async_response_generator:
 *             # Raises exception if aborted
 *             rpc_state.raise_for_termination()             # <<<<<<<<<<<<<<
 * 
 *             await servicer_context.write(response_message)
 */
      ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->raise_for_termination(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 503, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":505
 *             rpc_state.raise_for_termination()
 * 
 *             await servicer_context.write(response_message)             # <<<<<<<<<<<<<<
 * 
 *     # Raises exception if aborted
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context), __pyx_n_s_write); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 505, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = NULL;
      __pyx_t_4 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
          __pyx_t_4 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_response_message};
        __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 505, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XGOTREF(__pyx_r);
      if (likely(__pyx_r)) {
        __Pyx_XGIVEREF(__pyx_t_1);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 3;
        return __pyx_r;
        __pyx_L10_resume_from_await:;
        __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_1);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 505, __pyx_L1_error)
      } else {
        PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
        if (exc_type) {
          if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
          else __PYX_ERR(9, 505, __pyx_L1_error)
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":501
 * 
 *         # Consumes messages from the generator
 *         async for response_message in async_response_generator:             # <<<<<<<<<<<<<<
 *             # Raises exception if aborted
 *             rpc_state.raise_for_termination()
 */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":508
 * 
 *     # Raises exception if aborted
 *     rpc_state.raise_for_termination()             # <<<<<<<<<<<<<<
 * 
 *     # Sends the final status of this RPC
 */
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->raise_for_termination(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 508, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":513
 *     cdef SendStatusFromServerOperation op = SendStatusFromServerOperation(
 *         rpc_state.trailing_metadata,
 *         rpc_state.status_code,             # <<<<<<<<<<<<<<
 *         rpc_state.status_details,
 *         _EMPTY_FLAGS,
 */
  __pyx_t_1 = __Pyx_PyInt_From_grpc_status_code(__pyx_cur_scope->__pyx_v_rpc_state->status_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":515
 *         rpc_state.status_code,
 *         rpc_state.status_details,
 *         _EMPTY_FLAGS,             # <<<<<<<<<<<<<<
 *     )
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_EMPTY_FLAGS); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":511
 * 
 *     # Sends the final status of this RPC
 *     cdef SendStatusFromServerOperation op = SendStatusFromServerOperation(             # <<<<<<<<<<<<<<
 *         rpc_state.trailing_metadata,
 *         rpc_state.status_code,
 */
  __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_rpc_state->trailing_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_rpc_state->trailing_metadata);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_rpc_state->trailing_metadata)) __PYX_ERR(9, 511, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(9, 511, __pyx_L1_error);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_rpc_state->status_details);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_rpc_state->status_details);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_cur_scope->__pyx_v_rpc_state->status_details)) __PYX_ERR(9, 511, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2)) __PYX_ERR(9, 511, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":518
 *     )
 * 
 *     cdef tuple finish_ops = (op,)             # <<<<<<<<<<<<<<
 *     if not rpc_state.metadata_sent:
 *         finish_ops = prepend_send_initial_metadata_op(
 */
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op))) __PYX_ERR(9, 518, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_finish_ops = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":519
 * 
 *     cdef tuple finish_ops = (op,)
 *     if not rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *         finish_ops = prepend_send_initial_metadata_op(
 *             finish_ops,
 */
  __pyx_t_5 = (!__pyx_cur_scope->__pyx_v_rpc_state->metadata_sent);
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":520
 *     cdef tuple finish_ops = (op,)
 *     if not rpc_state.metadata_sent:
 *         finish_ops = prepend_send_initial_metadata_op(             # <<<<<<<<<<<<<<
 *             finish_ops,
 *             None
 */
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc_prepend_send_initial_metadata_op(__pyx_cur_scope->__pyx_v_finish_ops, ((PyObject*)Py_None)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 520, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(9, 520, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_finish_ops);
    __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_finish_ops, ((PyObject*)__pyx_t_2));
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":519
 * 
 *     cdef tuple finish_ops = (op,)
 *     if not rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *         finish_ops = prepend_send_initial_metadata_op(
 *             finish_ops,
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":524
 *             None
 *         )
 *     rpc_state.metadata_sent = True             # <<<<<<<<<<<<<<
 *     rpc_state.status_sent = True
 *     await execute_batch(rpc_state, finish_ops, loop)
 */
  __pyx_cur_scope->__pyx_v_rpc_state->metadata_sent = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":525
 *         )
 *     rpc_state.metadata_sent = True
 *     rpc_state.status_sent = True             # <<<<<<<<<<<<<<
 *     await execute_batch(rpc_state, finish_ops, loop)
 *     uninstall_context()
 */
  __pyx_cur_scope->__pyx_v_rpc_state->status_sent = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":526
 *     rpc_state.metadata_sent = True
 *     rpc_state.status_sent = True
 *     await execute_batch(rpc_state, finish_ops, loop)             # <<<<<<<<<<<<<<
 *     uninstall_context()
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_execute_batch); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_1, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_finish_ops, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 526, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 4;
    return __pyx_r;
    __pyx_L13_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 526, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(9, 526, __pyx_L1_error)
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":527
 *     rpc_state.status_sent = True
 *     await execute_batch(rpc_state, finish_ops, loop)
 *     uninstall_context()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_uninstall_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 527, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":460
 * 
 * 
 * async def _finish_handler_with_stream_responses(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                                 object stream_handler,
 *                                                 object request,
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("_finish_handler_with_stream_responses", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_166generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":530
 * 
 * 
 * async def _handle_unary_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                   RPCState rpc_state,
 *                                   object loop):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_165_handle_unary_unary_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_165_handle_unary_unary_rpc = {"_handle_unary_unary_rpc", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_165_handle_unary_unary_rpc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_165_handle_unary_unary_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_method_handler = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_unary_unary_rpc (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_method_handler,&__pyx_n_s_rpc_state,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method_handler)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 530, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 530, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_unary_unary_rpc", 1, 3, 3, 1); __PYX_ERR(9, 530, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 530, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_unary_unary_rpc", 1, 3, 3, 2); __PYX_ERR(9, 530, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_handle_unary_unary_rpc") < 0)) __PYX_ERR(9, 530, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_method_handler = values[0];
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[1]);
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_unary_unary_rpc", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 530, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_unary_unary_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 531, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_164_handle_unary_unary_rpc(__pyx_self, __pyx_v_method_handler, __pyx_v_rpc_state, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_164_handle_unary_unary_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_unary_unary_rpc", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 530, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_method_handler = __pyx_v_method_handler;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_method_handler);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_method_handler);
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_166generator28, __pyx_codeobj__87, (PyObject *) __pyx_cur_scope, __pyx_n_s_handle_unary_unary_rpc, __pyx_n_s_handle_unary_unary_rpc, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 530, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_unary_unary_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_166generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_unary_unary_rpc", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    case 2: goto __pyx_L6_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 530, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":534
 *                                   object loop):
 *     # Receives request message
 *     cdef bytes request_raw = await _receive_message(rpc_state, loop)             # <<<<<<<<<<<<<<
 *     if request_raw is None:
 *         # The RPC was cancelled immediately after start on client side.
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_receive_message); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 534, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 534, __pyx_L1_error)
    __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
  } else {
    __pyx_t_1 = NULL;
    if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(9, 534, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(9, 534, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_request_raw = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":535
 *     # Receives request message
 *     cdef bytes request_raw = await _receive_message(rpc_state, loop)
 *     if request_raw is None:             # <<<<<<<<<<<<<<
 *         # The RPC was cancelled immediately after start on client side.
 *         return
 */
  __pyx_t_5 = (__pyx_cur_scope->__pyx_v_request_raw == ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":537
 *     if request_raw is None:
 *         # The RPC was cancelled immediately after start on client side.
 *         return             # <<<<<<<<<<<<<<
 * 
 *     # Deserializes the request message
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":535
 *     # Receives request message
 *     cdef bytes request_raw = await _receive_message(rpc_state, loop)
 *     if request_raw is None:             # <<<<<<<<<<<<<<
 *         # The RPC was cancelled immediately after start on client side.
 *         return
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":541
 *     # Deserializes the request message
 *     cdef object request_message = deserialize(
 *         method_handler.request_deserializer,             # <<<<<<<<<<<<<<
 *         request_raw,
 *     )
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_request_deserializer); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":540
 * 
 *     # Deserializes the request message
 *     cdef object request_message = deserialize(             # <<<<<<<<<<<<<<
 *         method_handler.request_deserializer,
 *         request_raw,
 */
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc_deserialize(__pyx_t_1, __pyx_cur_scope->__pyx_v_request_raw); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_request_message = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":546
 * 
 *     # Creates a dedecated ServicerContext
 *     cdef _ServicerContext servicer_context = _ServicerContext(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         None,
 */
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state))) __PYX_ERR(9, 546, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None)) __PYX_ERR(9, 546, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None)) __PYX_ERR(9, 546, __pyx_L1_error);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_cur_scope->__pyx_v_loop)) __PYX_ERR(9, 546, __pyx_L1_error);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":554
 * 
 *     # Finishes the application handler
 *     await _finish_handler_with_unary_response(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         method_handler.unary_unary,
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_finish_handler_with_unary_respo); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":556
 *     await _finish_handler_with_unary_response(
 *         rpc_state,
 *         method_handler.unary_unary,             # <<<<<<<<<<<<<<
 *         request_message,
 *         servicer_context,
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_unary_unary); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":559
 *         request_message,
 *         servicer_context,
 *         method_handler.response_serializer,             # <<<<<<<<<<<<<<
 *         loop
 *     )
 */
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_response_serializer); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":560
 *         servicer_context,
 *         method_handler.response_serializer,
 *         loop             # <<<<<<<<<<<<<<
 *     )
 * 
 */
  __pyx_t_7 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_7, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_3, __pyx_cur_scope->__pyx_v_request_message, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context), __pyx_t_6, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 6+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 554, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L6_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 554, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(9, 554, __pyx_L1_error)
    }
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":530
 * 
 * 
 * async def _handle_unary_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                   RPCState rpc_state,
 *                                   object loop):
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("_handle_unary_unary_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_169generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":564
 * 
 * 
 * async def _handle_unary_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_168_handle_unary_stream_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_168_handle_unary_stream_rpc = {"_handle_unary_stream_rpc", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_168_handle_unary_stream_rpc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_168_handle_unary_stream_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_method_handler = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_unary_stream_rpc (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_method_handler,&__pyx_n_s_rpc_state,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method_handler)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 564, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 564, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_unary_stream_rpc", 1, 3, 3, 1); __PYX_ERR(9, 564, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 564, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_unary_stream_rpc", 1, 3, 3, 2); __PYX_ERR(9, 564, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_handle_unary_stream_rpc") < 0)) __PYX_ERR(9, 564, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_method_handler = values[0];
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[1]);
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_unary_stream_rpc", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 564, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_unary_stream_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 565, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_167_handle_unary_stream_rpc(__pyx_self, __pyx_v_method_handler, __pyx_v_rpc_state, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_167_handle_unary_stream_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_unary_stream_rpc", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 564, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_method_handler = __pyx_v_method_handler;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_method_handler);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_method_handler);
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_169generator29, __pyx_codeobj__88, (PyObject *) __pyx_cur_scope, __pyx_n_s_handle_unary_stream_rpc, __pyx_n_s_handle_unary_stream_rpc, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 564, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_unary_stream_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_169generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_unary_stream_rpc", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    case 2: goto __pyx_L6_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 564, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":568
 *                                    object loop):
 *     # Receives request message
 *     cdef bytes request_raw = await _receive_message(rpc_state, loop)             # <<<<<<<<<<<<<<
 *     if request_raw is None:
 *         return
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_receive_message); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 568, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 568, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 568, __pyx_L1_error)
    __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
  } else {
    __pyx_t_1 = NULL;
    if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(9, 568, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(9, 568, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_request_raw = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":569
 *     # Receives request message
 *     cdef bytes request_raw = await _receive_message(rpc_state, loop)
 *     if request_raw is None:             # <<<<<<<<<<<<<<
 *         return
 * 
 */
  __pyx_t_5 = (__pyx_cur_scope->__pyx_v_request_raw == ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":570
 *     cdef bytes request_raw = await _receive_message(rpc_state, loop)
 *     if request_raw is None:
 *         return             # <<<<<<<<<<<<<<
 * 
 *     # Deserializes the request message
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":569
 *     # Receives request message
 *     cdef bytes request_raw = await _receive_message(rpc_state, loop)
 *     if request_raw is None:             # <<<<<<<<<<<<<<
 *         return
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":574
 *     # Deserializes the request message
 *     cdef object request_message = deserialize(
 *         method_handler.request_deserializer,             # <<<<<<<<<<<<<<
 *         request_raw,
 *     )
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_request_deserializer); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":573
 * 
 *     # Deserializes the request message
 *     cdef object request_message = deserialize(             # <<<<<<<<<<<<<<
 *         method_handler.request_deserializer,
 *         request_raw,
 */
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc_deserialize(__pyx_t_1, __pyx_cur_scope->__pyx_v_request_raw); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_request_message = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":581
 *     cdef _ServicerContext servicer_context = _ServicerContext(
 *         rpc_state,
 *         method_handler.request_deserializer,             # <<<<<<<<<<<<<<
 *         method_handler.response_serializer,
 *         loop,
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_request_deserializer); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 581, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":582
 *         rpc_state,
 *         method_handler.request_deserializer,
 *         method_handler.response_serializer,             # <<<<<<<<<<<<<<
 *         loop,
 *     )
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_response_serializer); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":579
 * 
 *     # Creates a dedecated ServicerContext
 *     cdef _ServicerContext servicer_context = _ServicerContext(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         method_handler.request_deserializer,
 */
  __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state))) __PYX_ERR(9, 579, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(9, 579, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_1)) __PYX_ERR(9, 579, __pyx_L1_error);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_cur_scope->__pyx_v_loop)) __PYX_ERR(9, 579, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext), __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":587
 * 
 *     # Finishes the application handler
 *     await _finish_handler_with_stream_responses(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         method_handler.unary_stream,
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_finish_handler_with_stream_resp); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 587, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":589
 *     await _finish_handler_with_stream_responses(
 *         rpc_state,
 *         method_handler.unary_stream,             # <<<<<<<<<<<<<<
 *         request_message,
 *         servicer_context,
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_unary_stream); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":592
 *         request_message,
 *         servicer_context,
 *         loop,             # <<<<<<<<<<<<<<
 *     )
 * 
 */
  __pyx_t_6 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_6, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_2, __pyx_cur_scope->__pyx_v_request_message, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context), __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 5+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 587, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L6_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 587, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(9, 587, __pyx_L1_error)
    }
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":564
 * 
 * 
 * async def _handle_unary_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("_handle_unary_stream_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":599
 *     """Bridge between the async generator API and the reader-writer API."""
 * 
 *     def __cinit__(self, _ServicerContext servicer_context):             # <<<<<<<<<<<<<<
 *         self._servicer_context = servicer_context
 *         self._agen = None
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_servicer_context,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_servicer_context)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 599, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(9, 599, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 599, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._MessageReceiver.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_servicer_context), __pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, 1, "servicer_context", 0))) __PYX_ERR(9, 599, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)__pyx_v_self), __pyx_v_servicer_context);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":600
 * 
 *     def __cinit__(self, _ServicerContext servicer_context):
 *         self._servicer_context = servicer_context             # <<<<<<<<<<<<<<
 *         self._agen = None
 * 
 */
  __Pyx_INCREF((PyObject *)__pyx_v_servicer_context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_servicer_context);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_servicer_context);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_servicer_context);
  __pyx_v_self->_servicer_context = __pyx_v_servicer_context;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":601
 *     def __cinit__(self, _ServicerContext servicer_context):
 *         self._servicer_context = servicer_context
 *         self._agen = None             # <<<<<<<<<<<<<<
 * 
 *     async def _async_message_receiver(self):
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_agen);
  __Pyx_DECREF(__pyx_v_self->_agen);
  __pyx_v_self->_agen = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":599
 *     """Bridge between the async generator API and the reader-writer API."""
 * 
 *     def __cinit__(self, _ServicerContext servicer_context):             # <<<<<<<<<<<<<<
 *         self._servicer_context = servicer_context
 *         self._agen = None
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_MessageReceiver_4generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":603
 *         self._agen = None
 * 
 *     async def _async_message_receiver(self):             # <<<<<<<<<<<<<<
 *         """An async generator that receives messages."""
 *         cdef object message
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_3_async_message_receiver(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_16_MessageReceiver_2_async_message_receiver, "An async generator that receives messages.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_MessageReceiver_3_async_message_receiver = {"_async_message_receiver", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_3_async_message_receiver, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_16_MessageReceiver_2_async_message_receiver};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_3_async_message_receiver(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_async_message_receiver (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("_async_message_receiver", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_async_message_receiver", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_2_async_message_receiver(((struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_2_async_message_receiver(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_async_message_receiver", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 603, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_AsyncGen_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_16_MessageReceiver_4generator30, __pyx_codeobj__89, (PyObject *) __pyx_cur_scope, __pyx_n_s_async_message_receiver, __pyx_n_s_MessageReceiver__async_message, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 603, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._MessageReceiver._async_message_receiver", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_MessageReceiver_4generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_async_message_receiver", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_await;
    case 2: goto __pyx_L8_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 603, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":606
 *         """An async generator that receives messages."""
 *         cdef object message
 *         while True:             # <<<<<<<<<<<<<<
 *             message = await self._servicer_context.read()
 *             if message is not EOF:
 */
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":607
 *         cdef object message
 *         while True:
 *             message = await self._servicer_context.read()             # <<<<<<<<<<<<<<
 *             if message is not EOF:
 *                 yield message
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->_servicer_context), __pyx_n_s_read); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 607, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 607, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from async generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L6_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 607, __pyx_L1_error)
      __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
    } else {
      __pyx_t_1 = NULL;
      if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(9, 607, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_message);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_message, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":608
 *         while True:
 *             message = await self._servicer_context.read()
 *             if message is not EOF:             # <<<<<<<<<<<<<<
 *                 yield message
 *             else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_EOF); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 608, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = (__pyx_cur_scope->__pyx_v_message != __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":609
 *             message = await self._servicer_context.read()
 *             if message is not EOF:
 *                 yield message             # <<<<<<<<<<<<<<
 *             else:
 *                 break
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_message);
      __pyx_r = __pyx_cur_scope->__pyx_v_message;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from async generator, yielding value */
      __pyx_generator->resume_label = 2;
      return __Pyx__PyAsyncGenValueWrapperNew(__pyx_r);
      __pyx_L8_resume_from_yield:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 609, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":608
 *         while True:
 *             message = await self._servicer_context.read()
 *             if message is not EOF:             # <<<<<<<<<<<<<<
 *                 yield message
 *             else:
 */
      goto __pyx_L7;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":611
 *                 yield message
 *             else:
 *                 break             # <<<<<<<<<<<<<<
 * 
 *     def __aiter__(self):
 */
    /*else*/ {
      goto __pyx_L5_break;
    }
    __pyx_L7:;
  }
  __pyx_L5_break:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":603
 *         self._agen = None
 * 
 *     async def _async_message_receiver(self):             # <<<<<<<<<<<<<<
 *         """An async generator that receives messages."""
 *         cdef object message
 */

  /* function exit code */
  PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(1);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("_async_message_receiver", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":613
 *                 break
 * 
 *     def __aiter__(self):             # <<<<<<<<<<<<<<
 *         # Prevents never awaited warning if application never used the async generator
 *         if self._agen is None:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_6__aiter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_6__aiter__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__aiter__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_5__aiter__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_5__aiter__(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__aiter__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":615
 *     def __aiter__(self):
 *         # Prevents never awaited warning if application never used the async generator
 *         if self._agen is None:             # <<<<<<<<<<<<<<
 *             self._agen = self._async_message_receiver()
 *         return self._agen
 */
  __pyx_t_1 = (__pyx_v_self->_agen == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":616
 *         # Prevents never awaited warning if application never used the async generator
 *         if self._agen is None:
 *             self._agen = self._async_message_receiver()             # <<<<<<<<<<<<<<
 *         return self._agen
 * 
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_async_message_receiver); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 616, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 616, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_self->_agen);
    __Pyx_DECREF(__pyx_v_self->_agen);
    __pyx_v_self->_agen = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":615
 *     def __aiter__(self):
 *         # Prevents never awaited warning if application never used the async generator
 *         if self._agen is None:             # <<<<<<<<<<<<<<
 *             self._agen = self._async_message_receiver()
 *         return self._agen
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":617
 *         if self._agen is None:
 *             self._agen = self._async_message_receiver()
 *         return self._agen             # <<<<<<<<<<<<<<
 * 
 *     async def __anext__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_agen);
  __pyx_r = __pyx_v_self->_agen;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":613
 *                 break
 * 
 *     def __aiter__(self):             # <<<<<<<<<<<<<<
 *         # Prevents never awaited warning if application never used the async generator
 *         if self._agen is None:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._MessageReceiver.__aiter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_MessageReceiver_9generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":619
 *         return self._agen
 * 
 *     async def __anext__(self):             # <<<<<<<<<<<<<<
 *         return await self.__aiter__().__anext__()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_8__anext__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_8__anext__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__anext__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_7__anext__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_7__anext__(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__anext__", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 619, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_16_MessageReceiver_9generator31, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_anext, __pyx_n_s_MessageReceiver___anext, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 619, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._MessageReceiver.__anext__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_MessageReceiver_9generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__anext__", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 619, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":620
 * 
 *     async def __anext__(self):
 *         return await self.__aiter__().__anext__()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_aiter); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_anext); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 620, __pyx_L1_error)
    __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
  } else {
    __pyx_t_1 = NULL;
    if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(9, 620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  goto __pyx_L0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":619
 *         return self._agen
 * 
 *     async def __anext__(self):             # <<<<<<<<<<<<<<
 *         return await self.__aiter__().__anext__()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("__anext__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_MessageReceiver_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_10__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._MessageReceiver.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_MessageReceiver_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._MessageReceiver.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_12__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._MessageReceiver.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_172generator32(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":623
 * 
 * 
 * async def _handle_stream_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_171_handle_stream_unary_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_171_handle_stream_unary_rpc = {"_handle_stream_unary_rpc", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_171_handle_stream_unary_rpc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_171_handle_stream_unary_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_method_handler = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_stream_unary_rpc (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_method_handler,&__pyx_n_s_rpc_state,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method_handler)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 623, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 623, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_stream_unary_rpc", 1, 3, 3, 1); __PYX_ERR(9, 623, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 623, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_stream_unary_rpc", 1, 3, 3, 2); __PYX_ERR(9, 623, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_handle_stream_unary_rpc") < 0)) __PYX_ERR(9, 623, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_method_handler = values[0];
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[1]);
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_stream_unary_rpc", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 623, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_stream_unary_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 624, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_170_handle_stream_unary_rpc(__pyx_self, __pyx_v_method_handler, __pyx_v_rpc_state, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_170_handle_stream_unary_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_stream_unary_rpc", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 623, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_method_handler = __pyx_v_method_handler;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_method_handler);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_method_handler);
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_172generator32, __pyx_codeobj__90, (PyObject *) __pyx_cur_scope, __pyx_n_s_handle_stream_unary_rpc, __pyx_n_s_handle_stream_unary_rpc, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 623, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_stream_unary_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_172generator32(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_stream_unary_rpc", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 623, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":629
 *     cdef _ServicerContext servicer_context = _ServicerContext(
 *         rpc_state,
 *         method_handler.request_deserializer,             # <<<<<<<<<<<<<<
 *         None,
 *         loop,
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_request_deserializer); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":627
 *                                    object loop):
 *     # Creates a dedecated ServicerContext
 *     cdef _ServicerContext servicer_context = _ServicerContext(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         method_handler.request_deserializer,
 */
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state))) __PYX_ERR(9, 627, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(9, 627, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None)) __PYX_ERR(9, 627, __pyx_L1_error);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_cur_scope->__pyx_v_loop)) __PYX_ERR(9, 627, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":636
 *     # Prepares the request generator
 *     cdef object request_iterator
 *     if _is_async_handler(method_handler.stream_unary):             # <<<<<<<<<<<<<<
 *         request_iterator = _MessageReceiver(servicer_context)
 *     else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_is_async_handler); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_stream_unary); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 636, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":637
 *     cdef object request_iterator
 *     if _is_async_handler(method_handler.stream_unary):
 *         request_iterator = _MessageReceiver(servicer_context)             # <<<<<<<<<<<<<<
 *     else:
 *         request_iterator = async_generator_to_generator(
 */
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver), ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 637, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_v_request_iterator = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":636
 *     # Prepares the request generator
 *     cdef object request_iterator
 *     if _is_async_handler(method_handler.stream_unary):             # <<<<<<<<<<<<<<
 *         request_iterator = _MessageReceiver(servicer_context)
 *     else:
 */
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":639
 *         request_iterator = _MessageReceiver(servicer_context)
 *     else:
 *         request_iterator = async_generator_to_generator(             # <<<<<<<<<<<<<<
 *             _MessageReceiver(servicer_context),
 *             loop
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_async_generator_to_generator); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":640
 *     else:
 *         request_iterator = async_generator_to_generator(
 *             _MessageReceiver(servicer_context),             # <<<<<<<<<<<<<<
 *             loop
 *         )
 */
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver), ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":641
 *         request_iterator = async_generator_to_generator(
 *             _MessageReceiver(servicer_context),
 *             loop             # <<<<<<<<<<<<<<
 *         )
 * 
 */
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_3, __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 639, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_v_request_iterator = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":645
 * 
 *     # Finishes the application handler
 *     await _finish_handler_with_unary_response(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         method_handler.stream_unary,
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_finish_handler_with_unary_respo); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":647
 *     await _finish_handler_with_unary_response(
 *         rpc_state,
 *         method_handler.stream_unary,             # <<<<<<<<<<<<<<
 *         request_iterator,
 *         servicer_context,
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_stream_unary); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":650
 *         request_iterator,
 *         servicer_context,
 *         method_handler.response_serializer,             # <<<<<<<<<<<<<<
 *         loop
 *     )
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_response_serializer); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":651
 *         servicer_context,
 *         method_handler.response_serializer,
 *         loop             # <<<<<<<<<<<<<<
 *     )
 * 
 */
  __pyx_t_7 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_7, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_3, __pyx_cur_scope->__pyx_v_request_iterator, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context), __pyx_t_4, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 6+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 645, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(9, 645, __pyx_L1_error)
    }
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":623
 * 
 * 
 * async def _handle_stream_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("_handle_stream_unary_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_175generator33(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":655
 * 
 * 
 * async def _handle_stream_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                     RPCState rpc_state,
 *                                     object loop):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_174_handle_stream_stream_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_174_handle_stream_stream_rpc = {"_handle_stream_stream_rpc", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_174_handle_stream_stream_rpc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_174_handle_stream_stream_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_method_handler = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_stream_stream_rpc (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_method_handler,&__pyx_n_s_rpc_state,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method_handler)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 655, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 655, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_stream_stream_rpc", 1, 3, 3, 1); __PYX_ERR(9, 655, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 655, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_stream_stream_rpc", 1, 3, 3, 2); __PYX_ERR(9, 655, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_handle_stream_stream_rpc") < 0)) __PYX_ERR(9, 655, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_method_handler = values[0];
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[1]);
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_stream_stream_rpc", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 655, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_stream_stream_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 656, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_173_handle_stream_stream_rpc(__pyx_self, __pyx_v_method_handler, __pyx_v_rpc_state, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_173_handle_stream_stream_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_stream_stream_rpc", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 655, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_method_handler = __pyx_v_method_handler;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_method_handler);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_method_handler);
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_175generator33, __pyx_codeobj__91, (PyObject *) __pyx_cur_scope, __pyx_n_s_handle_stream_stream_rpc, __pyx_n_s_handle_stream_stream_rpc, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 655, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_stream_stream_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_175generator33(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_stream_stream_rpc", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 655, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":661
 *     cdef _ServicerContext servicer_context = _ServicerContext(
 *         rpc_state,
 *         method_handler.request_deserializer,             # <<<<<<<<<<<<<<
 *         method_handler.response_serializer,
 *         loop,
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_request_deserializer); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 661, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":662
 *         rpc_state,
 *         method_handler.request_deserializer,
 *         method_handler.response_serializer,             # <<<<<<<<<<<<<<
 *         loop,
 *     )
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_response_serializer); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":659
 *                                     object loop):
 *     # Creates a dedecated ServicerContext
 *     cdef _ServicerContext servicer_context = _ServicerContext(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         method_handler.request_deserializer,
 */
  __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state))) __PYX_ERR(9, 659, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(9, 659, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(9, 659, __pyx_L1_error);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_cur_scope->__pyx_v_loop)) __PYX_ERR(9, 659, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":668
 *     # Prepares the request generator
 *     cdef object request_iterator
 *     if _is_async_handler(method_handler.stream_stream):             # <<<<<<<<<<<<<<
 *         request_iterator = _MessageReceiver(servicer_context)
 *     else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_is_async_handler); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 668, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_stream_stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 668, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_1};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 668, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 668, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":669
 *     cdef object request_iterator
 *     if _is_async_handler(method_handler.stream_stream):
 *         request_iterator = _MessageReceiver(servicer_context)             # <<<<<<<<<<<<<<
 *     else:
 *         request_iterator = async_generator_to_generator(
 */
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver), ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 669, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_cur_scope->__pyx_v_request_iterator = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":668
 *     # Prepares the request generator
 *     cdef object request_iterator
 *     if _is_async_handler(method_handler.stream_stream):             # <<<<<<<<<<<<<<
 *         request_iterator = _MessageReceiver(servicer_context)
 *     else:
 */
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":671
 *         request_iterator = _MessageReceiver(servicer_context)
 *     else:
 *         request_iterator = async_generator_to_generator(             # <<<<<<<<<<<<<<
 *             _MessageReceiver(servicer_context),
 *             loop
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_async_generator_to_generator); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 671, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":672
 *     else:
 *         request_iterator = async_generator_to_generator(
 *             _MessageReceiver(servicer_context),             # <<<<<<<<<<<<<<
 *             loop
 *         )
 */
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver), ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 672, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":673
 *         request_iterator = async_generator_to_generator(
 *             _MessageReceiver(servicer_context),
 *             loop             # <<<<<<<<<<<<<<
 *         )
 * 
 */
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_1, __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 671, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_cur_scope->__pyx_v_request_iterator = __pyx_t_2;
    __pyx_t_2 = 0;
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":677
 * 
 *     # Finishes the application handler
 *     await _finish_handler_with_stream_responses(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         method_handler.stream_stream,
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_finish_handler_with_stream_resp); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":679
 *     await _finish_handler_with_stream_responses(
 *         rpc_state,
 *         method_handler.stream_stream,             # <<<<<<<<<<<<<<
 *         request_iterator,
 *         servicer_context,
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_stream_stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":682
 *         request_iterator,
 *         servicer_context,
 *         loop,             # <<<<<<<<<<<<<<
 *     )
 * 
 */
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_4, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_1, __pyx_cur_scope->__pyx_v_request_iterator, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context), __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 5+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 677, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(9, 677, __pyx_L1_error)
    }
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":655
 * 
 * 
 * async def _handle_stream_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                     RPCState rpc_state,
 *                                     object loop):
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("_handle_stream_stream_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_178generator34(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":686
 * 
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         try:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_177_handle_exceptions(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_177_handle_exceptions = {"_handle_exceptions", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_177_handle_exceptions, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_177_handle_exceptions(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_rpc_coro = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_exceptions (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rpc_state,&__pyx_n_s_rpc_coro,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 686, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_coro)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 686, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_exceptions", 1, 3, 3, 1); __PYX_ERR(9, 686, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 686, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_exceptions", 1, 3, 3, 2); __PYX_ERR(9, 686, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_handle_exceptions") < 0)) __PYX_ERR(9, 686, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[0]);
    __pyx_v_rpc_coro = values[1];
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_exceptions", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 686, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 686, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_176_handle_exceptions(__pyx_self, __pyx_v_rpc_state, __pyx_v_rpc_coro, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_176_handle_exceptions(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_rpc_coro, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_exceptions", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 686, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_rpc_coro = __pyx_v_rpc_coro;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_rpc_coro);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_rpc_coro);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_178generator34, __pyx_codeobj__92, (PyObject *) __pyx_cur_scope, __pyx_n_s_handle_exceptions, __pyx_n_s_handle_exceptions, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 686, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_178generator34(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  unsigned int __pyx_t_13;
  int __pyx_t_14;
  int __pyx_t_15;
  char const *__pyx_t_16;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  PyObject *__pyx_t_24 = NULL;
  PyObject *__pyx_t_25 = NULL;
  PyObject *__pyx_t_26 = NULL;
  int __pyx_t_27;
  PyObject *__pyx_t_28 = NULL;
  char const *__pyx_t_29;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_exceptions", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L16_resume_from_await;
    case 2: goto __pyx_L57_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 686, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":687
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):
 *     try:             # <<<<<<<<<<<<<<
 *         try:
 *             await rpc_coro
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":688
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):
 *     try:
 *         try:             # <<<<<<<<<<<<<<
 *             await rpc_coro
 *         except AbortError as e:
 */
      {
        __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_4);
        __Pyx_XGOTREF(__pyx_t_5);
        __Pyx_XGOTREF(__pyx_t_6);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":689
 *     try:
 *         try:
 *             await rpc_coro             # <<<<<<<<<<<<<<
 *         except AbortError as e:
 *             # Caught AbortError check if it is the same one
 */
          __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_rpc_coro);
          __Pyx_XGOTREF(__pyx_r);
          if (likely(__pyx_r)) {
            __Pyx_XGIVEREF(__pyx_t_1);
            __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
            __Pyx_XGIVEREF(__pyx_t_2);
            __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
            __Pyx_XGIVEREF(__pyx_t_3);
            __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
            __Pyx_XGIVEREF(__pyx_t_4);
            __pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
            __Pyx_XGIVEREF(__pyx_t_5);
            __pyx_cur_scope->__pyx_t_4 = __pyx_t_5;
            __Pyx_XGIVEREF(__pyx_t_6);
            __pyx_cur_scope->__pyx_t_5 = __pyx_t_6;
            __Pyx_XGIVEREF(__pyx_r);
            __Pyx_RefNannyFinishContext();
            __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
            /* return from generator, awaiting value */
            __pyx_generator->resume_label = 1;
            return __pyx_r;
            __pyx_L16_resume_from_await:;
            __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
            __pyx_cur_scope->__pyx_t_0 = 0;
            __Pyx_XGOTREF(__pyx_t_1);
            __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
            __pyx_cur_scope->__pyx_t_1 = 0;
            __Pyx_XGOTREF(__pyx_t_2);
            __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
            __pyx_cur_scope->__pyx_t_2 = 0;
            __Pyx_XGOTREF(__pyx_t_3);
            __pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
            __pyx_cur_scope->__pyx_t_3 = 0;
            __Pyx_XGOTREF(__pyx_t_4);
            __pyx_t_5 = __pyx_cur_scope->__pyx_t_4;
            __pyx_cur_scope->__pyx_t_4 = 0;
            __Pyx_XGOTREF(__pyx_t_5);
            __pyx_t_6 = __pyx_cur_scope->__pyx_t_5;
            __pyx_cur_scope->__pyx_t_5 = 0;
            __Pyx_XGOTREF(__pyx_t_6);
            if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 689, __pyx_L10_error)
          } else {
            PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
            if (exc_type) {
              if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
              else __PYX_ERR(9, 689, __pyx_L10_error)
            }
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":688
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):
 *     try:
 *         try:             # <<<<<<<<<<<<<<
 *             await rpc_coro
 *         except AbortError as e:
 */
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":696
 *         else:
 *             # Check if the abort exception got suppressed
 *             if rpc_state.abort_exception is not None:             # <<<<<<<<<<<<<<
 *                 _LOGGER.error(
 *                     'Abort error unexpectedly suppressed: %s',
 */
        /*else:*/ {
          __pyx_t_7 = (__pyx_cur_scope->__pyx_v_rpc_state->abort_exception != Py_None);
          if (__pyx_t_7) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":697
 *             # Check if the abort exception got suppressed
 *             if rpc_state.abort_exception is not None:
 *                 _LOGGER.error(             # <<<<<<<<<<<<<<
 *                     'Abort error unexpectedly suppressed: %s',
 *                     traceback.format_exception(rpc_state.abort_exception)
 */
            __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 697, __pyx_L12_except_error)
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 697, __pyx_L12_except_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":699
 *                 _LOGGER.error(
 *                     'Abort error unexpectedly suppressed: %s',
 *                     traceback.format_exception(rpc_state.abort_exception)             # <<<<<<<<<<<<<<
 *                 )
 *     except (KeyboardInterrupt, SystemExit):
 */
            __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 699, __pyx_L12_except_error)
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_format_exception); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 699, __pyx_L12_except_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __pyx_t_11 = NULL;
            __pyx_t_13 = 0;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_12))) {
              __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12);
              if (likely(__pyx_t_11)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
                __Pyx_INCREF(__pyx_t_11);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_12, function);
                __pyx_t_13 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_cur_scope->__pyx_v_rpc_state->abort_exception};
              __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_13, 1+__pyx_t_13);
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
              if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 699, __pyx_L12_except_error)
              __Pyx_GOTREF(__pyx_t_9);
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            }
            __pyx_t_12 = NULL;
            __pyx_t_13 = 0;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_10))) {
              __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10);
              if (likely(__pyx_t_12)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
                __Pyx_INCREF(__pyx_t_12);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_10, function);
                __pyx_t_13 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[3] = {__pyx_t_12, __pyx_kp_s_Abort_error_unexpectedly_suppres, __pyx_t_9};
              __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_13, 2+__pyx_t_13);
              __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 697, __pyx_L12_except_error)
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            }
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":696
 *         else:
 *             # Check if the abort exception got suppressed
 *             if rpc_state.abort_exception is not None:             # <<<<<<<<<<<<<<
 *                 _LOGGER.error(
 *                     'Abort error unexpectedly suppressed: %s',
 */
          }
        }
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L15_try_end;
        __pyx_L10_error:;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":690
 *         try:
 *             await rpc_coro
 *         except AbortError as e:             # <<<<<<<<<<<<<<
 *             # Caught AbortError check if it is the same one
 *             assert rpc_state.abort_exception is e, 'Abort error has been replaced!'
 */
        __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_10, &__pyx_t_9);
        __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_AbortError); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 690, __pyx_L12_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_14 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_8, __pyx_t_12);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_ErrRestore(__pyx_t_8, __pyx_t_10, __pyx_t_9);
        __pyx_t_8 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0;
        if (__pyx_t_14) {
          __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_8) < 0) __PYX_ERR(9, 690, __pyx_L12_except_error)
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_GIVEREF(__pyx_t_10);
          __pyx_cur_scope->__pyx_v_e = __pyx_t_10;
          /*try:*/ {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":692
 *         except AbortError as e:
 *             # Caught AbortError check if it is the same one
 *             assert rpc_state.abort_exception is e, 'Abort error has been replaced!'             # <<<<<<<<<<<<<<
 *             return
 *         else:
 */
            #ifndef CYTHON_WITHOUT_ASSERTIONS
            if (unlikely(__pyx_assertions_enabled())) {
              __pyx_t_7 = (__pyx_cur_scope->__pyx_v_rpc_state->abort_exception == __pyx_cur_scope->__pyx_v_e);
              if (unlikely(!__pyx_t_7)) {
                __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_kp_s_Abort_error_has_been_replaced, 0, 0);
                __PYX_ERR(9, 692, __pyx_L23_error)
              }
            }
            #else
            if ((1)); else __PYX_ERR(9, 692, __pyx_L23_error)
            #endif

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":693
 *             # Caught AbortError check if it is the same one
 *             assert rpc_state.abort_exception is e, 'Abort error has been replaced!'
 *             return             # <<<<<<<<<<<<<<
 *         else:
 *             # Check if the abort exception got suppressed
 */
            __Pyx_XDECREF(__pyx_r);
            __pyx_r = NULL;
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            goto __pyx_L22_return;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":690
 *         try:
 *             await rpc_coro
 *         except AbortError as e:             # <<<<<<<<<<<<<<
 *             # Caught AbortError check if it is the same one
 *             assert rpc_state.abort_exception is e, 'Abort error has been replaced!'
 */
          /*finally:*/ {
            __pyx_L23_error:;
            /*exception exit:*/{
              __Pyx_PyThreadState_assign
              __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0;
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
              if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
              if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
              __Pyx_XGOTREF(__pyx_t_17);
              __Pyx_XGOTREF(__pyx_t_18);
              __Pyx_XGOTREF(__pyx_t_19);
              __Pyx_XGOTREF(__pyx_t_20);
              __Pyx_XGOTREF(__pyx_t_21);
              __Pyx_XGOTREF(__pyx_t_22);
              __pyx_t_14 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename;
              {
                __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e);
                __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0;
              }
              if (PY_MAJOR_VERSION >= 3) {
                __Pyx_XGIVEREF(__pyx_t_20);
                __Pyx_XGIVEREF(__pyx_t_21);
                __Pyx_XGIVEREF(__pyx_t_22);
                __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22);
              }
              __Pyx_XGIVEREF(__pyx_t_17);
              __Pyx_XGIVEREF(__pyx_t_18);
              __Pyx_XGIVEREF(__pyx_t_19);
              __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19);
              __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0;
              __pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16;
              goto __pyx_L12_except_error;
            }
            __pyx_L22_return: {
              __Pyx_PyThreadState_assign
              __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0;
              if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_18, &__pyx_t_17);
              if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20);
              __Pyx_XGOTREF(__pyx_t_22);
              __Pyx_XGOTREF(__pyx_t_21);
              __Pyx_XGOTREF(__pyx_t_20);
              __Pyx_XGOTREF(__pyx_t_19);
              __Pyx_XGOTREF(__pyx_t_18);
              __Pyx_XGOTREF(__pyx_t_17);
              __pyx_t_23 = __pyx_r;
              __pyx_r = 0;
              __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e);
              __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0;
              __pyx_r = __pyx_t_23;
              __pyx_t_23 = 0;
              if (PY_MAJOR_VERSION >= 3) {
                __Pyx_XGIVEREF(__pyx_t_19);
                __Pyx_XGIVEREF(__pyx_t_18);
                __Pyx_XGIVEREF(__pyx_t_17);
                __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_18, __pyx_t_17);
              }
              __Pyx_XGIVEREF(__pyx_t_22);
              __Pyx_XGIVEREF(__pyx_t_21);
              __Pyx_XGIVEREF(__pyx_t_20);
              __Pyx_ErrRestore(__pyx_t_22, __pyx_t_21, __pyx_t_20);
              __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0;
              goto __pyx_L13_except_return;
            }
          }
        }
        goto __pyx_L12_except_error;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":688
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):
 *     try:
 *         try:             # <<<<<<<<<<<<<<
 *             await rpc_coro
 *         except AbortError as e:
 */
        __pyx_L12_except_error:;
        __Pyx_XGIVEREF(__pyx_t_4);
        __Pyx_XGIVEREF(__pyx_t_5);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
        goto __pyx_L4_error;
        __pyx_L13_except_return:;
        __Pyx_XGIVEREF(__pyx_t_4);
        __Pyx_XGIVEREF(__pyx_t_5);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
        goto __pyx_L8_try_return;
        __pyx_L15_try_end:;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":687
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):
 *     try:             # <<<<<<<<<<<<<<
 *         try:
 *             await rpc_coro
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":701
 *                     traceback.format_exception(rpc_state.abort_exception)
 *                 )
 *     except (KeyboardInterrupt, SystemExit):             # <<<<<<<<<<<<<<
 *         raise
 *     except asyncio.CancelledError:
 */
    __pyx_t_15 = __Pyx_PyErr_ExceptionMatches2(__pyx_builtin_KeyboardInterrupt, __pyx_builtin_SystemExit);
    if (__pyx_t_15) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_10, &__pyx_t_9) < 0) __PYX_ERR(9, 701, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_9);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":702
 *                 )
 *     except (KeyboardInterrupt, SystemExit):
 *         raise             # <<<<<<<<<<<<<<
 *     except asyncio.CancelledError:
 *         _LOGGER.debug('RPC cancelled for servicer method [%s]', _decode(rpc_state.method()))
 */
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_10);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ErrRestoreWithState(__pyx_t_8, __pyx_t_10, __pyx_t_9);
      __pyx_t_8 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; 
      __PYX_ERR(9, 702, __pyx_L6_except_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":703
 *     except (KeyboardInterrupt, SystemExit):
 *         raise
 *     except asyncio.CancelledError:             # <<<<<<<<<<<<<<
 *         _LOGGER.debug('RPC cancelled for servicer method [%s]', _decode(rpc_state.method()))
 *     except _ServerStoppedError:
 */
    __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_8);
    __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 703, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_CancelledError); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 703, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_9, __pyx_t_11);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_8);
    __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_8 = 0;
    if (__pyx_t_15) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_10, &__pyx_t_9) < 0) __PYX_ERR(9, 703, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_9);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":704
 *         raise
 *     except asyncio.CancelledError:
 *         _LOGGER.debug('RPC cancelled for servicer method [%s]', _decode(rpc_state.method()))             # <<<<<<<<<<<<<<
 *     except _ServerStoppedError:
 *         _LOGGER.warning('Aborting method [%s] due to server stop.', _decode(rpc_state.method()))
 */
      __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 704, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_debug); if (unlikely(!__pyx_t_24)) __PYX_ERR(9, 704, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_24);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 704, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_25 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_12)); if (unlikely(!__pyx_t_25)) __PYX_ERR(9, 704, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = NULL;
      __pyx_t_13 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_24))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_24);
        if (likely(__pyx_t_12)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_24);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_24, function);
          __pyx_t_13 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_12, __pyx_kp_s_RPC_cancelled_for_servicer_metho, __pyx_t_25};
        __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_24, __pyx_callargs+1-__pyx_t_13, 2+__pyx_t_13);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 704, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L5_exception_handled;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":705
 *     except asyncio.CancelledError:
 *         _LOGGER.debug('RPC cancelled for servicer method [%s]', _decode(rpc_state.method()))
 *     except _ServerStoppedError:             # <<<<<<<<<<<<<<
 *         _LOGGER.warning('Aborting method [%s] due to server stop.', _decode(rpc_state.method()))
 *     except ExecuteBatchError:
 */
    __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_8);
    __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_ServerStoppedError); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 705, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_15 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_9, __pyx_t_11);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_8);
    __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_8 = 0;
    if (__pyx_t_15) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_10, &__pyx_t_9) < 0) __PYX_ERR(9, 705, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_9);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":706
 *         _LOGGER.debug('RPC cancelled for servicer method [%s]', _decode(rpc_state.method()))
 *     except _ServerStoppedError:
 *         _LOGGER.warning('Aborting method [%s] due to server stop.', _decode(rpc_state.method()))             # <<<<<<<<<<<<<<
 *     except ExecuteBatchError:
 *         # If client closed (aka. cancelled), ignore the failed batch operations.
 */
      __Pyx_GetModuleGlobalName(__pyx_t_24, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_24)) __PYX_ERR(9, 706, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_24);
      __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_24, __pyx_n_s_warning); if (unlikely(!__pyx_t_25)) __PYX_ERR(9, 706, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      __pyx_t_24 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_24)) __PYX_ERR(9, 706, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_24);
      __pyx_t_12 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_24)); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 706, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      __pyx_t_24 = NULL;
      __pyx_t_13 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_25))) {
        __pyx_t_24 = PyMethod_GET_SELF(__pyx_t_25);
        if (likely(__pyx_t_24)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
          __Pyx_INCREF(__pyx_t_24);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_25, function);
          __pyx_t_13 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_24, __pyx_kp_s_Aborting_method_s_due_to_server, __pyx_t_12};
        __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_25, __pyx_callargs+1-__pyx_t_13, 2+__pyx_t_13);
        __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 706, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L5_exception_handled;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":707
 *     except _ServerStoppedError:
 *         _LOGGER.warning('Aborting method [%s] due to server stop.', _decode(rpc_state.method()))
 *     except ExecuteBatchError:             # <<<<<<<<<<<<<<
 *         # If client closed (aka. cancelled), ignore the failed batch operations.
 *         if rpc_state.client_closed:
 */
    __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_8);
    __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_ExecuteBatchError); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 707, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_15 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_9, __pyx_t_11);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_8);
    __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_8 = 0;
    if (__pyx_t_15) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_10, &__pyx_t_9) < 0) __PYX_ERR(9, 707, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_9);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":709
 *     except ExecuteBatchError:
 *         # If client closed (aka. cancelled), ignore the failed batch operations.
 *         if rpc_state.client_closed:             # <<<<<<<<<<<<<<
 *             return
 *         else:
 */
      if (__pyx_cur_scope->__pyx_v_rpc_state->client_closed) {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":710
 *         # If client closed (aka. cancelled), ignore the failed batch operations.
 *         if rpc_state.client_closed:
 *             return             # <<<<<<<<<<<<<<
 *         else:
 *             _LOGGER.exception('ExecuteBatchError raised in core by servicer method [%s]' % (
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_r = NULL;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L7_except_return;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":709
 *     except ExecuteBatchError:
 *         # If client closed (aka. cancelled), ignore the failed batch operations.
 *         if rpc_state.client_closed:             # <<<<<<<<<<<<<<
 *             return
 *         else:
 */
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":712
 *             return
 *         else:
 *             _LOGGER.exception('ExecuteBatchError raised in core by servicer method [%s]' % (             # <<<<<<<<<<<<<<
 *                 _decode(rpc_state.method())))
 *             return
 */
      /*else*/ {
        __Pyx_GetModuleGlobalName(__pyx_t_25, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_25)) __PYX_ERR(9, 712, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_25, __pyx_n_s_exception); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 712, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":713
 *         else:
 *             _LOGGER.exception('ExecuteBatchError raised in core by servicer method [%s]' % (
 *                 _decode(rpc_state.method())))             # <<<<<<<<<<<<<<
 *             return
 *     except Exception as e:
 */
        __pyx_t_25 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_25)) __PYX_ERR(9, 713, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_24 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_25)); if (unlikely(!__pyx_t_24)) __PYX_ERR(9, 713, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_24);
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":712
 *             return
 *         else:
 *             _LOGGER.exception('ExecuteBatchError raised in core by servicer method [%s]' % (             # <<<<<<<<<<<<<<
 *                 _decode(rpc_state.method())))
 *             return
 */
        __pyx_t_25 = __Pyx_PyString_Format(__pyx_kp_s_ExecuteBatchError_raised_in_core, __pyx_t_24); if (unlikely(!__pyx_t_25)) __PYX_ERR(9, 712, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_25);
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        __pyx_t_24 = NULL;
        __pyx_t_13 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_24 = PyMethod_GET_SELF(__pyx_t_12);
          if (likely(__pyx_t_24)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
            __Pyx_INCREF(__pyx_t_24);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_12, function);
            __pyx_t_13 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_24, __pyx_t_25};
          __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_13, 1+__pyx_t_13);
          __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 712, __pyx_L6_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        }
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":714
 *             _LOGGER.exception('ExecuteBatchError raised in core by servicer method [%s]' % (
 *                 _decode(rpc_state.method())))
 *             return             # <<<<<<<<<<<<<<
 *     except Exception as e:
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_r = NULL;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L7_except_return;
      }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":715
 *                 _decode(rpc_state.method())))
 *             return
 *     except Exception as e:             # <<<<<<<<<<<<<<
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (
 *             type(e).__name__,
 */
    __pyx_t_15 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_15) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_8) < 0) __PYX_ERR(9, 715, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_e);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_e, __pyx_t_10);
      __Pyx_GIVEREF(__pyx_t_10);
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":716
 *             return
 *     except Exception as e:
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (             # <<<<<<<<<<<<<<
 *             type(e).__name__,
 *             _decode(rpc_state.method()),
 */
        __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 716, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_exception); if (unlikely(!__pyx_t_25)) __PYX_ERR(9, 716, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_25);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":717
 *     except Exception as e:
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (
 *             type(e).__name__,             # <<<<<<<<<<<<<<
 *             _decode(rpc_state.method()),
 *         ))
 */
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_cur_scope->__pyx_v_e)), __pyx_n_s_name_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 717, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_12);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":718
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (
 *             type(e).__name__,
 *             _decode(rpc_state.method()),             # <<<<<<<<<<<<<<
 *         ))
 *         if not rpc_state.status_sent and rpc_state.server._status != AIO_SERVER_STATUS_STOPPED:
 */
        __pyx_t_24 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_24)) __PYX_ERR(9, 718, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_24);
        __pyx_t_26 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_24)); if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 718, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":717
 *     except Exception as e:
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (
 *             type(e).__name__,             # <<<<<<<<<<<<<<
 *             _decode(rpc_state.method()),
 *         ))
 */
        __pyx_t_24 = PyTuple_New(2); if (unlikely(!__pyx_t_24)) __PYX_ERR(9, 717, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_24);
        __Pyx_GIVEREF(__pyx_t_12);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_12)) __PYX_ERR(9, 717, __pyx_L43_error);
        __Pyx_GIVEREF(__pyx_t_26);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_24, 1, __pyx_t_26)) __PYX_ERR(9, 717, __pyx_L43_error);
        __pyx_t_12 = 0;
        __pyx_t_26 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":716
 *             return
 *     except Exception as e:
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (             # <<<<<<<<<<<<<<
 *             type(e).__name__,
 *             _decode(rpc_state.method()),
 */
        __pyx_t_26 = __Pyx_PyString_Format(__pyx_kp_s_Unexpected_s_raised_by_servicer, __pyx_t_24); if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 716, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        __pyx_t_24 = NULL;
        __pyx_t_13 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_25))) {
          __pyx_t_24 = PyMethod_GET_SELF(__pyx_t_25);
          if (likely(__pyx_t_24)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
            __Pyx_INCREF(__pyx_t_24);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_25, function);
            __pyx_t_13 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_24, __pyx_t_26};
          __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_25, __pyx_callargs+1-__pyx_t_13, 1+__pyx_t_13);
          __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 716, __pyx_L43_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        }
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":720
 *             _decode(rpc_state.method()),
 *         ))
 *         if not rpc_state.status_sent and rpc_state.server._status != AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             # Allows users to raise other types of exception with specified status code
 *             if rpc_state.status_code == StatusCode.ok:
 */
        __pyx_t_27 = (!__pyx_cur_scope->__pyx_v_rpc_state->status_sent);
        if (__pyx_t_27) {
        } else {
          __pyx_t_7 = __pyx_t_27;
          goto __pyx_L46_bool_binop_done;
        }
        __pyx_t_27 = (__pyx_cur_scope->__pyx_v_rpc_state->server->_status != __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPED);
        __pyx_t_7 = __pyx_t_27;
        __pyx_L46_bool_binop_done:;
        if (__pyx_t_7) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":722
 *         if not rpc_state.status_sent and rpc_state.server._status != AIO_SERVER_STATUS_STOPPED:
 *             # Allows users to raise other types of exception with specified status code
 *             if rpc_state.status_code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *                 status_code = StatusCode.unknown
 *             else:
 */
          __pyx_t_11 = __Pyx_PyInt_From_grpc_status_code(__pyx_cur_scope->__pyx_v_rpc_state->status_code); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 722, __pyx_L43_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_GetModuleGlobalName(__pyx_t_25, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_25)) __PYX_ERR(9, 722, __pyx_L43_error)
          __Pyx_GOTREF(__pyx_t_25);
          __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_25, __pyx_n_s_ok); if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 722, __pyx_L43_error)
          __Pyx_GOTREF(__pyx_t_26);
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __pyx_t_25 = PyObject_RichCompare(__pyx_t_11, __pyx_t_26, Py_EQ); __Pyx_XGOTREF(__pyx_t_25); if (unlikely(!__pyx_t_25)) __PYX_ERR(9, 722, __pyx_L43_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_25); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(9, 722, __pyx_L43_error)
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          if (__pyx_t_7) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":723
 *             # Allows users to raise other types of exception with specified status code
 *             if rpc_state.status_code == StatusCode.ok:
 *                 status_code = StatusCode.unknown             # <<<<<<<<<<<<<<
 *             else:
 *                 status_code = rpc_state.status_code
 */
            __Pyx_GetModuleGlobalName(__pyx_t_25, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_25)) __PYX_ERR(9, 723, __pyx_L43_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_25, __pyx_n_s_unknown); if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 723, __pyx_L43_error)
            __Pyx_GOTREF(__pyx_t_26);
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __Pyx_GIVEREF(__pyx_t_26);
            __pyx_cur_scope->__pyx_v_status_code = __pyx_t_26;
            __pyx_t_26 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":722
 *         if not rpc_state.status_sent and rpc_state.server._status != AIO_SERVER_STATUS_STOPPED:
 *             # Allows users to raise other types of exception with specified status code
 *             if rpc_state.status_code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *                 status_code = StatusCode.unknown
 *             else:
 */
            goto __pyx_L48;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":725
 *                 status_code = StatusCode.unknown
 *             else:
 *                 status_code = rpc_state.status_code             # <<<<<<<<<<<<<<
 * 
 *             rpc_state.status_sent = True
 */
          /*else*/ {
            __pyx_t_26 = __Pyx_PyInt_From_grpc_status_code(__pyx_cur_scope->__pyx_v_rpc_state->status_code); if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 725, __pyx_L43_error)
            __Pyx_GOTREF(__pyx_t_26);
            __Pyx_GIVEREF(__pyx_t_26);
            __pyx_cur_scope->__pyx_v_status_code = __pyx_t_26;
            __pyx_t_26 = 0;
          }
          __pyx_L48:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":727
 *                 status_code = rpc_state.status_code
 * 
 *             rpc_state.status_sent = True             # <<<<<<<<<<<<<<
 *             try:
 *                 await _send_error_status_from_server(
 */
          __pyx_cur_scope->__pyx_v_rpc_state->status_sent = 1;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":728
 * 
 *             rpc_state.status_sent = True
 *             try:             # <<<<<<<<<<<<<<
 *                 await _send_error_status_from_server(
 *                     rpc_state,
 */
          {
            __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_5, &__pyx_t_4);
            __Pyx_XGOTREF(__pyx_t_6);
            __Pyx_XGOTREF(__pyx_t_5);
            __Pyx_XGOTREF(__pyx_t_4);
            /*try:*/ {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":729
 *             rpc_state.status_sent = True
 *             try:
 *                 await _send_error_status_from_server(             # <<<<<<<<<<<<<<
 *                     rpc_state,
 *                     status_code,
 */
              __Pyx_GetModuleGlobalName(__pyx_t_25, __pyx_n_s_send_error_status_from_server); if (unlikely(!__pyx_t_25)) __PYX_ERR(9, 729, __pyx_L49_error)
              __Pyx_GOTREF(__pyx_t_25);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":732
 *                     rpc_state,
 *                     status_code,
 *                     'Unexpected %s: %s' % (type(e), e),             # <<<<<<<<<<<<<<
 *                     rpc_state.trailing_metadata,
 *                     rpc_state.create_send_initial_metadata_op_if_not_sent(),
 */
              __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 732, __pyx_L49_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_cur_scope->__pyx_v_e)));
              __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_cur_scope->__pyx_v_e)));
              if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)Py_TYPE(__pyx_cur_scope->__pyx_v_e)))) __PYX_ERR(9, 732, __pyx_L49_error);
              __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e);
              __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_e);
              if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_cur_scope->__pyx_v_e)) __PYX_ERR(9, 732, __pyx_L49_error);
              __pyx_t_24 = __Pyx_PyString_Format(__pyx_kp_s_Unexpected_s_s, __pyx_t_11); if (unlikely(!__pyx_t_24)) __PYX_ERR(9, 732, __pyx_L49_error)
              __Pyx_GOTREF(__pyx_t_24);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":734
 *                     'Unexpected %s: %s' % (type(e), e),
 *                     rpc_state.trailing_metadata,
 *                     rpc_state.create_send_initial_metadata_op_if_not_sent(),             # <<<<<<<<<<<<<<
 *                     loop
 *                 )
 */
              __pyx_t_11 = ((PyObject *)((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->create_send_initial_metadata_op_if_not_sent(__pyx_cur_scope->__pyx_v_rpc_state)); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 734, __pyx_L49_error)
              __Pyx_GOTREF(__pyx_t_11);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":735
 *                     rpc_state.trailing_metadata,
 *                     rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *                     loop             # <<<<<<<<<<<<<<
 *                 )
 *             except ExecuteBatchError:
 */
              __pyx_t_12 = NULL;
              __pyx_t_13 = 0;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_25))) {
                __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_25);
                if (likely(__pyx_t_12)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
                  __Pyx_INCREF(__pyx_t_12);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_25, function);
                  __pyx_t_13 = 1;
                }
              }
              #endif
              {
                PyObject *__pyx_callargs[7] = {__pyx_t_12, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_status_code, __pyx_t_24, __pyx_cur_scope->__pyx_v_rpc_state->trailing_metadata, __pyx_t_11, __pyx_cur_scope->__pyx_v_loop};
                __pyx_t_26 = __Pyx_PyObject_FastCall(__pyx_t_25, __pyx_callargs+1-__pyx_t_13, 6+__pyx_t_13);
                __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 729, __pyx_L49_error)
                __Pyx_GOTREF(__pyx_t_26);
                __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
              }
              __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_26);
              __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
              __Pyx_XGOTREF(__pyx_r);
              if (likely(__pyx_r)) {
                __Pyx_XGIVEREF(__pyx_t_1);
                __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
                __Pyx_XGIVEREF(__pyx_t_2);
                __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
                __Pyx_XGIVEREF(__pyx_t_3);
                __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
                __Pyx_XGIVEREF(__pyx_t_4);
                __pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
                __Pyx_XGIVEREF(__pyx_t_5);
                __pyx_cur_scope->__pyx_t_4 = __pyx_t_5;
                __Pyx_XGIVEREF(__pyx_t_6);
                __pyx_cur_scope->__pyx_t_5 = __pyx_t_6;
                __Pyx_XGIVEREF(__pyx_t_8);
                __pyx_cur_scope->__pyx_t_6 = __pyx_t_8;
                __Pyx_XGIVEREF(__pyx_t_9);
                __pyx_cur_scope->__pyx_t_7 = __pyx_t_9;
                __Pyx_XGIVEREF(__pyx_t_10);
                __pyx_cur_scope->__pyx_t_8 = __pyx_t_10;
                __Pyx_XGIVEREF(__pyx_r);
                __Pyx_RefNannyFinishContext();
                __Pyx_Coroutine_SwapException(__pyx_generator);
                /* return from generator, awaiting value */
                __pyx_generator->resume_label = 2;
                return __pyx_r;
                __pyx_L57_resume_from_await:;
                __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
                __pyx_cur_scope->__pyx_t_0 = 0;
                __Pyx_XGOTREF(__pyx_t_1);
                __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
                __pyx_cur_scope->__pyx_t_1 = 0;
                __Pyx_XGOTREF(__pyx_t_2);
                __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
                __pyx_cur_scope->__pyx_t_2 = 0;
                __Pyx_XGOTREF(__pyx_t_3);
                __pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
                __pyx_cur_scope->__pyx_t_3 = 0;
                __Pyx_XGOTREF(__pyx_t_4);
                __pyx_t_5 = __pyx_cur_scope->__pyx_t_4;
                __pyx_cur_scope->__pyx_t_4 = 0;
                __Pyx_XGOTREF(__pyx_t_5);
                __pyx_t_6 = __pyx_cur_scope->__pyx_t_5;
                __pyx_cur_scope->__pyx_t_5 = 0;
                __Pyx_XGOTREF(__pyx_t_6);
                __pyx_t_8 = __pyx_cur_scope->__pyx_t_6;
                __pyx_cur_scope->__pyx_t_6 = 0;
                __Pyx_XGOTREF(__pyx_t_8);
                __pyx_t_9 = __pyx_cur_scope->__pyx_t_7;
                __pyx_cur_scope->__pyx_t_7 = 0;
                __Pyx_XGOTREF(__pyx_t_9);
                __pyx_t_10 = __pyx_cur_scope->__pyx_t_8;
                __pyx_cur_scope->__pyx_t_8 = 0;
                __Pyx_XGOTREF(__pyx_t_10);
                if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 729, __pyx_L49_error)
              } else {
                PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
                if (exc_type) {
                  if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
                  else __PYX_ERR(9, 729, __pyx_L49_error)
                }
              }

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":728
 * 
 *             rpc_state.status_sent = True
 *             try:             # <<<<<<<<<<<<<<
 *                 await _send_error_status_from_server(
 *                     rpc_state,
 */
            }
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            goto __pyx_L56_try_end;
            __pyx_L49_error:;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
            __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
            __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":737
 *                     loop
 *                 )
 *             except ExecuteBatchError:             # <<<<<<<<<<<<<<
 *                 _LOGGER.exception('Failed sending error status from server')
 *                 traceback.print_exc()
 */
            __Pyx_ErrFetch(&__pyx_t_26, &__pyx_t_25, &__pyx_t_11);
            __Pyx_GetModuleGlobalName(__pyx_t_24, __pyx_n_s_ExecuteBatchError); if (unlikely(!__pyx_t_24)) __PYX_ERR(9, 737, __pyx_L51_except_error)
            __Pyx_GOTREF(__pyx_t_24);
            __pyx_t_15 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_26, __pyx_t_24);
            __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
            __Pyx_ErrRestore(__pyx_t_26, __pyx_t_25, __pyx_t_11);
            __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_11 = 0;
            if (__pyx_t_15) {
              __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_25, &__pyx_t_26) < 0) __PYX_ERR(9, 737, __pyx_L51_except_error)
              __Pyx_XGOTREF(__pyx_t_11);
              __Pyx_XGOTREF(__pyx_t_25);
              __Pyx_XGOTREF(__pyx_t_26);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":738
 *                 )
 *             except ExecuteBatchError:
 *                 _LOGGER.exception('Failed sending error status from server')             # <<<<<<<<<<<<<<
 *                 traceback.print_exc()
 * 
 */
              __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 738, __pyx_L51_except_error)
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_28 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_exception); if (unlikely(!__pyx_t_28)) __PYX_ERR(9, 738, __pyx_L51_except_error)
              __Pyx_GOTREF(__pyx_t_28);
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              __pyx_t_12 = NULL;
              __pyx_t_13 = 0;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_28))) {
                __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_28);
                if (likely(__pyx_t_12)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_28);
                  __Pyx_INCREF(__pyx_t_12);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_28, function);
                  __pyx_t_13 = 1;
                }
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_kp_s_Failed_sending_error_status_from};
                __pyx_t_24 = __Pyx_PyObject_FastCall(__pyx_t_28, __pyx_callargs+1-__pyx_t_13, 1+__pyx_t_13);
                __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                if (unlikely(!__pyx_t_24)) __PYX_ERR(9, 738, __pyx_L51_except_error)
                __Pyx_GOTREF(__pyx_t_24);
                __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
              }
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":739
 *             except ExecuteBatchError:
 *                 _LOGGER.exception('Failed sending error status from server')
 *                 traceback.print_exc()             # <<<<<<<<<<<<<<
 * 
 * 
 */
              __Pyx_GetModuleGlobalName(__pyx_t_28, __pyx_n_s_traceback); if (unlikely(!__pyx_t_28)) __PYX_ERR(9, 739, __pyx_L51_except_error)
              __Pyx_GOTREF(__pyx_t_28);
              __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_28, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 739, __pyx_L51_except_error)
              __Pyx_GOTREF(__pyx_t_12);
              __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
              __pyx_t_28 = NULL;
              __pyx_t_13 = 0;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_12))) {
                __pyx_t_28 = PyMethod_GET_SELF(__pyx_t_12);
                if (likely(__pyx_t_28)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
                  __Pyx_INCREF(__pyx_t_28);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_12, function);
                  __pyx_t_13 = 1;
                }
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_28, NULL};
                __pyx_t_24 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_13, 0+__pyx_t_13);
                __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
                if (unlikely(!__pyx_t_24)) __PYX_ERR(9, 739, __pyx_L51_except_error)
                __Pyx_GOTREF(__pyx_t_24);
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              }
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
              __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
              goto __pyx_L50_exception_handled;
            }
            goto __pyx_L51_except_error;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":728
 * 
 *             rpc_state.status_sent = True
 *             try:             # <<<<<<<<<<<<<<
 *                 await _send_error_status_from_server(
 *                     rpc_state,
 */
            __pyx_L51_except_error:;
            __Pyx_XGIVEREF(__pyx_t_6);
            __Pyx_XGIVEREF(__pyx_t_5);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_5, __pyx_t_4);
            goto __pyx_L43_error;
            __pyx_L50_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_6);
            __Pyx_XGIVEREF(__pyx_t_5);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_5, __pyx_t_4);
            __pyx_L56_try_end:;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":720
 *             _decode(rpc_state.method()),
 *         ))
 *         if not rpc_state.status_sent and rpc_state.server._status != AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             # Allows users to raise other types of exception with specified status code
 *             if rpc_state.status_code == StatusCode.ok:
 */
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":715
 *                 _decode(rpc_state.method())))
 *             return
 *     except Exception as e:             # <<<<<<<<<<<<<<
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (
 *             type(e).__name__,
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e);
          __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0;
          goto __pyx_L44;
        }
        __pyx_L43_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_assign
          __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
          __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
          __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0)) __Pyx_ErrFetch(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
          __Pyx_XGOTREF(__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_6);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __pyx_t_15 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_29 = __pyx_filename;
          {
            __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e);
            __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_17);
            __Pyx_XGIVEREF(__pyx_t_18);
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
          }
          __Pyx_XGIVEREF(__pyx_t_4);
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_6);
          __Pyx_ErrRestore(__pyx_t_4, __pyx_t_5, __pyx_t_6);
          __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
          __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_29;
          goto __pyx_L6_except_error;
        }
        __pyx_L44:;
      }
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L5_exception_handled;
    }
    goto __pyx_L6_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":687
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):
 *     try:             # <<<<<<<<<<<<<<
 *         try:
 *             await rpc_coro
 */
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L5_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L9_try_end:;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":686
 * 
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         try:
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_24);
  __Pyx_XDECREF(__pyx_t_25);
  __Pyx_XDECREF(__pyx_t_26);
  __Pyx_XDECREF(__pyx_t_28);
  __Pyx_AddTraceback("_handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":744
 * cdef _add_callback_handler(object rpc_task, RPCState rpc_state):
 * 
 *     def handle_callbacks(object unused_task):             # <<<<<<<<<<<<<<
 *         try:
 *             for callback in rpc_state.callbacks:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_add_callback_handler_1handle_callbacks(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21_add_callback_handler_1handle_callbacks = {"handle_callbacks", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_add_callback_handler_1handle_callbacks, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_add_callback_handler_1handle_callbacks(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_unused_task = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("handle_callbacks (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unused_task,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_unused_task)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 744, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "handle_callbacks") < 0)) __PYX_ERR(9, 744, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_unused_task = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("handle_callbacks", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 744, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._add_callback_handler.handle_callbacks", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21_add_callback_handler_handle_callbacks(__pyx_self, __pyx_v_unused_task);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_add_callback_handler_handle_callbacks(PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_unused_task) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *__pyx_outer_scope;
  PyObject *__pyx_v_callback = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  unsigned int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("handle_callbacks", 1);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":745
 * 
 *     def handle_callbacks(object unused_task):
 *         try:             # <<<<<<<<<<<<<<
 *             for callback in rpc_state.callbacks:
 *                 # The _ServicerContext object is bound in add_done_callback.
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":746
 *     def handle_callbacks(object unused_task):
 *         try:
 *             for callback in rpc_state.callbacks:             # <<<<<<<<<<<<<<
 *                 # The _ServicerContext object is bound in add_done_callback.
 *                 callback()
 */
      if (unlikely(!__pyx_cur_scope->__pyx_v_rpc_state)) { __Pyx_RaiseClosureNameError("rpc_state"); __PYX_ERR(9, 746, __pyx_L3_error) }
      if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_rpc_state->callbacks)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_rpc_state->callbacks)) {
        __pyx_t_4 = __pyx_cur_scope->__pyx_v_rpc_state->callbacks; __Pyx_INCREF(__pyx_t_4);
        __pyx_t_5 = 0;
        __pyx_t_6 = NULL;
      } else {
        __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_rpc_state->callbacks); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 746, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 746, __pyx_L3_error)
      }
      for (;;) {
        if (likely(!__pyx_t_6)) {
          if (likely(PyList_CheckExact(__pyx_t_4))) {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
              #if !CYTHON_ASSUME_SAFE_MACROS
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(9, 746, __pyx_L3_error)
              #endif
              if (__pyx_t_5 >= __pyx_temp) break;
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(9, 746, __pyx_L3_error)
            #else
            __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 746, __pyx_L3_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          } else {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
              #if !CYTHON_ASSUME_SAFE_MACROS
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(9, 746, __pyx_L3_error)
              #endif
              if (__pyx_t_5 >= __pyx_temp) break;
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(9, 746, __pyx_L3_error)
            #else
            __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 746, __pyx_L3_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          }
        } else {
          __pyx_t_7 = __pyx_t_6(__pyx_t_4);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(9, 746, __pyx_L3_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_XDECREF_SET(__pyx_v_callback, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":748
 *             for callback in rpc_state.callbacks:
 *                 # The _ServicerContext object is bound in add_done_callback.
 *                 callback()             # <<<<<<<<<<<<<<
 *         except:
 *             _LOGGER.exception('Error in callback for method [%s]', _decode(rpc_state.method()))
 */
        __Pyx_INCREF(__pyx_v_callback);
        __pyx_t_8 = __pyx_v_callback; __pyx_t_9 = NULL;
        __pyx_t_10 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_10 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_9, NULL};
          __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_10, 0+__pyx_t_10);
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 748, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":746
 *     def handle_callbacks(object unused_task):
 *         try:
 *             for callback in rpc_state.callbacks:             # <<<<<<<<<<<<<<
 *                 # The _ServicerContext object is bound in add_done_callback.
 *                 callback()
 */
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":745
 * 
 *     def handle_callbacks(object unused_task):
 *         try:             # <<<<<<<<<<<<<<
 *             for callback in rpc_state.callbacks:
 *                 # The _ServicerContext object is bound in add_done_callback.
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":749
 *                 # The _ServicerContext object is bound in add_done_callback.
 *                 callback()
 *         except:             # <<<<<<<<<<<<<<
 *             _LOGGER.exception('Error in callback for method [%s]', _decode(rpc_state.method()))
 * 
 */
    /*except:*/ {
      __Pyx_AddTraceback("grpc._cython.cygrpc._add_callback_handler.handle_callbacks", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(9, 749, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":750
 *                 callback()
 *         except:
 *             _LOGGER.exception('Error in callback for method [%s]', _decode(rpc_state.method()))             # <<<<<<<<<<<<<<
 * 
 *     rpc_task.add_done_callback(handle_callbacks)
 */
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 750, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_exception); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 750, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_cur_scope->__pyx_v_rpc_state)) { __Pyx_RaiseClosureNameError("rpc_state"); __PYX_ERR(9, 750, __pyx_L5_except_error) }
      __pyx_t_11 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 750, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_13 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_11)); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 750, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = NULL;
      __pyx_t_10 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_12))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_12, function);
          __pyx_t_10 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_11, __pyx_kp_s_Error_in_callback_for_method_s, __pyx_t_13};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10);
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 750, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":745
 * 
 *     def handle_callbacks(object unused_task):
 *         try:             # <<<<<<<<<<<<<<
 *             for callback in rpc_state.callbacks:
 *                 # The _ServicerContext object is bound in add_done_callback.
 */
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":744
 * cdef _add_callback_handler(object rpc_task, RPCState rpc_state):
 * 
 *     def handle_callbacks(object unused_task):             # <<<<<<<<<<<<<<
 *         try:
 *             for callback in rpc_state.callbacks:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("grpc._cython.cygrpc._add_callback_handler.handle_callbacks", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_callback);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":742
 * 
 * 
 * cdef _add_callback_handler(object rpc_task, RPCState rpc_state):             # <<<<<<<<<<<<<<
 * 
 *     def handle_callbacks(object unused_task):
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(PyObject *__pyx_v_rpc_task, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *__pyx_cur_scope;
  PyObject *__pyx_v_handle_callbacks = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_add_callback_handler", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 742, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":744
 * cdef _add_callback_handler(object rpc_task, RPCState rpc_state):
 * 
 *     def handle_callbacks(object unused_task):             # <<<<<<<<<<<<<<
 *         try:
 *             for callback in rpc_state.callbacks:
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21_add_callback_handler_1handle_callbacks, 0, __pyx_n_s_add_callback_handler_locals_han, ((PyObject*)__pyx_cur_scope), __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_handle_callbacks = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":752
 *             _LOGGER.exception('Error in callback for method [%s]', _decode(rpc_state.method()))
 * 
 *     rpc_task.add_done_callback(handle_callbacks)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_rpc_task, __pyx_n_s_add_done_callback); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_handle_callbacks};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 752, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":742
 * 
 * 
 * cdef _add_callback_handler(object rpc_task, RPCState rpc_state):             # <<<<<<<<<<<<<<
 * 
 *     def handle_callbacks(object unused_task):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._add_callback_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_handle_callbacks);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_181generator35(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":755
 * 
 * 
 * async def _handle_cancellation_from_core(object rpc_task,             # <<<<<<<<<<<<<<
 *                                          RPCState rpc_state,
 *                                          object loop):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_180_handle_cancellation_from_core(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_180_handle_cancellation_from_core = {"_handle_cancellation_from_core", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_180_handle_cancellation_from_core, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_180_handle_cancellation_from_core(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_rpc_task = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_cancellation_from_core (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rpc_task,&__pyx_n_s_rpc_state,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_task)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 755, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 755, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_cancellation_from_core", 1, 3, 3, 1); __PYX_ERR(9, 755, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 755, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_cancellation_from_core", 1, 3, 3, 2); __PYX_ERR(9, 755, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_handle_cancellation_from_core") < 0)) __PYX_ERR(9, 755, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_rpc_task = values[0];
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[1]);
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_cancellation_from_core", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 755, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_cancellation_from_core", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 756, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_179_handle_cancellation_from_core(__pyx_self, __pyx_v_rpc_task, __pyx_v_rpc_state, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_179_handle_cancellation_from_core(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_rpc_task, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_cancellation_from_core", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 755, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_rpc_task = __pyx_v_rpc_task;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_rpc_task);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_rpc_task);
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_181generator35, __pyx_codeobj__95, (PyObject *) __pyx_cur_scope, __pyx_n_s_handle_cancellation_from_core, __pyx_n_s_handle_cancellation_from_core, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 755, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_cancellation_from_core", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_181generator35(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_cancellation_from_core", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 755, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":758
 *                                          RPCState rpc_state,
 *                                          object loop):
 *     cdef ReceiveCloseOnServerOperation op = ReceiveCloseOnServerOperation(_EMPTY_FLAG)             # <<<<<<<<<<<<<<
 *     cdef tuple ops = (op,)
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":759
 *                                          object loop):
 *     cdef ReceiveCloseOnServerOperation op = ReceiveCloseOnServerOperation(_EMPTY_FLAG)
 *     cdef tuple ops = (op,)             # <<<<<<<<<<<<<<
 * 
 *     # Awaits cancellation from peer.
 */
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op))) __PYX_ERR(9, 759, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":762
 * 
 *     # Awaits cancellation from peer.
 *     await execute_batch(rpc_state, ops, loop)             # <<<<<<<<<<<<<<
 *     rpc_state.client_closed = True
 *     # If 1) received cancel signal; 2) the Task is not finished; 3) the server
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_execute_batch); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 762, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 762, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(9, 762, __pyx_L1_error)
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":763
 *     # Awaits cancellation from peer.
 *     await execute_batch(rpc_state, ops, loop)
 *     rpc_state.client_closed = True             # <<<<<<<<<<<<<<
 *     # If 1) received cancel signal; 2) the Task is not finished; 3) the server
 *     # wasn't replying final status. For condition 3, it might cause inaccurate
 */
  __pyx_cur_scope->__pyx_v_rpc_state->client_closed = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":767
 *     # wasn't replying final status. For condition 3, it might cause inaccurate
 *     # log that an RPC is both aborted and cancelled.
 *     if op.cancelled() and not rpc_task.done() and not rpc_state.status_sent:             # <<<<<<<<<<<<<<
 *         # Injects `CancelledError` to halt the RPC coroutine
 *         rpc_task.cancel()
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_op), __pyx_n_s_cancelled); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 767, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_rpc_task, __pyx_n_s_done); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 767, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = (!__pyx_t_6);
  if (__pyx_t_7) {
  } else {
    __pyx_t_5 = __pyx_t_7;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_7 = (!__pyx_cur_scope->__pyx_v_rpc_state->status_sent);
  __pyx_t_5 = __pyx_t_7;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":769
 *     if op.cancelled() and not rpc_task.done() and not rpc_state.status_sent:
 *         # Injects `CancelledError` to halt the RPC coroutine
 *         rpc_task.cancel()             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_rpc_task, __pyx_n_s_cancel); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 769, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 769, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":767
 *     # wasn't replying final status. For condition 3, it might cause inaccurate
 *     # log that an RPC is both aborted and cancelled.
 *     if op.cancelled() and not rpc_task.done() and not rpc_state.status_sent:             # <<<<<<<<<<<<<<
 *         # Injects `CancelledError` to halt the RPC coroutine
 *         rpc_task.cancel()
 */
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":755
 * 
 * 
 * async def _handle_cancellation_from_core(object rpc_task,             # <<<<<<<<<<<<<<
 *                                          RPCState rpc_state,
 *                                          object loop):
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("_handle_cancellation_from_core", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_184generator36(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":772
 * 
 * 
 * async def _schedule_rpc_coro(object rpc_coro,             # <<<<<<<<<<<<<<
 *                              RPCState rpc_state,
 *                              object loop):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_183_schedule_rpc_coro(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_183_schedule_rpc_coro = {"_schedule_rpc_coro", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_183_schedule_rpc_coro, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_183_schedule_rpc_coro(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_rpc_coro = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_schedule_rpc_coro (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rpc_coro,&__pyx_n_s_rpc_state,&__pyx_n_s_loop,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_coro)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 772, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 772, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_schedule_rpc_coro", 1, 3, 3, 1); __PYX_ERR(9, 772, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 772, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_schedule_rpc_coro", 1, 3, 3, 2); __PYX_ERR(9, 772, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_schedule_rpc_coro") < 0)) __PYX_ERR(9, 772, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_rpc_coro = values[0];
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[1]);
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_schedule_rpc_coro", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 772, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._schedule_rpc_coro", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 773, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_182_schedule_rpc_coro(__pyx_self, __pyx_v_rpc_coro, __pyx_v_rpc_state, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_182_schedule_rpc_coro(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_rpc_coro, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_schedule_rpc_coro", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 772, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_rpc_coro = __pyx_v_rpc_coro;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_rpc_coro);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_rpc_coro);
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_184generator36, __pyx_codeobj__96, (PyObject *) __pyx_cur_scope, __pyx_n_s_schedule_rpc_coro, __pyx_n_s_schedule_rpc_coro, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 772, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._schedule_rpc_coro", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_184generator36(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_schedule_rpc_coro", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    case 2: goto __pyx_L11_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 772, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":776
 *                              object loop):
 *     # Schedules the RPC coroutine.
 *     cdef object rpc_task = loop.create_task(_handle_exceptions(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         rpc_coro,
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_loop, __pyx_n_s_create_task); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_handle_exceptions); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":779
 *         rpc_state,
 *         rpc_coro,
 *         loop,             # <<<<<<<<<<<<<<
 *     ), name="HandleExceptions[%s]" % _decode(rpc_state.method()))
 *     _add_callback_handler(rpc_task, rpc_state)
 */
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_rpc_coro, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 3+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 776, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":776
 *                              object loop):
 *     # Schedules the RPC coroutine.
 *     cdef object rpc_task = loop.create_task(_handle_exceptions(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         rpc_coro,
 */
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(9, 776, __pyx_L1_error);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":780
 *         rpc_coro,
 *         loop,
 *     ), name="HandleExceptions[%s]" % _decode(rpc_state.method()))             # <<<<<<<<<<<<<<
 *     _add_callback_handler(rpc_task, rpc_state)
 *     await _handle_cancellation_from_core(rpc_task, rpc_state, loop)
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_4)); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_HandleExceptions_s, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_name, __pyx_t_4) < 0) __PYX_ERR(9, 780, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":776
 *                              object loop):
 *     # Schedules the RPC coroutine.
 *     cdef object rpc_task = loop.create_task(_handle_exceptions(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         rpc_coro,
 */
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_cur_scope->__pyx_v_rpc_task = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":781
 *         loop,
 *     ), name="HandleExceptions[%s]" % _decode(rpc_state.method()))
 *     _add_callback_handler(rpc_task, rpc_state)             # <<<<<<<<<<<<<<
 *     await _handle_cancellation_from_core(rpc_task, rpc_state, loop)
 *     try:
 */
  __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(__pyx_cur_scope->__pyx_v_rpc_task, __pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":782
 *     ), name="HandleExceptions[%s]" % _decode(rpc_state.method()))
 *     _add_callback_handler(rpc_task, rpc_state)
 *     await _handle_cancellation_from_core(rpc_task, rpc_state, loop)             # <<<<<<<<<<<<<<
 *     try:
 *         # Propagate any errors not handled by _handle_exceptions. If not awaited
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_handle_cancellation_from_core); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_rpc_task, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 3+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 782, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 782, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(9, 782, __pyx_L1_error)
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":783
 *     _add_callback_handler(rpc_task, rpc_state)
 *     await _handle_cancellation_from_core(rpc_task, rpc_state, loop)
 *     try:             # <<<<<<<<<<<<<<
 *         # Propagate any errors not handled by _handle_exceptions. If not awaited
 *         # there will be logs of the form "Task exception was never retrieved".
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_9);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":787
 *         # there will be logs of the form "Task exception was never retrieved".
 *         # Catching it here we can provide traceback and debugging logs.
 *         await rpc_task             # <<<<<<<<<<<<<<
 *     except:
 *         _LOGGER.exception('Exception not handled by _handle_exceptions in servicer method [%s]' % (
 */
      __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_rpc_task);
      __Pyx_XGOTREF(__pyx_r);
      if (likely(__pyx_r)) {
        __Pyx_XGIVEREF(__pyx_t_7);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_7;
        __Pyx_XGIVEREF(__pyx_t_8);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_8;
        __Pyx_XGIVEREF(__pyx_t_9);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_9;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 2;
        return __pyx_r;
        __pyx_L11_resume_from_await:;
        __pyx_t_7 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_7);
        __pyx_t_8 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_8);
        __pyx_t_9 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_9);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 787, __pyx_L5_error)
      } else {
        PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
        if (exc_type) {
          if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
          else __PYX_ERR(9, 787, __pyx_L5_error)
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":783
 *     _add_callback_handler(rpc_task, rpc_state)
 *     await _handle_cancellation_from_core(rpc_task, rpc_state, loop)
 *     try:             # <<<<<<<<<<<<<<
 *         # Propagate any errors not handled by _handle_exceptions. If not awaited
 *         # there will be logs of the form "Task exception was never retrieved".
 */
    }
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    goto __pyx_L10_try_end;
    __pyx_L5_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":788
 *         # Catching it here we can provide traceback and debugging logs.
 *         await rpc_task
 *     except:             # <<<<<<<<<<<<<<
 *         _LOGGER.exception('Exception not handled by _handle_exceptions in servicer method [%s]' % (
 *             _decode(rpc_state.method()),
 */
    /*except:*/ {
      __Pyx_AddTraceback("grpc._cython.cygrpc._schedule_rpc_coro", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(9, 788, __pyx_L7_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_3);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":789
 *         await rpc_task
 *     except:
 *         _LOGGER.exception('Exception not handled by _handle_exceptions in servicer method [%s]' % (             # <<<<<<<<<<<<<<
 *             _decode(rpc_state.method()),
 *         ))
 */
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 789, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_exception); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 789, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":790
 *     except:
 *         _LOGGER.exception('Exception not handled by _handle_exceptions in servicer method [%s]' % (
 *             _decode(rpc_state.method()),             # <<<<<<<<<<<<<<
 *         ))
 *         traceback.print_exc()
 */
      __pyx_t_6 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 790, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_11 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_6)); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 790, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 790, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_11);
      if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_11)) __PYX_ERR(9, 790, __pyx_L7_except_error);
      __pyx_t_11 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":789
 *         await rpc_task
 *     except:
 *         _LOGGER.exception('Exception not handled by _handle_exceptions in servicer method [%s]' % (             # <<<<<<<<<<<<<<
 *             _decode(rpc_state.method()),
 *         ))
 */
      __pyx_t_11 = __Pyx_PyString_Format(__pyx_kp_s_Exception_not_handled_by__handle, __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 789, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = NULL;
      __pyx_t_5 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
          __pyx_t_5 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_11};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 789, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":792
 *             _decode(rpc_state.method()),
 *         ))
 *         traceback.print_exc()             # <<<<<<<<<<<<<<
 * 
 * 
 */
      __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_traceback); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 792, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 792, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = NULL;
      __pyx_t_5 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_11))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_11, function);
          __pyx_t_5 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 792, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L6_exception_handled;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":783
 *     _add_callback_handler(rpc_task, rpc_state)
 *     await _handle_cancellation_from_core(rpc_task, rpc_state, loop)
 *     try:             # <<<<<<<<<<<<<<
 *         # Propagate any errors not handled by _handle_exceptions. If not awaited
 *         # there will be logs of the form "Task exception was never retrieved".
 */
    __pyx_L7_except_error:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    goto __pyx_L1_error;
    __pyx_L6_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    __pyx_L10_try_end:;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":772
 * 
 * 
 * async def _schedule_rpc_coro(object rpc_coro,             # <<<<<<<<<<<<<<
 *                              RPCState rpc_state,
 *                              object loop):
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("_schedule_rpc_coro", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_187generator37(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":795
 * 
 * 
 * async def _handle_rpc(list generic_handlers, tuple interceptors,             # <<<<<<<<<<<<<<
 *                       RPCState rpc_state, object loop, bint concurrency_exceeded):
 *     cdef object method_handler
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_186_handle_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_186_handle_rpc = {"_handle_rpc", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_186_handle_rpc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_186_handle_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_generic_handlers = 0;
  PyObject *__pyx_v_interceptors = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_loop = 0;
  int __pyx_v_concurrency_exceeded;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_rpc (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_generic_handlers,&__pyx_n_s_interceptors,&__pyx_n_s_rpc_state,&__pyx_n_s_loop,&__pyx_n_s_concurrency_exceeded,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_generic_handlers)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 795, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_interceptors)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 795, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_rpc", 1, 5, 5, 1); __PYX_ERR(9, 795, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 795, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_rpc", 1, 5, 5, 2); __PYX_ERR(9, 795, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 795, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_rpc", 1, 5, 5, 3); __PYX_ERR(9, 795, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_concurrency_exceeded)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 795, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_handle_rpc", 1, 5, 5, 4); __PYX_ERR(9, 795, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_handle_rpc") < 0)) __PYX_ERR(9, 795, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_generic_handlers = ((PyObject*)values[0]);
    __pyx_v_interceptors = ((PyObject*)values[1]);
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[2]);
    __pyx_v_loop = values[3];
    __pyx_v_concurrency_exceeded = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_concurrency_exceeded == (int)-1) && PyErr_Occurred())) __PYX_ERR(9, 796, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_rpc", 1, 5, 5, __pyx_nargs); __PYX_ERR(9, 795, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_generic_handlers), (&PyList_Type), 1, "generic_handlers", 1))) __PYX_ERR(9, 795, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interceptors), (&PyTuple_Type), 1, "interceptors", 1))) __PYX_ERR(9, 795, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 796, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_185_handle_rpc(__pyx_self, __pyx_v_generic_handlers, __pyx_v_interceptors, __pyx_v_rpc_state, __pyx_v_loop, __pyx_v_concurrency_exceeded);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_185_handle_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_generic_handlers, PyObject *__pyx_v_interceptors, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop, int __pyx_v_concurrency_exceeded) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_rpc", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 795, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_generic_handlers = __pyx_v_generic_handlers;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_generic_handlers);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_generic_handlers);
  __pyx_cur_scope->__pyx_v_interceptors = __pyx_v_interceptors;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_interceptors);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_interceptors);
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  __pyx_cur_scope->__pyx_v_concurrency_exceeded = __pyx_v_concurrency_exceeded;
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_187generator37, __pyx_codeobj__97, (PyObject *) __pyx_cur_scope, __pyx_n_s_handle_rpc, __pyx_n_s_handle_rpc, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 795, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_187generator37(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_rpc", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    case 2: goto __pyx_L6_resume_from_await;
    case 3: goto __pyx_L8_resume_from_await;
    case 4: goto __pyx_L12_resume_from_await;
    case 5: goto __pyx_L16_resume_from_await;
    case 6: goto __pyx_L20_resume_from_await;
    case 7: goto __pyx_L24_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 795, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":799
 *     cdef object method_handler
 *     # Finds the method handler (application logic)
 *     method_handler = await _find_method_handler(             # <<<<<<<<<<<<<<
 *         rpc_state.method().decode(),
 *         rpc_state.invocation_metadata(),
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_find_method_handler); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 799, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":800
 *     # Finds the method handler (application logic)
 *     method_handler = await _find_method_handler(
 *         rpc_state.method().decode(),             # <<<<<<<<<<<<<<
 *         rpc_state.invocation_metadata(),
 *         generic_handlers,
 */
  __pyx_t_3 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (unlikely(__pyx_t_3 == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
    __PYX_ERR(9, 800, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_decode_bytes(__pyx_t_3, 0, PY_SSIZE_T_MAX, NULL, NULL, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":801
 *     method_handler = await _find_method_handler(
 *         rpc_state.method().decode(),
 *         rpc_state.invocation_metadata(),             # <<<<<<<<<<<<<<
 *         generic_handlers,
 *         interceptors,
 */
  __pyx_t_3 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->invocation_metadata(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":803
 *         rpc_state.invocation_metadata(),
 *         generic_handlers,
 *         interceptors,             # <<<<<<<<<<<<<<
 *     )
 *     if method_handler is None:
 */
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_5, __pyx_t_4, __pyx_t_3, __pyx_cur_scope->__pyx_v_generic_handlers, __pyx_cur_scope->__pyx_v_interceptors};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 4+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 799, __pyx_L1_error)
    __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
  } else {
    __pyx_t_1 = NULL;
    if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(9, 799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_method_handler = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":805
 *         interceptors,
 *     )
 *     if method_handler is None:             # <<<<<<<<<<<<<<
 *         rpc_state.status_sent = True
 *         await _send_error_status_from_server(
 */
  __pyx_t_7 = (__pyx_cur_scope->__pyx_v_method_handler == Py_None);
  if (__pyx_t_7) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":806
 *     )
 *     if method_handler is None:
 *         rpc_state.status_sent = True             # <<<<<<<<<<<<<<
 *         await _send_error_status_from_server(
 *             rpc_state,
 */
    __pyx_cur_scope->__pyx_v_rpc_state->status_sent = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":807
 *     if method_handler is None:
 *         rpc_state.status_sent = True
 *         await _send_error_status_from_server(             # <<<<<<<<<<<<<<
 *             rpc_state,
 *             StatusCode.unimplemented,
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_send_error_status_from_server); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 807, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":809
 *         await _send_error_status_from_server(
 *             rpc_state,
 *             StatusCode.unimplemented,             # <<<<<<<<<<<<<<
 *             'Method not found!',
 *             _IMMUTABLE_EMPTY_METADATA,
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 809, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_unimplemented); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 809, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":811
 *             StatusCode.unimplemented,
 *             'Method not found!',
 *             _IMMUTABLE_EMPTY_METADATA,             # <<<<<<<<<<<<<<
 *             rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *             loop
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 811, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":812
 *             'Method not found!',
 *             _IMMUTABLE_EMPTY_METADATA,
 *             rpc_state.create_send_initial_metadata_op_if_not_sent(),             # <<<<<<<<<<<<<<
 *             loop
 *         )
 */
    __pyx_t_5 = ((PyObject *)((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->create_send_initial_metadata_op_if_not_sent(__pyx_cur_scope->__pyx_v_rpc_state)); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 812, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":813
 *             _IMMUTABLE_EMPTY_METADATA,
 *             rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *             loop             # <<<<<<<<<<<<<<
 *         )
 *         return
 */
    __pyx_t_8 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[7] = {__pyx_t_8, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_4, __pyx_kp_s_Method_not_found, __pyx_t_3, __pyx_t_5, __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 6+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 807, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 2;
      return __pyx_r;
      __pyx_L6_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 807, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(9, 807, __pyx_L1_error)
      }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":815
 *             loop
 *         )
 *         return             # <<<<<<<<<<<<<<
 * 
 *     if concurrency_exceeded:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":805
 *         interceptors,
 *     )
 *     if method_handler is None:             # <<<<<<<<<<<<<<
 *         rpc_state.status_sent = True
 *         await _send_error_status_from_server(
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":817
 *         return
 * 
 *     if concurrency_exceeded:             # <<<<<<<<<<<<<<
 *         rpc_state.status_sent = True
 *         await _send_error_status_from_server(
 */
  if (__pyx_cur_scope->__pyx_v_concurrency_exceeded) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":818
 * 
 *     if concurrency_exceeded:
 *         rpc_state.status_sent = True             # <<<<<<<<<<<<<<
 *         await _send_error_status_from_server(
 *             rpc_state,
 */
    __pyx_cur_scope->__pyx_v_rpc_state->status_sent = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":819
 *     if concurrency_exceeded:
 *         rpc_state.status_sent = True
 *         await _send_error_status_from_server(             # <<<<<<<<<<<<<<
 *             rpc_state,
 *             StatusCode.resource_exhausted,
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_send_error_status_from_server); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 819, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":821
 *         await _send_error_status_from_server(
 *             rpc_state,
 *             StatusCode.resource_exhausted,             # <<<<<<<<<<<<<<
 *             'Concurrent RPC limit exceeded!',
 *             _IMMUTABLE_EMPTY_METADATA,
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_StatusCode); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 821, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_resource_exhausted); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 821, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":823
 *             StatusCode.resource_exhausted,
 *             'Concurrent RPC limit exceeded!',
 *             _IMMUTABLE_EMPTY_METADATA,             # <<<<<<<<<<<<<<
 *             rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *             loop
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 823, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":824
 *             'Concurrent RPC limit exceeded!',
 *             _IMMUTABLE_EMPTY_METADATA,
 *             rpc_state.create_send_initial_metadata_op_if_not_sent(),             # <<<<<<<<<<<<<<
 *             loop
 *         )
 */
    __pyx_t_4 = ((PyObject *)((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->create_send_initial_metadata_op_if_not_sent(__pyx_cur_scope->__pyx_v_rpc_state)); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 824, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":825
 *             _IMMUTABLE_EMPTY_METADATA,
 *             rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *             loop             # <<<<<<<<<<<<<<
 *         )
 *         return
 */
    __pyx_t_8 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[7] = {__pyx_t_8, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_3, __pyx_kp_s_Concurrent_RPC_limit_exceeded, __pyx_t_5, __pyx_t_4, __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 6+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 819, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 3;
      return __pyx_r;
      __pyx_L8_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 819, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(9, 819, __pyx_L1_error)
      }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":827
 *             loop
 *         )
 *         return             # <<<<<<<<<<<<<<
 * 
 *     # Handles unary-unary case
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":817
 *         return
 * 
 *     if concurrency_exceeded:             # <<<<<<<<<<<<<<
 *         rpc_state.status_sent = True
 *         await _send_error_status_from_server(
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":830
 * 
 *     # Handles unary-unary case
 *     if not method_handler.request_streaming and not method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_unary_unary_rpc(method_handler,
 *                                       rpc_state,
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_request_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(9, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_10 = (!__pyx_t_9);
  if (__pyx_t_10) {
  } else {
    __pyx_t_7 = __pyx_t_10;
    goto __pyx_L10_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_response_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(9, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_9 = (!__pyx_t_10);
  __pyx_t_7 = __pyx_t_9;
  __pyx_L10_bool_binop_done:;
  if (__pyx_t_7) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":831
 *     # Handles unary-unary case
 *     if not method_handler.request_streaming and not method_handler.response_streaming:
 *         await _handle_unary_unary_rpc(method_handler,             # <<<<<<<<<<<<<<
 *                                       rpc_state,
 *                                       loop)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_handle_unary_unary_rpc); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 831, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":833
 *         await _handle_unary_unary_rpc(method_handler,
 *                                       rpc_state,
 *                                       loop)             # <<<<<<<<<<<<<<
 *         return
 * 
 */
    __pyx_t_4 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_method_handler, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 831, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 4;
      return __pyx_r;
      __pyx_L12_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 831, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(9, 831, __pyx_L1_error)
      }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":834
 *                                       rpc_state,
 *                                       loop)
 *         return             # <<<<<<<<<<<<<<
 * 
 *     # Handles unary-stream case
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":830
 * 
 *     # Handles unary-unary case
 *     if not method_handler.request_streaming and not method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_unary_unary_rpc(method_handler,
 *                                       rpc_state,
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":837
 * 
 *     # Handles unary-stream case
 *     if not method_handler.request_streaming and method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_unary_stream_rpc(method_handler,
 *                                        rpc_state,
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_request_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(9, 837, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_10 = (!__pyx_t_9);
  if (__pyx_t_10) {
  } else {
    __pyx_t_7 = __pyx_t_10;
    goto __pyx_L14_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_response_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(9, 837, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __pyx_t_10;
  __pyx_L14_bool_binop_done:;
  if (__pyx_t_7) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":838
 *     # Handles unary-stream case
 *     if not method_handler.request_streaming and method_handler.response_streaming:
 *         await _handle_unary_stream_rpc(method_handler,             # <<<<<<<<<<<<<<
 *                                        rpc_state,
 *                                        loop)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_handle_unary_stream_rpc); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 838, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":840
 *         await _handle_unary_stream_rpc(method_handler,
 *                                        rpc_state,
 *                                        loop)             # <<<<<<<<<<<<<<
 *         return
 * 
 */
    __pyx_t_4 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_method_handler, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 838, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 5;
      return __pyx_r;
      __pyx_L16_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 838, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(9, 838, __pyx_L1_error)
      }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":841
 *                                        rpc_state,
 *                                        loop)
 *         return             # <<<<<<<<<<<<<<
 * 
 *     # Handles stream-unary case
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":837
 * 
 *     # Handles unary-stream case
 *     if not method_handler.request_streaming and method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_unary_stream_rpc(method_handler,
 *                                        rpc_state,
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":844
 * 
 *     # Handles stream-unary case
 *     if method_handler.request_streaming and not method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_stream_unary_rpc(method_handler,
 *                                        rpc_state,
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_request_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(9, 844, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_10) {
  } else {
    __pyx_t_7 = __pyx_t_10;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_response_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(9, 844, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_9 = (!__pyx_t_10);
  __pyx_t_7 = __pyx_t_9;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_7) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":845
 *     # Handles stream-unary case
 *     if method_handler.request_streaming and not method_handler.response_streaming:
 *         await _handle_stream_unary_rpc(method_handler,             # <<<<<<<<<<<<<<
 *                                        rpc_state,
 *                                        loop)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_handle_stream_unary_rpc); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 845, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":847
 *         await _handle_stream_unary_rpc(method_handler,
 *                                        rpc_state,
 *                                        loop)             # <<<<<<<<<<<<<<
 *         return
 * 
 */
    __pyx_t_4 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_method_handler, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 845, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 6;
      return __pyx_r;
      __pyx_L20_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 845, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(9, 845, __pyx_L1_error)
      }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":848
 *                                        rpc_state,
 *                                        loop)
 *         return             # <<<<<<<<<<<<<<
 * 
 *     # Handles stream-stream case
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":844
 * 
 *     # Handles stream-unary case
 *     if method_handler.request_streaming and not method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_stream_unary_rpc(method_handler,
 *                                        rpc_state,
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":851
 * 
 *     # Handles stream-stream case
 *     if method_handler.request_streaming and method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_stream_stream_rpc(method_handler,
 *                                         rpc_state,
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_request_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(9, 851, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_9) {
  } else {
    __pyx_t_7 = __pyx_t_9;
    goto __pyx_L22_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_n_s_response_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(9, 851, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __pyx_t_9;
  __pyx_L22_bool_binop_done:;
  if (__pyx_t_7) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":852
 *     # Handles stream-stream case
 *     if method_handler.request_streaming and method_handler.response_streaming:
 *         await _handle_stream_stream_rpc(method_handler,             # <<<<<<<<<<<<<<
 *                                         rpc_state,
 *                                         loop)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_handle_stream_stream_rpc); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 852, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":854
 *         await _handle_stream_stream_rpc(method_handler,
 *                                         rpc_state,
 *                                         loop)             # <<<<<<<<<<<<<<
 *         return
 * 
 */
    __pyx_t_4 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_method_handler, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 852, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 7;
      return __pyx_r;
      __pyx_L24_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 852, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(9, 852, __pyx_L1_error)
      }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":855
 *                                         rpc_state,
 *                                         loop)
 *         return             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":851
 * 
 *     # Handles stream-stream case
 *     if method_handler.request_streaming and method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_stream_stream_rpc(method_handler,
 *                                         rpc_state,
 */
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":795
 * 
 * 
 * async def _handle_rpc(list generic_handlers, tuple interceptors,             # <<<<<<<<<<<<<<
 *                       RPCState rpc_state, object loop, bint concurrency_exceeded):
 *     cdef object method_handler
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("_handle_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":872
 * cdef class _ConcurrentRpcLimiter:
 * 
 *     def __cinit__(self, int maximum_concurrent_rpcs):             # <<<<<<<<<<<<<<
 *         if maximum_concurrent_rpcs <= 0:
 *             raise ValueError("maximum_concurrent_rpcs should be a postive integer")
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_maximum_concurrent_rpcs;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_maximum_concurrent_rpcs,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_maximum_concurrent_rpcs)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 872, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(9, 872, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_maximum_concurrent_rpcs = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_maximum_concurrent_rpcs == (int)-1) && PyErr_Occurred())) __PYX_ERR(9, 872, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 872, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_v_self), __pyx_v_maximum_concurrent_rpcs);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, int __pyx_v_maximum_concurrent_rpcs) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":873
 * 
 *     def __cinit__(self, int maximum_concurrent_rpcs):
 *         if maximum_concurrent_rpcs <= 0:             # <<<<<<<<<<<<<<
 *             raise ValueError("maximum_concurrent_rpcs should be a postive integer")
 *         self._maximum_concurrent_rpcs = maximum_concurrent_rpcs
 */
  __pyx_t_1 = (__pyx_v_maximum_concurrent_rpcs <= 0);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":874
 *     def __cinit__(self, int maximum_concurrent_rpcs):
 *         if maximum_concurrent_rpcs <= 0:
 *             raise ValueError("maximum_concurrent_rpcs should be a postive integer")             # <<<<<<<<<<<<<<
 *         self._maximum_concurrent_rpcs = maximum_concurrent_rpcs
 *         self._active_rpcs = 0
 */
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__98, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 874, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(9, 874, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":873
 * 
 *     def __cinit__(self, int maximum_concurrent_rpcs):
 *         if maximum_concurrent_rpcs <= 0:             # <<<<<<<<<<<<<<
 *             raise ValueError("maximum_concurrent_rpcs should be a postive integer")
 *         self._maximum_concurrent_rpcs = maximum_concurrent_rpcs
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":875
 *         if maximum_concurrent_rpcs <= 0:
 *             raise ValueError("maximum_concurrent_rpcs should be a postive integer")
 *         self._maximum_concurrent_rpcs = maximum_concurrent_rpcs             # <<<<<<<<<<<<<<
 *         self._active_rpcs = 0
 *         self.limiter_concurrency_exceeded = False
 */
  __pyx_v_self->_maximum_concurrent_rpcs = __pyx_v_maximum_concurrent_rpcs;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":876
 *             raise ValueError("maximum_concurrent_rpcs should be a postive integer")
 *         self._maximum_concurrent_rpcs = maximum_concurrent_rpcs
 *         self._active_rpcs = 0             # <<<<<<<<<<<<<<
 *         self.limiter_concurrency_exceeded = False
 * 
 */
  __pyx_v_self->_active_rpcs = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":877
 *         self._maximum_concurrent_rpcs = maximum_concurrent_rpcs
 *         self._active_rpcs = 0
 *         self.limiter_concurrency_exceeded = False             # <<<<<<<<<<<<<<
 * 
 *     def check_before_request_call(self):
 */
  __pyx_v_self->limiter_concurrency_exceeded = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":872
 * cdef class _ConcurrentRpcLimiter:
 * 
 *     def __cinit__(self, int maximum_concurrent_rpcs):             # <<<<<<<<<<<<<<
 *         if maximum_concurrent_rpcs <= 0:
 *             raise ValueError("maximum_concurrent_rpcs should be a postive integer")
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":879
 *         self.limiter_concurrency_exceeded = False
 * 
 *     def check_before_request_call(self):             # <<<<<<<<<<<<<<
 *         if self._active_rpcs >= self._maximum_concurrent_rpcs:
 *             self.limiter_concurrency_exceeded = True
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_3check_before_request_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_3check_before_request_call = {"check_before_request_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_3check_before_request_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_3check_before_request_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("check_before_request_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("check_before_request_call", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "check_before_request_call", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_2check_before_request_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_2check_before_request_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("check_before_request_call", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":880
 * 
 *     def check_before_request_call(self):
 *         if self._active_rpcs >= self._maximum_concurrent_rpcs:             # <<<<<<<<<<<<<<
 *             self.limiter_concurrency_exceeded = True
 *         else:
 */
  __pyx_t_1 = (__pyx_v_self->_active_rpcs >= __pyx_v_self->_maximum_concurrent_rpcs);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":881
 *     def check_before_request_call(self):
 *         if self._active_rpcs >= self._maximum_concurrent_rpcs:
 *             self.limiter_concurrency_exceeded = True             # <<<<<<<<<<<<<<
 *         else:
 *             self._active_rpcs += 1
 */
    __pyx_v_self->limiter_concurrency_exceeded = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":880
 * 
 *     def check_before_request_call(self):
 *         if self._active_rpcs >= self._maximum_concurrent_rpcs:             # <<<<<<<<<<<<<<
 *             self.limiter_concurrency_exceeded = True
 *         else:
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":883
 *             self.limiter_concurrency_exceeded = True
 *         else:
 *             self._active_rpcs += 1             # <<<<<<<<<<<<<<
 * 
 *     def _decrease_active_rpcs_count(self, unused_future):
 */
  /*else*/ {
    __pyx_v_self->_active_rpcs = (__pyx_v_self->_active_rpcs + 1);
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":879
 *         self.limiter_concurrency_exceeded = False
 * 
 *     def check_before_request_call(self):             # <<<<<<<<<<<<<<
 *         if self._active_rpcs >= self._maximum_concurrent_rpcs:
 *             self.limiter_concurrency_exceeded = True
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":885
 *             self._active_rpcs += 1
 * 
 *     def _decrease_active_rpcs_count(self, unused_future):             # <<<<<<<<<<<<<<
 *         self._active_rpcs -= 1
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_5_decrease_active_rpcs_count(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_5_decrease_active_rpcs_count = {"_decrease_active_rpcs_count", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_5_decrease_active_rpcs_count, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_5_decrease_active_rpcs_count(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_unused_future = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_decrease_active_rpcs_count (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unused_future,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_unused_future)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 885, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_decrease_active_rpcs_count") < 0)) __PYX_ERR(9, 885, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_unused_future = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_decrease_active_rpcs_count", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 885, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter._decrease_active_rpcs_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_4_decrease_active_rpcs_count(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_v_self), __pyx_v_unused_future);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_4_decrease_active_rpcs_count(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_unused_future) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("_decrease_active_rpcs_count", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":886
 * 
 *     def _decrease_active_rpcs_count(self, unused_future):
 *         self._active_rpcs -= 1             # <<<<<<<<<<<<<<
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:
 *             self.limiter_concurrency_exceeded = False
 */
  __pyx_v_self->_active_rpcs = (__pyx_v_self->_active_rpcs - 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":887
 *     def _decrease_active_rpcs_count(self, unused_future):
 *         self._active_rpcs -= 1
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:             # <<<<<<<<<<<<<<
 *             self.limiter_concurrency_exceeded = False
 * 
 */
  __pyx_t_1 = (__pyx_v_self->_active_rpcs < __pyx_v_self->_maximum_concurrent_rpcs);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":888
 *         self._active_rpcs -= 1
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:
 *             self.limiter_concurrency_exceeded = False             # <<<<<<<<<<<<<<
 * 
 *     def decrease_once_finished(self, object rpc_task):
 */
    __pyx_v_self->limiter_concurrency_exceeded = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":887
 *     def _decrease_active_rpcs_count(self, unused_future):
 *         self._active_rpcs -= 1
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:             # <<<<<<<<<<<<<<
 *             self.limiter_concurrency_exceeded = False
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":885
 *             self._active_rpcs += 1
 * 
 *     def _decrease_active_rpcs_count(self, unused_future):             # <<<<<<<<<<<<<<
 *         self._active_rpcs -= 1
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":890
 *             self.limiter_concurrency_exceeded = False
 * 
 *     def decrease_once_finished(self, object rpc_task):             # <<<<<<<<<<<<<<
 *         rpc_task.add_done_callback(self._decrease_active_rpcs_count)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_7decrease_once_finished(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_7decrease_once_finished = {"decrease_once_finished", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_7decrease_once_finished, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_7decrease_once_finished(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_rpc_task = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("decrease_once_finished (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rpc_task,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rpc_task)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 890, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "decrease_once_finished") < 0)) __PYX_ERR(9, 890, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_rpc_task = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("decrease_once_finished", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 890, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter.decrease_once_finished", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_6decrease_once_finished(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_v_self), __pyx_v_rpc_task);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_6decrease_once_finished(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, PyObject *__pyx_v_rpc_task) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("decrease_once_finished", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":891
 * 
 *     def decrease_once_finished(self, object rpc_task):
 *         rpc_task.add_done_callback(self._decrease_active_rpcs_count)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_rpc_task, __pyx_n_s_add_done_callback); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_decrease_active_rpcs_count); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 891, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":890
 *             self.limiter_concurrency_exceeded = False
 * 
 *     def decrease_once_finished(self, object rpc_task):             # <<<<<<<<<<<<<<
 *         rpc_task.add_done_callback(self._decrease_active_rpcs_count)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter.decrease_once_finished", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_8__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_10__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":896
 * cdef class AioServer:
 * 
 *     def __init__(self, loop, thread_pool, generic_handlers, interceptors,             # <<<<<<<<<<<<<<
 *                  options, maximum_concurrent_rpcs):
 *         init_grpc_aio()
 */

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_loop = 0;
  PyObject *__pyx_v_thread_pool = 0;
  PyObject *__pyx_v_generic_handlers = 0;
  PyObject *__pyx_v_interceptors = 0;
  PyObject *__pyx_v_options = 0;
  PyObject *__pyx_v_maximum_concurrent_rpcs = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_loop,&__pyx_n_s_thread_pool,&__pyx_n_s_generic_handlers,&__pyx_n_s_interceptors,&__pyx_n_s_options,&__pyx_n_s_maximum_concurrent_rpcs,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_loop)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 896, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_thread_pool)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 896, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 1); __PYX_ERR(9, 896, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_generic_handlers)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 896, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 2); __PYX_ERR(9, 896, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_interceptors)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 896, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 3); __PYX_ERR(9, 896, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_options)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 896, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 4); __PYX_ERR(9, 896, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_maximum_concurrent_rpcs)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 896, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 5); __PYX_ERR(9, 896, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(9, 896, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
      values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
      values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
      values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
      values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
    }
    __pyx_v_loop = values[0];
    __pyx_v_thread_pool = values[1];
    __pyx_v_generic_handlers = values[2];
    __pyx_v_interceptors = values[3];
    __pyx_v_options = values[4];
    __pyx_v_maximum_concurrent_rpcs = values[5];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, __pyx_nargs); __PYX_ERR(9, 896, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer___init__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_loop, __pyx_v_thread_pool, __pyx_v_generic_handlers, __pyx_v_interceptors, __pyx_v_options, __pyx_v_maximum_concurrent_rpcs);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer___init__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_loop, PyObject *__pyx_v_thread_pool, PyObject *__pyx_v_generic_handlers, PyObject *__pyx_v_interceptors, PyObject *__pyx_v_options, PyObject *__pyx_v_maximum_concurrent_rpcs) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  grpc_completion_queue *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":898
 *     def __init__(self, loop, thread_pool, generic_handlers, interceptors,
 *                  options, maximum_concurrent_rpcs):
 *         init_grpc_aio()             # <<<<<<<<<<<<<<
 *         # NOTE(lidiz) Core objects won't be deallocated automatically.
 *         # If AioServer.shutdown is not called, those objects will leak.
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":902
 *         # If AioServer.shutdown is not called, those objects will leak.
 *         # TODO(rbellevi): Support xDS in aio server.
 *         self._server = Server(options, False)             # <<<<<<<<<<<<<<
 *         grpc_server_register_completion_queue(
 *             self._server.c_server,
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 902, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_options);
  __Pyx_GIVEREF(__pyx_v_options);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_options)) __PYX_ERR(9, 902, __pyx_L1_error);
  __Pyx_INCREF(Py_False);
  __Pyx_GIVEREF(Py_False);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, Py_False)) __PYX_ERR(9, 902, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Server), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 902, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_server);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_server);
  __pyx_v_self->_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":905
 *         grpc_server_register_completion_queue(
 *             self._server.c_server,
 *             global_completion_queue(),             # <<<<<<<<<<<<<<
 *             NULL
 *         )
 */
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(); if (unlikely(__pyx_t_3 == ((grpc_completion_queue *)NULL) && PyErr_Occurred())) __PYX_ERR(9, 905, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":903
 *         # TODO(rbellevi): Support xDS in aio server.
 *         self._server = Server(options, False)
 *         grpc_server_register_completion_queue(             # <<<<<<<<<<<<<<
 *             self._server.c_server,
 *             global_completion_queue(),
 */
  grpc_server_register_completion_queue(__pyx_v_self->_server->c_server, __pyx_t_3, NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":909
 *         )
 * 
 *         self._loop = loop             # <<<<<<<<<<<<<<
 *         self._status = AIO_SERVER_STATUS_READY
 *         self._generic_handlers = []
 */
  __Pyx_INCREF(__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_v_loop);
  __Pyx_GOTREF(__pyx_v_self->_loop);
  __Pyx_DECREF(__pyx_v_self->_loop);
  __pyx_v_self->_loop = __pyx_v_loop;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":910
 * 
 *         self._loop = loop
 *         self._status = AIO_SERVER_STATUS_READY             # <<<<<<<<<<<<<<
 *         self._generic_handlers = []
 *         self.add_generic_rpc_handlers(generic_handlers)
 */
  __pyx_v_self->_status = __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_READY;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":911
 *         self._loop = loop
 *         self._status = AIO_SERVER_STATUS_READY
 *         self._generic_handlers = []             # <<<<<<<<<<<<<<
 *         self.add_generic_rpc_handlers(generic_handlers)
 *         self._serving_task = None
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_generic_handlers);
  __Pyx_DECREF(__pyx_v_self->_generic_handlers);
  __pyx_v_self->_generic_handlers = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":912
 *         self._status = AIO_SERVER_STATUS_READY
 *         self._generic_handlers = []
 *         self.add_generic_rpc_handlers(generic_handlers)             # <<<<<<<<<<<<<<
 *         self._serving_task = None
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_add_generic_rpc_handlers); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_generic_handlers};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 912, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":913
 *         self._generic_handlers = []
 *         self.add_generic_rpc_handlers(generic_handlers)
 *         self._serving_task = None             # <<<<<<<<<<<<<<
 * 
 *         self._shutdown_lock = asyncio.Lock()
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_serving_task);
  __Pyx_DECREF(__pyx_v_self->_serving_task);
  __pyx_v_self->_serving_task = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":915
 *         self._serving_task = None
 * 
 *         self._shutdown_lock = asyncio.Lock()             # <<<<<<<<<<<<<<
 *         self._shutdown_completed = self._loop.create_future()
 *         self._shutdown_callback_wrapper = CallbackWrapper(
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Lock); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 915, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_shutdown_lock);
  __Pyx_DECREF(__pyx_v_self->_shutdown_lock);
  __pyx_v_self->_shutdown_lock = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":916
 * 
 *         self._shutdown_lock = asyncio.Lock()
 *         self._shutdown_completed = self._loop.create_future()             # <<<<<<<<<<<<<<
 *         self._shutdown_callback_wrapper = CallbackWrapper(
 *             self._shutdown_completed,
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_loop, __pyx_n_s_create_future); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 916, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_shutdown_completed);
  __Pyx_DECREF(__pyx_v_self->_shutdown_completed);
  __pyx_v_self->_shutdown_completed = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":917
 *         self._shutdown_lock = asyncio.Lock()
 *         self._shutdown_completed = self._loop.create_future()
 *         self._shutdown_callback_wrapper = CallbackWrapper(             # <<<<<<<<<<<<<<
 *             self._shutdown_completed,
 *             self._loop,
 */
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_shutdown_completed);
  __Pyx_GIVEREF(__pyx_v_self->_shutdown_completed);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_shutdown_completed)) __PYX_ERR(9, 917, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_loop);
  __Pyx_GIVEREF(__pyx_v_self->_loop);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->_loop)) __PYX_ERR(9, 917, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc_SERVER_SHUTDOWN_FAILURE_HANDLER);
  __Pyx_GIVEREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc_SERVER_SHUTDOWN_FAILURE_HANDLER);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc_SERVER_SHUTDOWN_FAILURE_HANDLER))) __PYX_ERR(9, 917, __pyx_L1_error);
  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper), __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_shutdown_callback_wrapper);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_shutdown_callback_wrapper);
  __pyx_v_self->_shutdown_callback_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":921
 *             self._loop,
 *             SERVER_SHUTDOWN_FAILURE_HANDLER)
 *         self._crash_exception = None             # <<<<<<<<<<<<<<
 * 
 *         if interceptors:
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_crash_exception);
  __Pyx_DECREF(__pyx_v_self->_crash_exception);
  __pyx_v_self->_crash_exception = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":923
 *         self._crash_exception = None
 * 
 *         if interceptors:             # <<<<<<<<<<<<<<
 *             self._interceptors = tuple(interceptors)
 *         else:
 */
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_interceptors); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 923, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":924
 * 
 *         if interceptors:
 *             self._interceptors = tuple(interceptors)             # <<<<<<<<<<<<<<
 *         else:
 *             self._interceptors = ()
 */
    __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_interceptors); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 924, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __Pyx_GOTREF(__pyx_v_self->_interceptors);
    __Pyx_DECREF(__pyx_v_self->_interceptors);
    __pyx_v_self->_interceptors = ((PyObject*)__pyx_t_4);
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":923
 *         self._crash_exception = None
 * 
 *         if interceptors:             # <<<<<<<<<<<<<<
 *             self._interceptors = tuple(interceptors)
 *         else:
 */
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":926
 *             self._interceptors = tuple(interceptors)
 *         else:
 *             self._interceptors = ()             # <<<<<<<<<<<<<<
 * 
 *         self._thread_pool = thread_pool
 */
  /*else*/ {
    __Pyx_INCREF(__pyx_empty_tuple);
    __Pyx_GIVEREF(__pyx_empty_tuple);
    __Pyx_GOTREF(__pyx_v_self->_interceptors);
    __Pyx_DECREF(__pyx_v_self->_interceptors);
    __pyx_v_self->_interceptors = __pyx_empty_tuple;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":928
 *             self._interceptors = ()
 * 
 *         self._thread_pool = thread_pool             # <<<<<<<<<<<<<<
 *         if maximum_concurrent_rpcs is not None:
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)
 */
  __Pyx_INCREF(__pyx_v_thread_pool);
  __Pyx_GIVEREF(__pyx_v_thread_pool);
  __Pyx_GOTREF(__pyx_v_self->_thread_pool);
  __Pyx_DECREF(__pyx_v_self->_thread_pool);
  __pyx_v_self->_thread_pool = __pyx_v_thread_pool;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":929
 * 
 *         self._thread_pool = thread_pool
 *         if maximum_concurrent_rpcs is not None:             # <<<<<<<<<<<<<<
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)
 * 
 */
  __pyx_t_6 = (__pyx_v_maximum_concurrent_rpcs != Py_None);
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":930
 *         self._thread_pool = thread_pool
 *         if maximum_concurrent_rpcs is not None:
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)             # <<<<<<<<<<<<<<
 * 
 *     def add_generic_rpc_handlers(self, object generic_rpc_handlers):
 */
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter), __pyx_v_maximum_concurrent_rpcs); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 930, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __Pyx_GOTREF((PyObject *)__pyx_v_self->_limiter);
    __Pyx_DECREF((PyObject *)__pyx_v_self->_limiter);
    __pyx_v_self->_limiter = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_t_4);
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":929
 * 
 *         self._thread_pool = thread_pool
 *         if maximum_concurrent_rpcs is not None:             # <<<<<<<<<<<<<<
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":896
 * cdef class AioServer:
 * 
 *     def __init__(self, loop, thread_pool, generic_handlers, interceptors,             # <<<<<<<<<<<<<<
 *                  options, maximum_concurrent_rpcs):
 *         init_grpc_aio()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":932
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)
 * 
 *     def add_generic_rpc_handlers(self, object generic_rpc_handlers):             # <<<<<<<<<<<<<<
 *         self._generic_handlers.extend(generic_rpc_handlers)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_3add_generic_rpc_handlers(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_3add_generic_rpc_handlers = {"add_generic_rpc_handlers", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_3add_generic_rpc_handlers, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_3add_generic_rpc_handlers(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_generic_rpc_handlers = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_generic_rpc_handlers (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_generic_rpc_handlers,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_generic_rpc_handlers)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 932, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "add_generic_rpc_handlers") < 0)) __PYX_ERR(9, 932, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_generic_rpc_handlers = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_generic_rpc_handlers", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 932, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.add_generic_rpc_handlers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_2add_generic_rpc_handlers(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_generic_rpc_handlers);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_2add_generic_rpc_handlers(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_generic_rpc_handlers) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_generic_rpc_handlers", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":933
 * 
 *     def add_generic_rpc_handlers(self, object generic_rpc_handlers):
 *         self._generic_handlers.extend(generic_rpc_handlers)             # <<<<<<<<<<<<<<
 * 
 *     def add_insecure_port(self, address):
 */
  if (unlikely(__pyx_v_self->_generic_handlers == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend");
    __PYX_ERR(9, 933, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyList_Extend(__pyx_v_self->_generic_handlers, __pyx_v_generic_rpc_handlers); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(9, 933, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":932
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)
 * 
 *     def add_generic_rpc_handlers(self, object generic_rpc_handlers):             # <<<<<<<<<<<<<<
 *         self._generic_handlers.extend(generic_rpc_handlers)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.add_generic_rpc_handlers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":935
 *         self._generic_handlers.extend(generic_rpc_handlers)
 * 
 *     def add_insecure_port(self, address):             # <<<<<<<<<<<<<<
 *         return self._server.add_http2_port(address)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_5add_insecure_port(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_5add_insecure_port = {"add_insecure_port", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_5add_insecure_port, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_5add_insecure_port(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_address = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_insecure_port (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_address,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_address)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 935, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "add_insecure_port") < 0)) __PYX_ERR(9, 935, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_address = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_insecure_port", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 935, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.add_insecure_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_4add_insecure_port(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_address);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_4add_insecure_port(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_address) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_insecure_port", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":936
 * 
 *     def add_insecure_port(self, address):
 *         return self._server.add_http2_port(address)             # <<<<<<<<<<<<<<
 * 
 *     def add_secure_port(self, address, server_credentials):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_server), __pyx_n_s_add_http2_port); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_address};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 936, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":935
 *         self._generic_handlers.extend(generic_rpc_handlers)
 * 
 *     def add_insecure_port(self, address):             # <<<<<<<<<<<<<<
 *         return self._server.add_http2_port(address)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.add_insecure_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":938
 *         return self._server.add_http2_port(address)
 * 
 *     def add_secure_port(self, address, server_credentials):             # <<<<<<<<<<<<<<
 *         return self._server.add_http2_port(address,
 *                                            server_credentials._credentials)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_7add_secure_port(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_7add_secure_port = {"add_secure_port", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_7add_secure_port, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_7add_secure_port(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_address = 0;
  PyObject *__pyx_v_server_credentials = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_secure_port (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_address,&__pyx_n_s_server_credentials,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_address)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 938, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_server_credentials)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 938, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("add_secure_port", 1, 2, 2, 1); __PYX_ERR(9, 938, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "add_secure_port") < 0)) __PYX_ERR(9, 938, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_address = values[0];
    __pyx_v_server_credentials = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_secure_port", 1, 2, 2, __pyx_nargs); __PYX_ERR(9, 938, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.add_secure_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_6add_secure_port(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_address, __pyx_v_server_credentials);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_6add_secure_port(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_address, PyObject *__pyx_v_server_credentials) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_secure_port", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":939
 * 
 *     def add_secure_port(self, address, server_credentials):
 *         return self._server.add_http2_port(address,             # <<<<<<<<<<<<<<
 *                                            server_credentials._credentials)
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_server), __pyx_n_s_add_http2_port); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":940
 *     def add_secure_port(self, address, server_credentials):
 *         return self._server.add_http2_port(address,
 *                                            server_credentials._credentials)             # <<<<<<<<<<<<<<
 * 
 *     async def _request_call(self):
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_server_credentials, __pyx_n_s_credentials_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_address, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 939, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":938
 *         return self._server.add_http2_port(address)
 * 
 *     def add_secure_port(self, address, server_credentials):             # <<<<<<<<<<<<<<
 *         return self._server.add_http2_port(address,
 *                                            server_credentials._credentials)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.add_secure_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_10generator38(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":942
 *                                            server_credentials._credentials)
 * 
 *     async def _request_call(self):             # <<<<<<<<<<<<<<
 *         cdef grpc_call_error error
 *         cdef RPCState rpc_state = RPCState(self)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_9_request_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_9_request_call = {"_request_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_9_request_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_9_request_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_request_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("_request_call", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_request_call", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_8_request_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_8_request_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_request_call", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 942, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_10generator38, __pyx_codeobj__99, (PyObject *) __pyx_cur_scope, __pyx_n_s_request_call, __pyx_n_s_AioServer__request_call, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 942, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer._request_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_10generator38(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  grpc_completion_queue *__pyx_t_5;
  grpc_completion_queue *__pyx_t_6;
  grpc_completion_queue_functor *__pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_request_call", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 942, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":944
 *     async def _request_call(self):
 *         cdef grpc_call_error error
 *         cdef RPCState rpc_state = RPCState(self)             # <<<<<<<<<<<<<<
 *         cdef object future = self._loop.create_future()
 *         cdef CallbackWrapper wrapper = CallbackWrapper(
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState), ((PyObject *)__pyx_cur_scope->__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":945
 *         cdef grpc_call_error error
 *         cdef RPCState rpc_state = RPCState(self)
 *         cdef object future = self._loop.create_future()             # <<<<<<<<<<<<<<
 *         cdef CallbackWrapper wrapper = CallbackWrapper(
 *             future,
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->_loop, __pyx_n_s_create_future); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 945, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_future = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":946
 *         cdef RPCState rpc_state = RPCState(self)
 *         cdef object future = self._loop.create_future()
 *         cdef CallbackWrapper wrapper = CallbackWrapper(             # <<<<<<<<<<<<<<
 *             future,
 *             self._loop,
 */
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_future);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_future);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_future)) __PYX_ERR(9, 946, __pyx_L1_error);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self->_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self->_loop);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_cur_scope->__pyx_v_self->_loop)) __PYX_ERR(9, 946, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc_REQUEST_CALL_FAILURE_HANDLER);
  __Pyx_GIVEREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc_REQUEST_CALL_FAILURE_HANDLER);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc_REQUEST_CALL_FAILURE_HANDLER))) __PYX_ERR(9, 946, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":953
 *             self._server.c_server, &rpc_state.call, &rpc_state.details,
 *             &rpc_state.request_metadata,
 *             global_completion_queue(), global_completion_queue(),             # <<<<<<<<<<<<<<
 *             wrapper.c_functor()
 *         )
 */
  __pyx_t_5 = __pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(); if (unlikely(__pyx_t_5 == ((grpc_completion_queue *)NULL) && PyErr_Occurred())) __PYX_ERR(9, 953, __pyx_L1_error)
  __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(); if (unlikely(__pyx_t_6 == ((grpc_completion_queue *)NULL) && PyErr_Occurred())) __PYX_ERR(9, 953, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":954
 *             &rpc_state.request_metadata,
 *             global_completion_queue(), global_completion_queue(),
 *             wrapper.c_functor()             # <<<<<<<<<<<<<<
 *         )
 *         if error != GRPC_CALL_OK:
 */
  __pyx_t_7 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_cur_scope->__pyx_v_wrapper->__pyx_vtab)->c_functor(__pyx_cur_scope->__pyx_v_wrapper); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 954, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":950
 *             self._loop,
 *             REQUEST_CALL_FAILURE_HANDLER)
 *         error = grpc_server_request_call(             # <<<<<<<<<<<<<<
 *             self._server.c_server, &rpc_state.call, &rpc_state.details,
 *             &rpc_state.request_metadata,
 */
  __pyx_cur_scope->__pyx_v_error = grpc_server_request_call(__pyx_cur_scope->__pyx_v_self->_server->c_server, (&__pyx_cur_scope->__pyx_v_rpc_state->__pyx_base.call), (&__pyx_cur_scope->__pyx_v_rpc_state->details), (&__pyx_cur_scope->__pyx_v_rpc_state->request_metadata), __pyx_t_5, __pyx_t_6, __pyx_t_7);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":956
 *             wrapper.c_functor()
 *         )
 *         if error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *             raise InternalError("Error in grpc_server_request_call: %s" % error)
 * 
 */
  __pyx_t_8 = (__pyx_cur_scope->__pyx_v_error != GRPC_CALL_OK);
  if (unlikely(__pyx_t_8)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":957
 *         )
 *         if error != GRPC_CALL_OK:
 *             raise InternalError("Error in grpc_server_request_call: %s" % error)             # <<<<<<<<<<<<<<
 * 
 *         await future
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_InternalError); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyInt_From_grpc_call_error(__pyx_cur_scope->__pyx_v_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_9 = __Pyx_PyString_Format(__pyx_kp_s_Error_in_grpc_server_request_cal, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_9};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 957, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(9, 957, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":956
 *             wrapper.c_functor()
 *         )
 *         if error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *             raise InternalError("Error in grpc_server_request_call: %s" % error)
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":959
 *             raise InternalError("Error in grpc_server_request_call: %s" % error)
 * 
 *         await future             # <<<<<<<<<<<<<<
 *         return rpc_state
 * 
 */
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_future);
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 959, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(9, 959, __pyx_L1_error)
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":960
 * 
 *         await future
 *         return rpc_state             # <<<<<<<<<<<<<<
 * 
 *     async def _server_main_loop(self,
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_r = NULL; __Pyx_ReturnWithStopIteration(((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state));
  goto __pyx_L0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":942
 *                                            server_credentials._credentials)
 * 
 *     async def _request_call(self):             # <<<<<<<<<<<<<<
 *         cdef grpc_call_error error
 *         cdef RPCState rpc_state = RPCState(self)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("_request_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_13generator39(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":962
 *         return rpc_state
 * 
 *     async def _server_main_loop(self,             # <<<<<<<<<<<<<<
 *                                 object server_started):
 *         self._server.start(backup_queue=False)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_12_server_main_loop(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_12_server_main_loop = {"_server_main_loop", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_12_server_main_loop, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_12_server_main_loop(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_server_started = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_server_main_loop (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_server_started,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_server_started)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 962, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_server_main_loop") < 0)) __PYX_ERR(9, 962, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_server_started = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_server_main_loop", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 962, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer._server_main_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_11_server_main_loop(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_server_started);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_11_server_main_loop(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_server_started) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_server_main_loop", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 962, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_server_started = __pyx_v_server_started;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_server_started);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_server_started);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_13generator39, __pyx_codeobj__100, (PyObject *) __pyx_cur_scope, __pyx_n_s_server_main_loop, __pyx_n_s_AioServer__server_main_loop, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 962, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer._server_main_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_13generator39(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_server_main_loop", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L8_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 962, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":964
 *     async def _server_main_loop(self,
 *                                 object server_started):
 *         self._server.start(backup_queue=False)             # <<<<<<<<<<<<<<
 *         cdef RPCState rpc_state
 *         server_started.set_result(True)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->_server), __pyx_n_s_start); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_backup_queue, Py_False) < 0) __PYX_ERR(9, 964, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":966
 *         self._server.start(backup_queue=False)
 *         cdef RPCState rpc_state
 *         server_started.set_result(True)             # <<<<<<<<<<<<<<
 *         rpc_tasks = set()
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_server_started, __pyx_n_s_set_result); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 966, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, Py_True};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":967
 *         cdef RPCState rpc_state
 *         server_started.set_result(True)
 *         rpc_tasks = set()             # <<<<<<<<<<<<<<
 * 
 *         while True:
 */
  __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_cur_scope->__pyx_v_rpc_tasks = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":969
 *         rpc_tasks = set()
 * 
 *         while True:             # <<<<<<<<<<<<<<
 *             # When shutdown begins, no more new connections.
 *             if self._status != AIO_SERVER_STATUS_RUNNING:
 */
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":971
 *         while True:
 *             # When shutdown begins, no more new connections.
 *             if self._status != AIO_SERVER_STATUS_RUNNING:             # <<<<<<<<<<<<<<
 *                 break
 * 
 */
    __pyx_t_5 = (__pyx_cur_scope->__pyx_v_self->_status != __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_RUNNING);
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":972
 *             # When shutdown begins, no more new connections.
 *             if self._status != AIO_SERVER_STATUS_RUNNING:
 *                 break             # <<<<<<<<<<<<<<
 * 
 *             concurrency_exceeded = False
 */
      goto __pyx_L5_break;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":971
 *         while True:
 *             # When shutdown begins, no more new connections.
 *             if self._status != AIO_SERVER_STATUS_RUNNING:             # <<<<<<<<<<<<<<
 *                 break
 * 
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":974
 *                 break
 * 
 *             concurrency_exceeded = False             # <<<<<<<<<<<<<<
 *             if self._limiter is not None:
 *                 self._limiter.check_before_request_call()
 */
    __pyx_cur_scope->__pyx_v_concurrency_exceeded = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":975
 * 
 *             concurrency_exceeded = False
 *             if self._limiter is not None:             # <<<<<<<<<<<<<<
 *                 self._limiter.check_before_request_call()
 *                 concurrency_exceeded = self._limiter.limiter_concurrency_exceeded
 */
    __pyx_t_5 = (((PyObject *)__pyx_cur_scope->__pyx_v_self->_limiter) != Py_None);
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":976
 *             concurrency_exceeded = False
 *             if self._limiter is not None:
 *                 self._limiter.check_before_request_call()             # <<<<<<<<<<<<<<
 *                 concurrency_exceeded = self._limiter.limiter_concurrency_exceeded
 * 
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->_limiter), __pyx_n_s_check_before_request_call); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 976, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = NULL;
      __pyx_t_4 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_1)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_4 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
        __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 976, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":977
 *             if self._limiter is not None:
 *                 self._limiter.check_before_request_call()
 *                 concurrency_exceeded = self._limiter.limiter_concurrency_exceeded             # <<<<<<<<<<<<<<
 * 
 *             # Accepts new request from Core
 */
      __pyx_t_5 = __pyx_cur_scope->__pyx_v_self->_limiter->limiter_concurrency_exceeded;
      __pyx_cur_scope->__pyx_v_concurrency_exceeded = __pyx_t_5;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":975
 * 
 *             concurrency_exceeded = False
 *             if self._limiter is not None:             # <<<<<<<<<<<<<<
 *                 self._limiter.check_before_request_call()
 *                 concurrency_exceeded = self._limiter.limiter_concurrency_exceeded
 */
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":980
 * 
 *             # Accepts new request from Core
 *             rpc_state = await self._request_call()             # <<<<<<<<<<<<<<
 * 
 *             # Creates the dedicated RPC coroutine. If we schedule it right now,
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_request_call); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 980, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L8_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 980, __pyx_L1_error)
      __pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3);
    } else {
      __pyx_t_3 = NULL;
      if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_3) < 0) __PYX_ERR(9, 980, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState))))) __PYX_ERR(9, 980, __pyx_L1_error)
    __Pyx_XGOTREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_rpc_state, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)__pyx_t_3));
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":987
 *             # the coroutine onto event loop inside of the cancellation
 *             # coroutine.
 *             rpc_coro = _handle_rpc(self._generic_handlers,             # <<<<<<<<<<<<<<
 *                                    self._interceptors,
 *                                    rpc_state,
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_handle_rpc); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 987, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":991
 *                                    rpc_state,
 *                                    self._loop,
 *                                    concurrency_exceeded)             # <<<<<<<<<<<<<<
 * 
 *             # Fires off a task that listens on the cancellation from client.
 */
    __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_cur_scope->__pyx_v_concurrency_exceeded); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[6] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_self->_generic_handlers, __pyx_cur_scope->__pyx_v_self->_interceptors, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_self->_loop, __pyx_t_1};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 5+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 987, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_rpc_coro);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_rpc_coro, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":994
 * 
 *             # Fires off a task that listens on the cancellation from client.
 *             rpc_task = self._loop.create_task(             # <<<<<<<<<<<<<<
 *                 _schedule_rpc_coro(
 *                     rpc_coro,
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->_loop, __pyx_n_s_create_task); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":995
 *             # Fires off a task that listens on the cancellation from client.
 *             rpc_task = self._loop.create_task(
 *                 _schedule_rpc_coro(             # <<<<<<<<<<<<<<
 *                     rpc_coro,
 *                     rpc_state,
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_schedule_rpc_coro); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 995, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":998
 *                     rpc_coro,
 *                     rpc_state,
 *                     self._loop             # <<<<<<<<<<<<<<
 *                 ),
 *                 name="rpc_task",
 */
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_rpc_coro, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_self->_loop};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 995, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":994
 * 
 *             # Fires off a task that listens on the cancellation from client.
 *             rpc_task = self._loop.create_task(             # <<<<<<<<<<<<<<
 *                 _schedule_rpc_coro(
 *                     rpc_coro,
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(9, 994, __pyx_L1_error);
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1000
 *                     self._loop
 *                 ),
 *                 name="rpc_task",             # <<<<<<<<<<<<<<
 *             )
 * 
 */
    __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1000, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_name, __pyx_n_s_rpc_task) < 0) __PYX_ERR(9, 1000, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":994
 * 
 *             # Fires off a task that listens on the cancellation from client.
 *             rpc_task = self._loop.create_task(             # <<<<<<<<<<<<<<
 *                 _schedule_rpc_coro(
 *                     rpc_coro,
 */
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_rpc_task);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_rpc_task, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1005
 *             # loop.create_task only holds a weakref to the task.
 *             # Maintain reference to tasks to avoid garbage collection.
 *             rpc_tasks.add(rpc_task)             # <<<<<<<<<<<<<<
 *             rpc_task.add_done_callback(rpc_tasks.discard)
 * 
 */
    __pyx_t_7 = PySet_Add(__pyx_cur_scope->__pyx_v_rpc_tasks, __pyx_cur_scope->__pyx_v_rpc_task); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(9, 1005, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1006
 *             # Maintain reference to tasks to avoid garbage collection.
 *             rpc_tasks.add(rpc_task)
 *             rpc_task.add_done_callback(rpc_tasks.discard)             # <<<<<<<<<<<<<<
 * 
 *             if self._limiter is not None:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_rpc_task, __pyx_n_s_add_done_callback); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_rpc_tasks, __pyx_n_s_discard); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
      __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 1006, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1008
 *             rpc_task.add_done_callback(rpc_tasks.discard)
 * 
 *             if self._limiter is not None:             # <<<<<<<<<<<<<<
 *                 self._limiter.decrease_once_finished(rpc_task)
 * 
 */
    __pyx_t_5 = (((PyObject *)__pyx_cur_scope->__pyx_v_self->_limiter) != Py_None);
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1009
 * 
 *             if self._limiter is not None:
 *                 self._limiter.decrease_once_finished(rpc_task)             # <<<<<<<<<<<<<<
 * 
 *     def _serving_task_crash_handler(self, object task):
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self->_limiter), __pyx_n_s_decrease_once_finished); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1009, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = NULL;
      __pyx_t_4 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_1)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_4 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_cur_scope->__pyx_v_rpc_task};
        __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 1009, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1008
 *             rpc_task.add_done_callback(rpc_tasks.discard)
 * 
 *             if self._limiter is not None:             # <<<<<<<<<<<<<<
 *                 self._limiter.decrease_once_finished(rpc_task)
 * 
 */
    }
  }
  __pyx_L5_break:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":962
 *         return rpc_state
 * 
 *     async def _server_main_loop(self,             # <<<<<<<<<<<<<<
 *                                 object server_started):
 *         self._server.start(backup_queue=False)
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("_server_main_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1011
 *                 self._limiter.decrease_once_finished(rpc_task)
 * 
 *     def _serving_task_crash_handler(self, object task):             # <<<<<<<<<<<<<<
 *         """Shutdown the server immediately if unexpectedly exited."""
 *         if task.cancelled():
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_15_serving_task_crash_handler(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_14_serving_task_crash_handler, "Shutdown the server immediately if unexpectedly exited.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_15_serving_task_crash_handler = {"_serving_task_crash_handler", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_15_serving_task_crash_handler, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_14_serving_task_crash_handler};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_15_serving_task_crash_handler(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_task = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_serving_task_crash_handler (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_task,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_task)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 1011, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_serving_task_crash_handler") < 0)) __PYX_ERR(9, 1011, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_task = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_serving_task_crash_handler", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 1011, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer._serving_task_crash_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_14_serving_task_crash_handler(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_task);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_14_serving_task_crash_handler(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_task) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  unsigned int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_serving_task_crash_handler", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1013
 *     def _serving_task_crash_handler(self, object task):
 *         """Shutdown the server immediately if unexpectedly exited."""
 *         if task.cancelled():             # <<<<<<<<<<<<<<
 *             return
 *         if task.exception() is None:
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_task, __pyx_n_s_cancelled); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1013, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(9, 1013, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1014
 *         """Shutdown the server immediately if unexpectedly exited."""
 *         if task.cancelled():
 *             return             # <<<<<<<<<<<<<<
 *         if task.exception() is None:
 *             return
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1013
 *     def _serving_task_crash_handler(self, object task):
 *         """Shutdown the server immediately if unexpectedly exited."""
 *         if task.cancelled():             # <<<<<<<<<<<<<<
 *             return
 *         if task.exception() is None:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1015
 *         if task.cancelled():
 *             return
 *         if task.exception() is None:             # <<<<<<<<<<<<<<
 *             return
 *         if self._status != AIO_SERVER_STATUS_STOPPING:
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_task, __pyx_n_s_exception); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1015, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1015, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_5 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1016
 *             return
 *         if task.exception() is None:
 *             return             # <<<<<<<<<<<<<<
 *         if self._status != AIO_SERVER_STATUS_STOPPING:
 *             self._crash_exception = task.exception()
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1015
 *         if task.cancelled():
 *             return
 *         if task.exception() is None:             # <<<<<<<<<<<<<<
 *             return
 *         if self._status != AIO_SERVER_STATUS_STOPPING:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1017
 *         if task.exception() is None:
 *             return
 *         if self._status != AIO_SERVER_STATUS_STOPPING:             # <<<<<<<<<<<<<<
 *             self._crash_exception = task.exception()
 *             _LOGGER.exception(self._crash_exception)
 */
  __pyx_t_5 = (__pyx_v_self->_status != __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPING);
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1018
 *             return
 *         if self._status != AIO_SERVER_STATUS_STOPPING:
 *             self._crash_exception = task.exception()             # <<<<<<<<<<<<<<
 *             _LOGGER.exception(self._crash_exception)
 *             self._loop.create_task(self.shutdown(None))
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_task, __pyx_n_s_exception); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1018, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1018, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_GOTREF(__pyx_v_self->_crash_exception);
    __Pyx_DECREF(__pyx_v_self->_crash_exception);
    __pyx_v_self->_crash_exception = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1019
 *         if self._status != AIO_SERVER_STATUS_STOPPING:
 *             self._crash_exception = task.exception()
 *             _LOGGER.exception(self._crash_exception)             # <<<<<<<<<<<<<<
 *             self._loop.create_task(self.shutdown(None))
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1019, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_exception); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1019, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_self->_crash_exception};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1019, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1020
 *             self._crash_exception = task.exception()
 *             _LOGGER.exception(self._crash_exception)
 *             self._loop.create_task(self.shutdown(None))             # <<<<<<<<<<<<<<
 * 
 *     async def start(self):
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_loop, __pyx_n_s_create_task); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1020, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_shutdown); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 1020, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, Py_None};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1020, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_2};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1020, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1017
 *         if task.exception() is None:
 *             return
 *         if self._status != AIO_SERVER_STATUS_STOPPING:             # <<<<<<<<<<<<<<
 *             self._crash_exception = task.exception()
 *             _LOGGER.exception(self._crash_exception)
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1011
 *                 self._limiter.decrease_once_finished(rpc_task)
 * 
 *     def _serving_task_crash_handler(self, object task):             # <<<<<<<<<<<<<<
 *         """Shutdown the server immediately if unexpectedly exited."""
 *         if task.cancelled():
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer._serving_task_crash_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_18generator40(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1022
 *             self._loop.create_task(self.shutdown(None))
 * 
 *     async def start(self):             # <<<<<<<<<<<<<<
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_17start(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_17start = {"start", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_17start, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_17start(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("start (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("start", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "start", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_16start(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_16start(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("start", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 1022, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_18generator40, __pyx_codeobj__101, (PyObject *) __pyx_cur_scope, __pyx_n_s_start, __pyx_n_s_AioServer_start, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 1022, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_18generator40(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("start", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1022, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1023
 * 
 *     async def start(self):
 *         if self._status == AIO_SERVER_STATUS_RUNNING:             # <<<<<<<<<<<<<<
 *             return
 *         elif self._status != AIO_SERVER_STATUS_READY:
 */
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->_status == __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_RUNNING);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1024
 *     async def start(self):
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return             # <<<<<<<<<<<<<<
 *         elif self._status != AIO_SERVER_STATUS_READY:
 *             raise UsageError('Server not in ready state')
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1023
 * 
 *     async def start(self):
 *         if self._status == AIO_SERVER_STATUS_RUNNING:             # <<<<<<<<<<<<<<
 *             return
 *         elif self._status != AIO_SERVER_STATUS_READY:
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1025
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return
 *         elif self._status != AIO_SERVER_STATUS_READY:             # <<<<<<<<<<<<<<
 *             raise UsageError('Server not in ready state')
 * 
 */
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->_status != __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_READY);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1026
 *             return
 *         elif self._status != AIO_SERVER_STATUS_READY:
 *             raise UsageError('Server not in ready state')             # <<<<<<<<<<<<<<
 * 
 *         self._status = AIO_SERVER_STATUS_RUNNING
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_UsageError); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_s_Server_not_in_ready_state};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(9, 1026, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1025
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return
 *         elif self._status != AIO_SERVER_STATUS_READY:             # <<<<<<<<<<<<<<
 *             raise UsageError('Server not in ready state')
 * 
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1028
 *             raise UsageError('Server not in ready state')
 * 
 *         self._status = AIO_SERVER_STATUS_RUNNING             # <<<<<<<<<<<<<<
 *         cdef object server_started = self._loop.create_future()
 *         self._serving_task = self._loop.create_task(self._server_main_loop(server_started))
 */
  __pyx_cur_scope->__pyx_v_self->_status = __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_RUNNING;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1029
 * 
 *         self._status = AIO_SERVER_STATUS_RUNNING
 *         cdef object server_started = self._loop.create_future()             # <<<<<<<<<<<<<<
 *         self._serving_task = self._loop.create_task(self._server_main_loop(server_started))
 *         self._serving_task.add_done_callback(self._serving_task_crash_handler)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->_loop, __pyx_n_s_create_future); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_server_started = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1030
 *         self._status = AIO_SERVER_STATUS_RUNNING
 *         cdef object server_started = self._loop.create_future()
 *         self._serving_task = self._loop.create_task(self._server_main_loop(server_started))             # <<<<<<<<<<<<<<
 *         self._serving_task.add_done_callback(self._serving_task_crash_handler)
 *         # Needs to explicitly wait for the server to start up.
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->_loop, __pyx_n_s_create_task); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1030, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_server_main_loop); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 1030, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_cur_scope->__pyx_v_server_started};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 1030, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_t_6 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_4};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1030, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->_serving_task);
  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->_serving_task);
  __pyx_cur_scope->__pyx_v_self->_serving_task = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1031
 *         cdef object server_started = self._loop.create_future()
 *         self._serving_task = self._loop.create_task(self._server_main_loop(server_started))
 *         self._serving_task.add_done_callback(self._serving_task_crash_handler)             # <<<<<<<<<<<<<<
 *         # Needs to explicitly wait for the server to start up.
 *         # Otherwise, the actual start time of the server is un-controllable.
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->_serving_task, __pyx_n_s_add_done_callback); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_serving_task_crash_handler); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 1031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_4};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1034
 *         # Needs to explicitly wait for the server to start up.
 *         # Otherwise, the actual start time of the server is un-controllable.
 *         await server_started             # <<<<<<<<<<<<<<
 * 
 *     async def _start_shutting_down(self):
 */
  __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_server_started);
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1034, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(9, 1034, __pyx_L1_error)
    }
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1022
 *             self._loop.create_task(self.shutdown(None))
 * 
 *     async def start(self):             # <<<<<<<<<<<<<<
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("start", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_21generator41(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1036
 *         await server_started
 * 
 *     async def _start_shutting_down(self):             # <<<<<<<<<<<<<<
 *         """Prepares the server to shutting down.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_20_start_shutting_down(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_19_start_shutting_down, "Prepares the server to shutting down.\n\n        This coroutine function is NOT coroutine-safe.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_20_start_shutting_down = {"_start_shutting_down", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_20_start_shutting_down, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_19_start_shutting_down};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_20_start_shutting_down(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_start_shutting_down (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("_start_shutting_down", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_start_shutting_down", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_19_start_shutting_down(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_19_start_shutting_down(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_start_shutting_down", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 1036, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_21generator41, __pyx_codeobj__102, (PyObject *) __pyx_cur_scope, __pyx_n_s_start_shutting_down, __pyx_n_s_AioServer__start_shutting_down, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 1036, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer._start_shutting_down", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_21generator41(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  grpc_completion_queue *__pyx_t_1;
  grpc_completion_queue_functor *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_start_shutting_down", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L10_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1036, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1044
 *         grpc_server_shutdown_and_notify(
 *             self._server.c_server,
 *             global_completion_queue(),             # <<<<<<<<<<<<<<
 *             self._shutdown_callback_wrapper.c_functor())
 * 
 */
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(); if (unlikely(__pyx_t_1 == ((grpc_completion_queue *)NULL) && PyErr_Occurred())) __PYX_ERR(9, 1044, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1045
 *             self._server.c_server,
 *             global_completion_queue(),
 *             self._shutdown_callback_wrapper.c_functor())             # <<<<<<<<<<<<<<
 * 
 *         # Ensures the serving task (coroutine) exits.
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_cur_scope->__pyx_v_self->_shutdown_callback_wrapper->__pyx_vtab)->c_functor(__pyx_cur_scope->__pyx_v_self->_shutdown_callback_wrapper); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 1045, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1042
 *         """
 *         # The shutdown callback won't be called until there is no live RPC.
 *         grpc_server_shutdown_and_notify(             # <<<<<<<<<<<<<<
 *             self._server.c_server,
 *             global_completion_queue(),
 */
  grpc_server_shutdown_and_notify(__pyx_cur_scope->__pyx_v_self->_server->c_server, __pyx_t_1, __pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1048
 * 
 *         # Ensures the serving task (coroutine) exits.
 *         try:             # <<<<<<<<<<<<<<
 *             await self._serving_task
 *         except _RequestCallError:
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1049
 *         # Ensures the serving task (coroutine) exits.
 *         try:
 *             await self._serving_task             # <<<<<<<<<<<<<<
 *         except _RequestCallError:
 *             pass
 */
      __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_self->_serving_task);
      __Pyx_XGOTREF(__pyx_r);
      if (likely(__pyx_r)) {
        __Pyx_XGIVEREF(__pyx_t_3);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_3;
        __Pyx_XGIVEREF(__pyx_t_4);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
        __Pyx_XGIVEREF(__pyx_t_5);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 1;
        return __pyx_r;
        __pyx_L10_resume_from_await:;
        __pyx_t_3 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_5);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1049, __pyx_L4_error)
      } else {
        PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
        if (exc_type) {
          if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
          else __PYX_ERR(9, 1049, __pyx_L4_error)
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1048
 * 
 *         # Ensures the serving task (coroutine) exits.
 *         try:             # <<<<<<<<<<<<<<
 *             await self._serving_task
 *         except _RequestCallError:
 */
    }
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1050
 *         try:
 *             await self._serving_task
 *         except _RequestCallError:             # <<<<<<<<<<<<<<
 *             pass
 * 
 */
    __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_RequestCallError); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 1050, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_6, __pyx_t_9);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0;
    if (__pyx_t_10) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L5_exception_handled;
    }
    goto __pyx_L6_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1048
 * 
 *         # Ensures the serving task (coroutine) exits.
 *         try:             # <<<<<<<<<<<<<<
 *             await self._serving_task
 *         except _RequestCallError:
 */
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L5_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    __pyx_L9_try_end:;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1036
 *         await server_started
 * 
 *     async def _start_shutting_down(self):             # <<<<<<<<<<<<<<
 *         """Prepares the server to shutting down.
 * 
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("_start_shutting_down", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_24generator42(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1053
 *             pass
 * 
 *     async def shutdown(self, grace):             # <<<<<<<<<<<<<<
 *         """Gracefully shutdown the Core server.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_23shutdown(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_22shutdown, "Gracefully shutdown the Core server.\n\n        Application should only call shutdown once.\n\n        Args:\n          grace: An optional float indicating the length of grace period in\n            seconds.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_23shutdown = {"shutdown", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_23shutdown, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_22shutdown};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_23shutdown(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_grace = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_grace,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_grace)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 1053, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "shutdown") < 0)) __PYX_ERR(9, 1053, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_grace = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("shutdown", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 1053, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_22shutdown(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_grace);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_22shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_grace) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("shutdown", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 1053, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_grace = __pyx_v_grace;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_grace);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_grace);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_24generator42, __pyx_codeobj__103, (PyObject *) __pyx_cur_scope, __pyx_n_s_shutdown, __pyx_n_s_AioServer_shutdown, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 1053, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_24generator42(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    case 2: goto __pyx_L16_resume_from_await;
    case 3: goto __pyx_L20_resume_from_await;
    case 4: goto __pyx_L21_resume_from_await;
    case 5: goto __pyx_L24_resume_from_await;
    case 6: goto __pyx_L31_resume_from_await;
    case 7: goto __pyx_L34_resume_from_await;
    case 8: goto __pyx_L36_resume_from_await;
    case 9: goto __pyx_L47_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1053, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1062
 *             seconds.
 *         """
 *         if self._status == AIO_SERVER_STATUS_READY or self._status == AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             return
 * 
 */
  switch (__pyx_cur_scope->__pyx_v_self->_status) {
    case __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_READY:
    case __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPED:

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1063
 *         """
 *         if self._status == AIO_SERVER_STATUS_READY or self._status == AIO_SERVER_STATUS_STOPPED:
 *             return             # <<<<<<<<<<<<<<
 * 
 *         async with self._shutdown_lock:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1062
 *             seconds.
 *         """
 *         if self._status == AIO_SERVER_STATUS_READY or self._status == AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             return
 * 
 */
    break;
    default: break;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1065
 *             return
 * 
 *         async with self._shutdown_lock:             # <<<<<<<<<<<<<<
 *             if self._status == AIO_SERVER_STATUS_RUNNING:
 *                 self._server.is_shutting_down = True
 */
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_cur_scope->__pyx_v_self->_shutdown_lock, __pyx_n_s_aexit); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1065, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_cur_scope->__pyx_v_self->_shutdown_lock, __pyx_n_s_aenter); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1065, __pyx_L4_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1065, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L5_resume_from_await:;
      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_1);
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1065, __pyx_L4_error)
      __pyx_t_2 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_2);
    } else {
      __pyx_t_2 = NULL;
      if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_2) < 0) __PYX_ERR(9, 1065, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1066
 * 
 *         async with self._shutdown_lock:
 *             if self._status == AIO_SERVER_STATUS_RUNNING:             # <<<<<<<<<<<<<<
 *                 self._server.is_shutting_down = True
 *                 self._status = AIO_SERVER_STATUS_STOPPING
 */
          __pyx_t_9 = (__pyx_cur_scope->__pyx_v_self->_status == __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_RUNNING);
          if (__pyx_t_9) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1067
 *         async with self._shutdown_lock:
 *             if self._status == AIO_SERVER_STATUS_RUNNING:
 *                 self._server.is_shutting_down = True             # <<<<<<<<<<<<<<
 *                 self._status = AIO_SERVER_STATUS_STOPPING
 *                 await self._start_shutting_down()
 */
            __pyx_cur_scope->__pyx_v_self->_server->is_shutting_down = 1;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1068
 *             if self._status == AIO_SERVER_STATUS_RUNNING:
 *                 self._server.is_shutting_down = True
 *                 self._status = AIO_SERVER_STATUS_STOPPING             # <<<<<<<<<<<<<<
 *                 await self._start_shutting_down()
 * 
 */
            __pyx_cur_scope->__pyx_v_self->_status = __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPING;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1069
 *                 self._server.is_shutting_down = True
 *                 self._status = AIO_SERVER_STATUS_STOPPING
 *                 await self._start_shutting_down()             # <<<<<<<<<<<<<<
 * 
 *         if grace is None:
 */
            __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_start_shutting_down); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1069, __pyx_L9_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_4 = NULL;
            __pyx_t_5 = 0;
            #if CYTHON_UNPACK_METHODS
            if (likely(PyMethod_Check(__pyx_t_3))) {
              __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
              if (likely(__pyx_t_4)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
                __Pyx_INCREF(__pyx_t_4);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_3, function);
                __pyx_t_5 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
              __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1069, __pyx_L9_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            }
            __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_XGOTREF(__pyx_r);
            if (likely(__pyx_r)) {
              __Pyx_XGIVEREF(__pyx_t_1);
              __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
              __Pyx_XGIVEREF(__pyx_t_6);
              __pyx_cur_scope->__pyx_t_1 = __pyx_t_6;
              __Pyx_XGIVEREF(__pyx_t_7);
              __pyx_cur_scope->__pyx_t_2 = __pyx_t_7;
              __Pyx_XGIVEREF(__pyx_t_8);
              __pyx_cur_scope->__pyx_t_3 = __pyx_t_8;
              __Pyx_XGIVEREF(__pyx_r);
              __Pyx_RefNannyFinishContext();
              __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
              /* return from generator, awaiting value */
              __pyx_generator->resume_label = 2;
              return __pyx_r;
              __pyx_L16_resume_from_await:;
              __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
              __pyx_cur_scope->__pyx_t_0 = 0;
              __Pyx_XGOTREF(__pyx_t_1);
              __pyx_t_6 = __pyx_cur_scope->__pyx_t_1;
              __pyx_cur_scope->__pyx_t_1 = 0;
              __Pyx_XGOTREF(__pyx_t_6);
              __pyx_t_7 = __pyx_cur_scope->__pyx_t_2;
              __pyx_cur_scope->__pyx_t_2 = 0;
              __Pyx_XGOTREF(__pyx_t_7);
              __pyx_t_8 = __pyx_cur_scope->__pyx_t_3;
              __pyx_cur_scope->__pyx_t_3 = 0;
              __Pyx_XGOTREF(__pyx_t_8);
              if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1069, __pyx_L9_error)
            } else {
              PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
              if (exc_type) {
                if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
                else __PYX_ERR(9, 1069, __pyx_L9_error)
              }
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1066
 * 
 *         async with self._shutdown_lock:
 *             if self._status == AIO_SERVER_STATUS_RUNNING:             # <<<<<<<<<<<<<<
 *                 self._server.is_shutting_down = True
 *                 self._status = AIO_SERVER_STATUS_STOPPING
 */
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1065
 *             return
 * 
 *         async with self._shutdown_lock:             # <<<<<<<<<<<<<<
 *             if self._status == AIO_SERVER_STATUS_RUNNING:
 *                 self._server.is_shutting_down = True
 */
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L14_try_end;
        __pyx_L9_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(9, 1065, __pyx_L11_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_10 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 1065, __pyx_L11_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 1065, __pyx_L11_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XGOTREF(__pyx_r);
          if (likely(__pyx_r)) {
            __Pyx_XGIVEREF(__pyx_t_1);
            __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
            __Pyx_XGIVEREF(__pyx_t_2);
            __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
            __Pyx_XGIVEREF(__pyx_t_3);
            __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
            __Pyx_XGIVEREF(__pyx_t_4);
            __pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
            __Pyx_XGIVEREF(__pyx_t_6);
            __pyx_cur_scope->__pyx_t_4 = __pyx_t_6;
            __Pyx_XGIVEREF(__pyx_t_7);
            __pyx_cur_scope->__pyx_t_5 = __pyx_t_7;
            __Pyx_XGIVEREF(__pyx_t_8);
            __pyx_cur_scope->__pyx_t_6 = __pyx_t_8;
            __Pyx_XGIVEREF(__pyx_t_11);
            __pyx_cur_scope->__pyx_t_7 = __pyx_t_11;
            __Pyx_XGIVEREF(__pyx_r);
            __Pyx_RefNannyFinishContext();
            __Pyx_Coroutine_SwapException(__pyx_generator);
            /* return from generator, awaiting value */
            __pyx_generator->resume_label = 3;
            return __pyx_r;
            __pyx_L20_resume_from_await:;
            __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
            __pyx_cur_scope->__pyx_t_0 = 0;
            __Pyx_XGOTREF(__pyx_t_1);
            __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
            __pyx_cur_scope->__pyx_t_1 = 0;
            __Pyx_XGOTREF(__pyx_t_2);
            __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
            __pyx_cur_scope->__pyx_t_2 = 0;
            __Pyx_XGOTREF(__pyx_t_3);
            __pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
            __pyx_cur_scope->__pyx_t_3 = 0;
            __Pyx_XGOTREF(__pyx_t_4);
            __pyx_t_6 = __pyx_cur_scope->__pyx_t_4;
            __pyx_cur_scope->__pyx_t_4 = 0;
            __Pyx_XGOTREF(__pyx_t_6);
            __pyx_t_7 = __pyx_cur_scope->__pyx_t_5;
            __pyx_cur_scope->__pyx_t_5 = 0;
            __Pyx_XGOTREF(__pyx_t_7);
            __pyx_t_8 = __pyx_cur_scope->__pyx_t_6;
            __pyx_cur_scope->__pyx_t_6 = 0;
            __Pyx_XGOTREF(__pyx_t_8);
            __pyx_t_11 = __pyx_cur_scope->__pyx_t_7;
            __pyx_cur_scope->__pyx_t_7 = 0;
            __Pyx_XGOTREF(__pyx_t_11);
            if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1065, __pyx_L11_except_error)
            __pyx_t_10 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_10);
          } else {
            __pyx_t_10 = NULL;
            if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_10) < 0) __PYX_ERR(9, 1065, __pyx_L11_except_error)
            __Pyx_GOTREF(__pyx_t_10);
          }
          __pyx_t_11 = __pyx_t_10;
          __pyx_t_10 = 0;
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(9, 1065, __pyx_L11_except_error)
          __pyx_t_12 = (!__pyx_t_9);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_3, __pyx_t_4);
            __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; 
            __PYX_ERR(9, 1065, __pyx_L11_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L10_exception_handled;
        }
        __pyx_L11_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L10_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L14_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 1065, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XGOTREF(__pyx_r);
          if (likely(__pyx_r)) {
            __Pyx_XGIVEREF(__pyx_t_1);
            __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
            __Pyx_XGIVEREF(__pyx_t_8);
            __pyx_cur_scope->__pyx_t_1 = __pyx_t_8;
            __Pyx_XGIVEREF(__pyx_r);
            __Pyx_RefNannyFinishContext();
            __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
            /* return from generator, awaiting value */
            __pyx_generator->resume_label = 4;
            return __pyx_r;
            __pyx_L21_resume_from_await:;
            __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
            __pyx_cur_scope->__pyx_t_0 = 0;
            __Pyx_XGOTREF(__pyx_t_1);
            __pyx_t_8 = __pyx_cur_scope->__pyx_t_1;
            __pyx_cur_scope->__pyx_t_1 = 0;
            __Pyx_XGOTREF(__pyx_t_8);
            if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1065, __pyx_L1_error)
            __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4);
          } else {
            __pyx_t_4 = NULL;
            if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_4) < 0) __PYX_ERR(9, 1065, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
          }
          __pyx_t_8 = __pyx_t_4;
          __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L8;
      }
      __pyx_L8:;
    }
    goto __pyx_L22;
    __pyx_L4_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L22:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1071
 *                 await self._start_shutting_down()
 * 
 *         if grace is None:             # <<<<<<<<<<<<<<
 *             # Directly cancels all calls
 *             grpc_server_cancel_all_calls(self._server.c_server)
 */
  __pyx_t_12 = (__pyx_cur_scope->__pyx_v_grace == Py_None);
  if (__pyx_t_12) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1073
 *         if grace is None:
 *             # Directly cancels all calls
 *             grpc_server_cancel_all_calls(self._server.c_server)             # <<<<<<<<<<<<<<
 *             await self._shutdown_completed
 *         else:
 */
    grpc_server_cancel_all_calls(__pyx_cur_scope->__pyx_v_self->_server->c_server);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1074
 *             # Directly cancels all calls
 *             grpc_server_cancel_all_calls(self._server.c_server)
 *             await self._shutdown_completed             # <<<<<<<<<<<<<<
 *         else:
 *             try:
 */
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_self->_shutdown_completed);
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 5;
      return __pyx_r;
      __pyx_L24_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1074, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(9, 1074, __pyx_L1_error)
      }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1071
 *                 await self._start_shutting_down()
 * 
 *         if grace is None:             # <<<<<<<<<<<<<<
 *             # Directly cancels all calls
 *             grpc_server_cancel_all_calls(self._server.c_server)
 */
    goto __pyx_L23;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1076
 *             await self._shutdown_completed
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
 */
  /*else*/ {
    {
      __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_8, &__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_7);
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1077
 *         else:
 *             try:
 *                 await asyncio.wait_for(             # <<<<<<<<<<<<<<
 *                     asyncio.shield(self._shutdown_completed),
 *                     grace,
 */
        __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1077, __pyx_L25_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_wait_for); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1077, __pyx_L25_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1078
 *             try:
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),             # <<<<<<<<<<<<<<
 *                     grace,
 *                 )
 */
        __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 1078, __pyx_L25_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_shield); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 1078, __pyx_L25_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = NULL;
        __pyx_t_5 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_13))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_13);
          if (likely(__pyx_t_10)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
            __Pyx_INCREF(__pyx_t_10);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_13, function);
            __pyx_t_5 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_cur_scope->__pyx_v_self->_shutdown_completed};
          __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1078, __pyx_L25_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1079
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
 *                     grace,             # <<<<<<<<<<<<<<
 *                 )
 *             except asyncio.TimeoutError:
 */
        __pyx_t_13 = NULL;
        __pyx_t_5 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_2))) {
          __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_2);
          if (likely(__pyx_t_13)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
            __Pyx_INCREF(__pyx_t_13);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_2, function);
            __pyx_t_5 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_13, __pyx_t_3, __pyx_cur_scope->__pyx_v_grace};
          __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 1077, __pyx_L25_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        }
        __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XGOTREF(__pyx_r);
        if (likely(__pyx_r)) {
          __Pyx_XGIVEREF(__pyx_t_1);
          __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
          __Pyx_XGIVEREF(__pyx_t_7);
          __pyx_cur_scope->__pyx_t_1 = __pyx_t_7;
          __Pyx_XGIVEREF(__pyx_t_8);
          __pyx_cur_scope->__pyx_t_2 = __pyx_t_8;
          __Pyx_XGIVEREF(__pyx_r);
          __Pyx_RefNannyFinishContext();
          __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
          /* return from generator, awaiting value */
          __pyx_generator->resume_label = 6;
          return __pyx_r;
          __pyx_L31_resume_from_await:;
          __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
          __pyx_cur_scope->__pyx_t_0 = 0;
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_7 = __pyx_cur_scope->__pyx_t_1;
          __pyx_cur_scope->__pyx_t_1 = 0;
          __Pyx_XGOTREF(__pyx_t_7);
          __pyx_t_8 = __pyx_cur_scope->__pyx_t_2;
          __pyx_cur_scope->__pyx_t_2 = 0;
          __Pyx_XGOTREF(__pyx_t_8);
          if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1077, __pyx_L25_error)
        } else {
          PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
          if (exc_type) {
            if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
            else __PYX_ERR(9, 1077, __pyx_L25_error)
          }
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1076
 *             await self._shutdown_completed
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
 */
      }
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L30_try_end;
      __pyx_L25_error:;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1081
 *                     grace,
 *                 )
 *             except asyncio.TimeoutError:             # <<<<<<<<<<<<<<
 *                 # Cancels all ongoing calls by the end of grace period.
 *                 grpc_server_cancel_all_calls(self._server.c_server)
 */
      __Pyx_ErrFetch(&__pyx_t_4, &__pyx_t_2, &__pyx_t_3);
      __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 1081, __pyx_L27_except_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_TimeoutError); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 1081, __pyx_L27_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_14 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_4, __pyx_t_10);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_ErrRestore(__pyx_t_4, __pyx_t_2, __pyx_t_3);
      __pyx_t_4 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0;
      if (__pyx_t_14) {
        __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_4) < 0) __PYX_ERR(9, 1081, __pyx_L27_except_error)
        __Pyx_XGOTREF(__pyx_t_3);
        __Pyx_XGOTREF(__pyx_t_2);
        __Pyx_XGOTREF(__pyx_t_4);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1083
 *             except asyncio.TimeoutError:
 *                 # Cancels all ongoing calls by the end of grace period.
 *                 grpc_server_cancel_all_calls(self._server.c_server)             # <<<<<<<<<<<<<<
 *                 await self._shutdown_completed
 * 
 */
        grpc_server_cancel_all_calls(__pyx_cur_scope->__pyx_v_self->_server->c_server);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1084
 *                 # Cancels all ongoing calls by the end of grace period.
 *                 grpc_server_cancel_all_calls(self._server.c_server)
 *                 await self._shutdown_completed             # <<<<<<<<<<<<<<
 * 
 *         async with self._shutdown_lock:
 */
        __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_self->_shutdown_completed);
        __Pyx_XGOTREF(__pyx_r);
        if (likely(__pyx_r)) {
          __Pyx_XGIVEREF(__pyx_t_1);
          __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
          __Pyx_XGIVEREF(__pyx_t_2);
          __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
          __Pyx_XGIVEREF(__pyx_t_3);
          __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
          __Pyx_XGIVEREF(__pyx_t_4);
          __pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
          __Pyx_XGIVEREF(__pyx_t_7);
          __pyx_cur_scope->__pyx_t_4 = __pyx_t_7;
          __Pyx_XGIVEREF(__pyx_t_8);
          __pyx_cur_scope->__pyx_t_5 = __pyx_t_8;
          __Pyx_XGIVEREF(__pyx_r);
          __Pyx_RefNannyFinishContext();
          __Pyx_Coroutine_SwapException(__pyx_generator);
          /* return from generator, awaiting value */
          __pyx_generator->resume_label = 7;
          return __pyx_r;
          __pyx_L34_resume_from_await:;
          __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
          __pyx_cur_scope->__pyx_t_0 = 0;
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
          __pyx_cur_scope->__pyx_t_1 = 0;
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
          __pyx_cur_scope->__pyx_t_2 = 0;
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
          __pyx_cur_scope->__pyx_t_3 = 0;
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_7 = __pyx_cur_scope->__pyx_t_4;
          __pyx_cur_scope->__pyx_t_4 = 0;
          __Pyx_XGOTREF(__pyx_t_7);
          __pyx_t_8 = __pyx_cur_scope->__pyx_t_5;
          __pyx_cur_scope->__pyx_t_5 = 0;
          __Pyx_XGOTREF(__pyx_t_8);
          if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1084, __pyx_L27_except_error)
        } else {
          PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
          if (exc_type) {
            if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
            else __PYX_ERR(9, 1084, __pyx_L27_except_error)
          }
        }
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L26_exception_handled;
      }
      goto __pyx_L27_except_error;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1076
 *             await self._shutdown_completed
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
 */
      __pyx_L27_except_error:;
      __Pyx_XGIVEREF(__pyx_t_1);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_8, __pyx_t_7);
      goto __pyx_L1_error;
      __pyx_L26_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_1);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_8, __pyx_t_7);
      __pyx_L30_try_end:;
    }
  }
  __pyx_L23:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1086
 *                 await self._shutdown_completed
 * 
 *         async with self._shutdown_lock:             # <<<<<<<<<<<<<<
 *             if self._status == AIO_SERVER_STATUS_STOPPING:
 *                 grpc_server_destroy(self._server.c_server)
 */
  /*with:*/ {
    __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_cur_scope->__pyx_v_self->_shutdown_lock, __pyx_n_s_aexit); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 1086, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_cur_scope->__pyx_v_self->_shutdown_lock, __pyx_n_s_aenter); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1086, __pyx_L35_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 1086, __pyx_L35_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_t_7);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_7;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 8;
      return __pyx_r;
      __pyx_L36_resume_from_await:;
      __pyx_t_7 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_7);
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1086, __pyx_L35_error)
      __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4);
    } else {
      __pyx_t_4 = NULL;
      if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_4) < 0) __PYX_ERR(9, 1086, __pyx_L35_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    /*try:*/ {
      {
        (void)__pyx_t_8; (void)__pyx_t_1; (void)__pyx_t_6; /* mark used */
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1087
 * 
 *         async with self._shutdown_lock:
 *             if self._status == AIO_SERVER_STATUS_STOPPING:             # <<<<<<<<<<<<<<
 *                 grpc_server_destroy(self._server.c_server)
 *                 self._server.c_server = NULL
 */
          __pyx_t_12 = (__pyx_cur_scope->__pyx_v_self->_status == __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPING);
          if (__pyx_t_12) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1088
 *         async with self._shutdown_lock:
 *             if self._status == AIO_SERVER_STATUS_STOPPING:
 *                 grpc_server_destroy(self._server.c_server)             # <<<<<<<<<<<<<<
 *                 self._server.c_server = NULL
 *                 self._server.is_shutdown = True
 */
            grpc_server_destroy(__pyx_cur_scope->__pyx_v_self->_server->c_server);

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1089
 *             if self._status == AIO_SERVER_STATUS_STOPPING:
 *                 grpc_server_destroy(self._server.c_server)
 *                 self._server.c_server = NULL             # <<<<<<<<<<<<<<
 *                 self._server.is_shutdown = True
 *                 self._status = AIO_SERVER_STATUS_STOPPED
 */
            __pyx_cur_scope->__pyx_v_self->_server->c_server = NULL;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1090
 *                 grpc_server_destroy(self._server.c_server)
 *                 self._server.c_server = NULL
 *                 self._server.is_shutdown = True             # <<<<<<<<<<<<<<
 *                 self._status = AIO_SERVER_STATUS_STOPPED
 * 
 */
            __pyx_cur_scope->__pyx_v_self->_server->is_shutdown = 1;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1091
 *                 self._server.c_server = NULL
 *                 self._server.is_shutdown = True
 *                 self._status = AIO_SERVER_STATUS_STOPPED             # <<<<<<<<<<<<<<
 * 
 *     async def wait_for_termination(self, object timeout):
 */
            __pyx_cur_scope->__pyx_v_self->_status = __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPED;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1087
 * 
 *         async with self._shutdown_lock:
 *             if self._status == AIO_SERVER_STATUS_STOPPING:             # <<<<<<<<<<<<<<
 *                 grpc_server_destroy(self._server.c_server)
 *                 self._server.c_server = NULL
 */
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1086
 *                 await self._shutdown_completed
 * 
 *         async with self._shutdown_lock:             # <<<<<<<<<<<<<<
 *             if self._status == AIO_SERVER_STATUS_STOPPING:
 *                 grpc_server_destroy(self._server.c_server)
 */
        }
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_7) {
          __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__11, NULL);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 1086, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_6);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_XGOTREF(__pyx_r);
          if (likely(__pyx_r)) {
            __Pyx_XGIVEREF(__pyx_t_6);
            __pyx_cur_scope->__pyx_t_0 = __pyx_t_6;
            __Pyx_XGIVEREF(__pyx_t_7);
            __pyx_cur_scope->__pyx_t_1 = __pyx_t_7;
            __Pyx_XGIVEREF(__pyx_r);
            __Pyx_RefNannyFinishContext();
            __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
            /* return from generator, awaiting value */
            __pyx_generator->resume_label = 9;
            return __pyx_r;
            __pyx_L47_resume_from_await:;
            __pyx_t_6 = __pyx_cur_scope->__pyx_t_0;
            __pyx_cur_scope->__pyx_t_0 = 0;
            __Pyx_XGOTREF(__pyx_t_6);
            __pyx_t_7 = __pyx_cur_scope->__pyx_t_1;
            __pyx_cur_scope->__pyx_t_1 = 0;
            __Pyx_XGOTREF(__pyx_t_7);
            if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1086, __pyx_L1_error)
            __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4);
          } else {
            __pyx_t_4 = NULL;
            if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_4) < 0) __PYX_ERR(9, 1086, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
          }
          __pyx_t_6 = __pyx_t_4;
          __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        goto __pyx_L39;
      }
      __pyx_L39:;
    }
    goto __pyx_L48;
    __pyx_L35_error:;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L1_error;
    __pyx_L48:;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1053
 *             pass
 * 
 *     async def shutdown(self, grace):             # <<<<<<<<<<<<<<
 *         """Gracefully shutdown the Core server.
 * 
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_27generator43(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1093
 *                 self._status = AIO_SERVER_STATUS_STOPPED
 * 
 *     async def wait_for_termination(self, object timeout):             # <<<<<<<<<<<<<<
 *         if timeout is None:
 *             await self._shutdown_completed
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_26wait_for_termination(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_26wait_for_termination = {"wait_for_termination", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_26wait_for_termination, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_26wait_for_termination(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_timeout = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("wait_for_termination (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_timeout,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeout)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 1093, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "wait_for_termination") < 0)) __PYX_ERR(9, 1093, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_timeout = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("wait_for_termination", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 1093, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.wait_for_termination", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_25wait_for_termination(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_timeout);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_25wait_for_termination(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_timeout) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wait_for_termination", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 1093, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_timeout = __pyx_v_timeout;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_timeout);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_timeout);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_27generator43, __pyx_codeobj__104, (PyObject *) __pyx_cur_scope, __pyx_n_s_wait_for_termination, __pyx_n_s_AioServer_wait_for_termination, __pyx_n_s_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 1093, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.wait_for_termination", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_27generator43(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  unsigned int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("wait_for_termination", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    case 2: goto __pyx_L12_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1093, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1094
 * 
 *     async def wait_for_termination(self, object timeout):
 *         if timeout is None:             # <<<<<<<<<<<<<<
 *             await self._shutdown_completed
 *         else:
 */
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_timeout == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1095
 *     async def wait_for_termination(self, object timeout):
 *         if timeout is None:
 *             await self._shutdown_completed             # <<<<<<<<<<<<<<
 *         else:
 *             try:
 */
    __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_self->_shutdown_completed);
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L5_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1095, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(9, 1095, __pyx_L1_error)
      }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1094
 * 
 *     async def wait_for_termination(self, object timeout):
 *         if timeout is None:             # <<<<<<<<<<<<<<
 *             await self._shutdown_completed
 *         else:
 */
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1097
 *             await self._shutdown_completed
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
 */
  /*else*/ {
    {
      __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_4);
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1098
 *         else:
 *             try:
 *                 await asyncio.wait_for(             # <<<<<<<<<<<<<<
 *                     asyncio.shield(self._shutdown_completed),
 *                     timeout,
 */
        __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 1098, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_wait_for); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 1098, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1099
 *             try:
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),             # <<<<<<<<<<<<<<
 *                     timeout,
 *                 )
 */
        __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 1099, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_shield); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 1099, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = NULL;
        __pyx_t_10 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_9))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_9, function);
            __pyx_t_10 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_cur_scope->__pyx_v_self->_shutdown_completed};
          __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 1099, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1100
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
 *                     timeout,             # <<<<<<<<<<<<<<
 *                 )
 *             except asyncio.TimeoutError:
 */
        __pyx_t_9 = NULL;
        __pyx_t_10 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
            __pyx_t_10 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_9, __pyx_t_6, __pyx_cur_scope->__pyx_v_timeout};
          __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10);
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 1098, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_5);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XGOTREF(__pyx_r);
        if (likely(__pyx_r)) {
          __Pyx_XGIVEREF(__pyx_t_2);
          __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
          __Pyx_XGIVEREF(__pyx_t_3);
          __pyx_cur_scope->__pyx_t_1 = __pyx_t_3;
          __Pyx_XGIVEREF(__pyx_t_4);
          __pyx_cur_scope->__pyx_t_2 = __pyx_t_4;
          __Pyx_XGIVEREF(__pyx_r);
          __Pyx_RefNannyFinishContext();
          __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
          /* return from generator, awaiting value */
          __pyx_generator->resume_label = 2;
          return __pyx_r;
          __pyx_L12_resume_from_await:;
          __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
          __pyx_cur_scope->__pyx_t_0 = 0;
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
          __pyx_cur_scope->__pyx_t_1 = 0;
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
          __pyx_cur_scope->__pyx_t_2 = 0;
          __Pyx_XGOTREF(__pyx_t_4);
          if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1098, __pyx_L6_error)
        } else {
          PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
          if (exc_type) {
            if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
            else __PYX_ERR(9, 1098, __pyx_L6_error)
          }
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1097
 *             await self._shutdown_completed
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
 */
      }
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L11_try_end;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1102
 *                     timeout,
 *                 )
 *             except asyncio.TimeoutError:             # <<<<<<<<<<<<<<
 *                 if self._crash_exception is not None:
 *                     raise self._crash_exception
 */
      __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_7, &__pyx_t_6);
      __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 1102, __pyx_L8_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_TimeoutError); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 1102, __pyx_L8_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_11 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_5, __pyx_t_8);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_ErrRestore(__pyx_t_5, __pyx_t_7, __pyx_t_6);
      __pyx_t_5 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0;
      if (__pyx_t_11) {
        __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.wait_for_termination", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_5) < 0) __PYX_ERR(9, 1102, __pyx_L8_except_error)
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_5);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1103
 *                 )
 *             except asyncio.TimeoutError:
 *                 if self._crash_exception is not None:             # <<<<<<<<<<<<<<
 *                     raise self._crash_exception
 *                 return True
 */
        __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->_crash_exception != Py_None);
        if (unlikely(__pyx_t_1)) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1104
 *             except asyncio.TimeoutError:
 *                 if self._crash_exception is not None:
 *                     raise self._crash_exception             # <<<<<<<<<<<<<<
 *                 return True
 *         if self._crash_exception is not None:
 */
          __Pyx_Raise(__pyx_cur_scope->__pyx_v_self->_crash_exception, 0, 0, 0);
          __PYX_ERR(9, 1104, __pyx_L8_except_error)

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1103
 *                 )
 *             except asyncio.TimeoutError:
 *                 if self._crash_exception is not None:             # <<<<<<<<<<<<<<
 *                     raise self._crash_exception
 *                 return True
 */
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1105
 *                 if self._crash_exception is not None:
 *                     raise self._crash_exception
 *                 return True             # <<<<<<<<<<<<<<
 *         if self._crash_exception is not None:
 *             raise self._crash_exception
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_r = NULL; __Pyx_ReturnWithStopIteration(Py_True);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L9_except_return;
      }
      goto __pyx_L8_except_error;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1097
 *             await self._shutdown_completed
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
 */
      __pyx_L8_except_error:;
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
      goto __pyx_L1_error;
      __pyx_L9_except_return:;
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
      goto __pyx_L0;
      __pyx_L11_try_end:;
    }
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1106
 *                     raise self._crash_exception
 *                 return True
 *         if self._crash_exception is not None:             # <<<<<<<<<<<<<<
 *             raise self._crash_exception
 *         return False
 */
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->_crash_exception != Py_None);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1107
 *                 return True
 *         if self._crash_exception is not None:
 *             raise self._crash_exception             # <<<<<<<<<<<<<<
 *         return False
 * 
 */
    __Pyx_Raise(__pyx_cur_scope->__pyx_v_self->_crash_exception, 0, 0, 0);
    __PYX_ERR(9, 1107, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1106
 *                     raise self._crash_exception
 *                 return True
 *         if self._crash_exception is not None:             # <<<<<<<<<<<<<<
 *             raise self._crash_exception
 *         return False
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1108
 *         if self._crash_exception is not None:
 *             raise self._crash_exception
 *         return False             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_r = NULL; __Pyx_ReturnWithStopIteration(Py_False);
  goto __pyx_L0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1093
 *                 self._status = AIO_SERVER_STATUS_STOPPED
 * 
 *     async def wait_for_termination(self, object timeout):             # <<<<<<<<<<<<<<
 *         if timeout is None:
 *             await self._shutdown_completed
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("wait_for_termination", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1110
 *         return False
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         """Deallocation of Core objects are ensured by Python layer."""
 *         # TODO(lidiz) if users create server, and then dealloc it immediately.
 */

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_29__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_29__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_28__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_28__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  unsigned int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1114
 *         # TODO(lidiz) if users create server, and then dealloc it immediately.
 *         # There is a potential memory leak of created Core server.
 *         if self._status != AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             _LOGGER.debug(
 *                 '__dealloc__ called on running server %s with status %d',
 */
  __pyx_t_1 = (__pyx_v_self->_status != __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPED);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1115
 *         # There is a potential memory leak of created Core server.
 *         if self._status != AIO_SERVER_STATUS_STOPPED:
 *             _LOGGER.debug(             # <<<<<<<<<<<<<<
 *                 '__dealloc__ called on running server %s with status %d',
 *                 self,
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_debug); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 1115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1118
 *                 '__dealloc__ called on running server %s with status %d',
 *                 self,
 *                 self._status             # <<<<<<<<<<<<<<
 *             )
 *         shutdown_grpc_aio()
 */
    __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(__pyx_v_self->_status); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_kp_s_dealloc___called_on_running_se, ((PyObject *)__pyx_v_self), __pyx_t_3};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1115, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1114
 *         # TODO(lidiz) if users create server, and then dealloc it immediately.
 *         # There is a potential memory leak of created Core server.
 *         if self._status != AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             _LOGGER.debug(
 *                 '__dealloc__ called on running server %s with status %d',
 */
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1120
 *                 self._status
 *             )
 *         shutdown_grpc_aio()             # <<<<<<<<<<<<<<
 * 
 *     cdef thread_pool(self):
 */
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1110
 *         return False
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         """Deallocation of Core objects are ensured by Python layer."""
 *         # TODO(lidiz) if users create server, and then dealloc it immediately.
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.AioServer.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1122
 *         shutdown_grpc_aio()
 * 
 *     cdef thread_pool(self):             # <<<<<<<<<<<<<<
 *         """Access the thread pool instance."""
 *         return self._thread_pool
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_9AioServer_thread_pool(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("thread_pool", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1124
 *     cdef thread_pool(self):
 *         """Access the thread pool instance."""
 *         return self._thread_pool             # <<<<<<<<<<<<<<
 * 
 *     def is_running(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_thread_pool);
  __pyx_r = __pyx_v_self->_thread_pool;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1122
 *         shutdown_grpc_aio()
 * 
 *     cdef thread_pool(self):             # <<<<<<<<<<<<<<
 *         """Access the thread pool instance."""
 *         return self._thread_pool
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1126
 *         return self._thread_pool
 * 
 *     def is_running(self):             # <<<<<<<<<<<<<<
 *         return self._status == AIO_SERVER_STATUS_RUNNING
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_31is_running(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_31is_running = {"is_running", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_31is_running, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_31is_running(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_running (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("is_running", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "is_running", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_30is_running(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_30is_running(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_running", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1127
 * 
 *     def is_running(self):
 *         return self._status == AIO_SERVER_STATUS_RUNNING             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_self->_status == __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_RUNNING)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1126
 *         return self._thread_pool
 * 
 *     def is_running(self):             # <<<<<<<<<<<<<<
 *         return self._status == AIO_SERVER_STATUS_RUNNING
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.is_running", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_33__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_33__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_33__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_33__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_32__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_32__reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._crash_exception, self._generic_handlers, self._interceptors, self._limiter, self._loop, self._server, self._serving_task, self._shutdown_callback_wrapper, self._shutdown_completed, self._shutdown_lock, self._status, self._thread_pool)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(__pyx_v_self->_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(12); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_crash_exception);
  __Pyx_GIVEREF(__pyx_v_self->_crash_exception);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_crash_exception)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_generic_handlers);
  __Pyx_GIVEREF(__pyx_v_self->_generic_handlers);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->_generic_handlers)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_interceptors);
  __Pyx_GIVEREF(__pyx_v_self->_interceptors);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->_interceptors)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_limiter);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->_limiter);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->_limiter))) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_loop);
  __Pyx_GIVEREF(__pyx_v_self->_loop);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->_loop)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_server);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->_server);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_v_self->_server))) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_serving_task);
  __Pyx_GIVEREF(__pyx_v_self->_serving_task);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 6, __pyx_v_self->_serving_task)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_shutdown_callback_wrapper);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->_shutdown_callback_wrapper);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 7, ((PyObject *)__pyx_v_self->_shutdown_callback_wrapper))) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_shutdown_completed);
  __Pyx_GIVEREF(__pyx_v_self->_shutdown_completed);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 8, __pyx_v_self->_shutdown_completed)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_shutdown_lock);
  __Pyx_GIVEREF(__pyx_v_self->_shutdown_lock);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 9, __pyx_v_self->_shutdown_lock)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 10, __pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_thread_pool);
  __Pyx_GIVEREF(__pyx_v_self->_thread_pool);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 11, __pyx_v_self->_thread_pool)) __PYX_ERR(10, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._crash_exception, self._generic_handlers, self._interceptors, self._limiter, self._loop, self._server, self._serving_task, self._shutdown_callback_wrapper, self._shutdown_completed, self._shutdown_lock, self._status, self._thread_pool)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._crash_exception, self._generic_handlers, self._interceptors, self._limiter, self._loop, self._server, self._serving_task, self._shutdown_callback_wrapper, self._shutdown_completed, self._shutdown_lock, self._status, self._thread_pool)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict)) __PYX_ERR(10, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._crash_exception is not None or self._generic_handlers is not None or self._interceptors is not None or self._limiter is not None or self._loop is not None or self._server is not None or self._serving_task is not None or self._shutdown_callback_wrapper is not None or self._shutdown_completed is not None or self._shutdown_lock is not None or self._thread_pool is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._crash_exception, self._generic_handlers, self._interceptors, self._limiter, self._loop, self._server, self._serving_task, self._shutdown_callback_wrapper, self._shutdown_completed, self._shutdown_lock, self._status, self._thread_pool)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._crash_exception is not None or self._generic_handlers is not None or self._interceptors is not None or self._limiter is not None or self._loop is not None or self._server is not None or self._serving_task is not None or self._shutdown_callback_wrapper is not None or self._shutdown_completed is not None or self._shutdown_lock is not None or self._thread_pool is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, None), state
 */
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->_crash_exception != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_generic_handlers != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_interceptors != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->_limiter) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_loop != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->_server) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_serving_task != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->_shutdown_callback_wrapper) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_shutdown_completed != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_shutdown_lock != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_thread_pool != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._crash_exception is not None or self._generic_handlers is not None or self._interceptors is not None or self._limiter is not None or self._loop is not None or self._server is not None or self._serving_task is not None or self._shutdown_callback_wrapper is not None or self._shutdown_completed is not None or self._shutdown_lock is not None or self._thread_pool is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._crash_exception is not None or self._generic_handlers is not None or self._interceptors is not None or self._limiter is not None or self._loop is not None or self._server is not None or self._serving_task is not None or self._shutdown_callback_wrapper is not None or self._shutdown_completed is not None or self._shutdown_lock is not None or self._thread_pool is not None
 *     if use_setstate:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_AioServer); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_171651213);
    __Pyx_GIVEREF(__pyx_int_171651213);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_171651213)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._crash_exception is not None or self._generic_handlers is not None or self._interceptors is not None or self._limiter is not None or self._loop is not None or self._server is not None or self._serving_task is not None or self._shutdown_callback_wrapper is not None or self._shutdown_completed is not None or self._shutdown_lock is not None or self._thread_pool is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, None), state
 *     else:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AioServer__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_AioServer); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_171651213);
    __Pyx_GIVEREF(__pyx_int_171651213);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_171651213)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AioServer__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_35__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_35__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_35__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_35__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(10, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_34__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_34__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AioServer__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_AioServer__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AioServer__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "grpc/_cython/cygrpc.pyx":83
 * # initialize gRPC
 * #
 * cdef _initialize():             # <<<<<<<<<<<<<<
 *   grpc_set_ssl_roots_override_callback(
 *           <grpc_ssl_roots_override_callback>ssl_roots_override_callback)
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__initialize(void) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_initialize", 1);

  /* "grpc/_cython/cygrpc.pyx":84
 * #
 * cdef _initialize():
 *   grpc_set_ssl_roots_override_callback(             # <<<<<<<<<<<<<<
 *           <grpc_ssl_roots_override_callback>ssl_roots_override_callback)
 * 
 */
  grpc_set_ssl_roots_override_callback(((grpc_ssl_roots_override_callback)__pyx_f_4grpc_7_cython_6cygrpc_ssl_roots_override_callback));

  /* "grpc/_cython/cygrpc.pyx":83
 * # initialize gRPC
 * #
 * cdef _initialize():             # <<<<<<<<<<<<<<
 *   grpc_set_ssl_roots_override_callback(
 *           <grpc_ssl_roots_override_callback>ssl_roots_override_callback)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_ChannelCredentials(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_189__pyx_unpickle_ChannelCredentials(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_189__pyx_unpickle_ChannelCredentials = {"__pyx_unpickle_ChannelCredentials", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_189__pyx_unpickle_ChannelCredentials, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_189__pyx_unpickle_ChannelCredentials(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_ChannelCredentials (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ChannelCredentials", 1, 3, 3, 1); __PYX_ERR(10, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ChannelCredentials", 1, 3, 3, 2); __PYX_ERR(10, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_ChannelCredentials") < 0)) __PYX_ERR(10, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ChannelCredentials", 1, 3, 3, __pyx_nargs); __PYX_ERR(10, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_ChannelCredentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_188__pyx_unpickle_ChannelCredentials(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_188__pyx_unpickle_ChannelCredentials(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ChannelCredentials", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__105, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = ChannelCredentials.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(10, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = ChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(10, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = ChannelCredentials.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = ChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = ChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_ChannelCredentials__set_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = ChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_ChannelCredentials(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_ChannelCredentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_ChannelCredentials__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  unsigned int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ChannelCredentials__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 > 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_update); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(10, 13, __pyx_L1_error)
    }
    __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_ChannelCredentials__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_InsecureChannelCredentials(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_191__pyx_unpickle_InsecureChannelCredentials(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_191__pyx_unpickle_InsecureChannelCredentials = {"__pyx_unpickle_InsecureChannelCredentials", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_191__pyx_unpickle_InsecureChannelCredentials, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_191__pyx_unpickle_InsecureChannelCredentials(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_InsecureChannelCredentials (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_InsecureChannelCredentials", 1, 3, 3, 1); __PYX_ERR(10, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_InsecureChannelCredentials", 1, 3, 3, 2); __PYX_ERR(10, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_InsecureChannelCredentials") < 0)) __PYX_ERR(10, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_InsecureChannelCredentials", 1, 3, 3, __pyx_nargs); __PYX_ERR(10, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_InsecureChannelCredentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_190__pyx_unpickle_InsecureChannelCredentials(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_190__pyx_unpickle_InsecureChannelCredentials(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_InsecureChannelCredentials", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__105, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = InsecureChannelCredentials.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(10, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = InsecureChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(10, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = InsecureChannelCredentials.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_InsecureChannelCredentials__set_state(<InsecureChannelCredentials> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = InsecureChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_InsecureChannelCredentials__set_state(<InsecureChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = InsecureChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_InsecureChannelCredentials__set_state(<InsecureChannelCredentials> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_InsecureChannelCredentials__set_state(InsecureChannelCredentials __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_InsecureChannelCredentials__set_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = InsecureChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_InsecureChannelCredentials__set_state(<InsecureChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_InsecureChannelCredentials__set_state(<InsecureChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_InsecureChannelCredentials__set_state(InsecureChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_InsecureChannelCredentials(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_InsecureChannelCredentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_InsecureChannelCredentials__set_state(<InsecureChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_InsecureChannelCredentials__set_state(InsecureChannelCredentials __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_InsecureChannelCredentials__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  unsigned int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_InsecureChannelCredentials__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_InsecureChannelCredentials__set_state(InsecureChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 > 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_InsecureChannelCredentials__set_state(InsecureChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_update); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(10, 13, __pyx_L1_error)
    }
    __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_InsecureChannelCredentials__set_state(InsecureChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_InsecureChannelCredentials__set_state(<InsecureChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_InsecureChannelCredentials__set_state(InsecureChannelCredentials __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_InsecureChannelCredentials__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle__Tag(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_193__pyx_unpickle__Tag(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_193__pyx_unpickle__Tag = {"__pyx_unpickle__Tag", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_193__pyx_unpickle__Tag, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_193__pyx_unpickle__Tag(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle__Tag (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__Tag", 1, 3, 3, 1); __PYX_ERR(10, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__Tag", 1, 3, 3, 2); __PYX_ERR(10, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle__Tag") < 0)) __PYX_ERR(10, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__Tag", 1, 3, 3, __pyx_nargs); __PYX_ERR(10, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle__Tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_192__pyx_unpickle__Tag(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_192__pyx_unpickle__Tag(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle__Tag", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__105, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = _Tag.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(10, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = _Tag.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(10, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = _Tag.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__Tag), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = _Tag.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = _Tag.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle__Tag__set_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = _Tag.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle__Tag(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle__Tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle__Tag__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  unsigned int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle__Tag__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 > 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "(tree fragment)":13
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_update); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(10, 13, __pyx_L1_error)
    }
    __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle__Tag__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_CensusContext(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_195__pyx_unpickle_CensusContext(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_195__pyx_unpickle_CensusContext = {"__pyx_unpickle_CensusContext", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_195__pyx_unpickle_CensusContext, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_195__pyx_unpickle_CensusContext(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_CensusContext (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_CensusContext", 1, 3, 3, 1); __PYX_ERR(10, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_CensusContext", 1, 3, 3, 2); __PYX_ERR(10, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_CensusContext") < 0)) __PYX_ERR(10, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_CensusContext", 1, 3, 3, __pyx_nargs); __PYX_ERR(10, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_CensusContext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_194__pyx_unpickle_CensusContext(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_194__pyx_unpickle_CensusContext(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_CensusContext", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__105, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = CensusContext.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(10, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = CensusContext.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(10, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = CensusContext.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_CensusContext__set_state(<CensusContext> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = CensusContext.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_CensusContext__set_state(<CensusContext> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = CensusContext.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_CensusContext__set_state(<CensusContext> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_CensusContext__set_state(CensusContext __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_CensusContext__set_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = CensusContext.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_CensusContext__set_state(<CensusContext> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_CensusContext__set_state(<CensusContext> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_CensusContext__set_state(CensusContext __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_CensusContext(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_CensusContext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_CensusContext__set_state(<CensusContext> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_CensusContext__set_state(CensusContext __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_CensusContext__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  unsigned int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_CensusContext__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_CensusContext__set_state(CensusContext __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 > 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_CensusContext__set_state(CensusContext __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_update); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(10, 13, __pyx_L1_error)
    }
    __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_CensusContext__set_state(CensusContext __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_CensusContext__set_state(<CensusContext> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_CensusContext__set_state(CensusContext __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_CensusContext__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_AioServer(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_197__pyx_unpickle_AioServer(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_197__pyx_unpickle_AioServer = {"__pyx_unpickle_AioServer", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_197__pyx_unpickle_AioServer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_197__pyx_unpickle_AioServer(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_AioServer (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AioServer", 1, 3, 3, 1); __PYX_ERR(10, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AioServer", 1, 3, 3, 2); __PYX_ERR(10, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_AioServer") < 0)) __PYX_ERR(10, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AioServer", 1, 3, 3, __pyx_nargs); __PYX_ERR(10, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_AioServer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_196__pyx_unpickle_AioServer(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_196__pyx_unpickle_AioServer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  unsigned int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AioServer", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xa3b308d, 0x7117f7c, 0xa3714dd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__106, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xa3b308d, 0x7117f7c, 0xa3714dd):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))" % __pyx_checksum
 *     __pyx_result = AioServer.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(10, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xa3b308d, 0x7117f7c, 0xa3714dd):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = AioServer.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(10, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xa3b308d, 0x7117f7c, 0xa3714dd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))" % __pyx_checksum
 *     __pyx_result = AioServer.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AioServer__set_state(<AioServer> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))" % __pyx_checksum
 *     __pyx_result = AioServer.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AioServer__set_state(<AioServer> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = AioServer.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AioServer__set_state(<AioServer> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_AioServer__set_state(AioServer __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_AioServer__set_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))" % __pyx_checksum
 *     __pyx_result = AioServer.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AioServer__set_state(<AioServer> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AioServer__set_state(<AioServer> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_AioServer__set_state(AioServer __pyx_result, tuple __pyx_state):
 *     __pyx_result._crash_exception = __pyx_state[0]; __pyx_result._generic_handlers = __pyx_state[1]; __pyx_result._interceptors = __pyx_state[2]; __pyx_result._limiter = __pyx_state[3]; __pyx_result._loop = __pyx_state[4]; __pyx_result._server = __pyx_state[5]; __pyx_result._serving_task = __pyx_state[6]; __pyx_result._shutdown_callback_wrapper = __pyx_state[7]; __pyx_result._shutdown_completed = __pyx_state[8]; __pyx_result._shutdown_lock = __pyx_state[9]; __pyx_result._status = __pyx_state[10]; __pyx_result._thread_pool = __pyx_state[11]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_AioServer(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_AioServer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_AioServer__set_state(<AioServer> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AioServer__set_state(AioServer __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._crash_exception = __pyx_state[0]; __pyx_result._generic_handlers = __pyx_state[1]; __pyx_result._interceptors = __pyx_state[2]; __pyx_result._limiter = __pyx_state[3]; __pyx_result._loop = __pyx_state[4]; __pyx_result._server = __pyx_state[5]; __pyx_result._serving_task = __pyx_state[6]; __pyx_result._shutdown_callback_wrapper = __pyx_state[7]; __pyx_result._shutdown_completed = __pyx_state[8]; __pyx_result._shutdown_lock = __pyx_state[9]; __pyx_result._status = __pyx_state[10]; __pyx_result._thread_pool = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_AioServer__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  unsigned int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AioServer__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_AioServer__set_state(AioServer __pyx_result, tuple __pyx_state):
 *     __pyx_result._crash_exception = __pyx_state[0]; __pyx_result._generic_handlers = __pyx_state[1]; __pyx_result._interceptors = __pyx_state[2]; __pyx_result._limiter = __pyx_state[3]; __pyx_result._loop = __pyx_state[4]; __pyx_result._server = __pyx_state[5]; __pyx_result._serving_task = __pyx_state[6]; __pyx_result._shutdown_callback_wrapper = __pyx_state[7]; __pyx_result._shutdown_completed = __pyx_state[8]; __pyx_result._shutdown_lock = __pyx_state[9]; __pyx_result._status = __pyx_state[10]; __pyx_result._thread_pool = __pyx_state[11]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[12])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_crash_exception);
  __Pyx_DECREF(__pyx_v___pyx_result->_crash_exception);
  __pyx_v___pyx_result->_crash_exception = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_generic_handlers);
  __Pyx_DECREF(__pyx_v___pyx_result->_generic_handlers);
  __pyx_v___pyx_result->_generic_handlers = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_interceptors);
  __Pyx_DECREF(__pyx_v___pyx_result->_interceptors);
  __pyx_v___pyx_result->_interceptors = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter))))) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->_limiter);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->_limiter);
  __pyx_v___pyx_result->_limiter = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_loop);
  __Pyx_DECREF(__pyx_v___pyx_result->_loop);
  __pyx_v___pyx_result->_loop = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4grpc_7_cython_6cygrpc_Server))))) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->_server);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->_server);
  __pyx_v___pyx_result->_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_serving_task);
  __Pyx_DECREF(__pyx_v___pyx_result->_serving_task);
  __pyx_v___pyx_result->_serving_task = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper))))) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->_shutdown_callback_wrapper);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->_shutdown_callback_wrapper);
  __pyx_v___pyx_result->_shutdown_callback_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_shutdown_completed);
  __Pyx_DECREF(__pyx_v___pyx_result->_shutdown_completed);
  __pyx_v___pyx_result->_shutdown_completed = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_shutdown_lock);
  __Pyx_DECREF(__pyx_v___pyx_result->_shutdown_lock);
  __pyx_v___pyx_result->_shutdown_lock = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)__Pyx_PyInt_As_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->_status = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 11, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_thread_pool);
  __Pyx_DECREF(__pyx_v___pyx_result->_thread_pool);
  __pyx_v___pyx_result->_thread_pool = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_AioServer__set_state(AioServer __pyx_result, tuple __pyx_state):
 *     __pyx_result._crash_exception = __pyx_state[0]; __pyx_result._generic_handlers = __pyx_state[1]; __pyx_result._interceptors = __pyx_state[2]; __pyx_result._limiter = __pyx_state[3]; __pyx_result._loop = __pyx_state[4]; __pyx_result._server = __pyx_state[5]; __pyx_result._serving_task = __pyx_state[6]; __pyx_result._shutdown_callback_wrapper = __pyx_state[7]; __pyx_result._shutdown_completed = __pyx_state[8]; __pyx_result._shutdown_lock = __pyx_state[9]; __pyx_result._status = __pyx_state[10]; __pyx_result._thread_pool = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[12])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(10, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(10, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 12);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(10, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result._crash_exception = __pyx_state[0]; __pyx_result._generic_handlers = __pyx_state[1]; __pyx_result._interceptors = __pyx_state[2]; __pyx_result._limiter = __pyx_state[3]; __pyx_result._loop = __pyx_state[4]; __pyx_result._server = __pyx_state[5]; __pyx_result._serving_task = __pyx_state[6]; __pyx_result._shutdown_callback_wrapper = __pyx_state[7]; __pyx_result._shutdown_completed = __pyx_state[8]; __pyx_result._shutdown_lock = __pyx_state[9]; __pyx_result._status = __pyx_state[10]; __pyx_result._thread_pool = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[12])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(10, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 12, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_AioServer__set_state(AioServer __pyx_result, tuple __pyx_state):
 *     __pyx_result._crash_exception = __pyx_state[0]; __pyx_result._generic_handlers = __pyx_state[1]; __pyx_result._interceptors = __pyx_state[2]; __pyx_result._limiter = __pyx_state[3]; __pyx_result._loop = __pyx_state[4]; __pyx_result._server = __pyx_state[5]; __pyx_result._serving_task = __pyx_state[6]; __pyx_result._shutdown_callback_wrapper = __pyx_state[7]; __pyx_result._shutdown_completed = __pyx_state[8]; __pyx_result._shutdown_lock = __pyx_state[9]; __pyx_result._status = __pyx_state[10]; __pyx_result._thread_pool = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[12])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_AioServer__set_state(<AioServer> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AioServer__set_state(AioServer __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._crash_exception = __pyx_state[0]; __pyx_result._generic_handlers = __pyx_state[1]; __pyx_result._interceptors = __pyx_state[2]; __pyx_result._limiter = __pyx_state[3]; __pyx_result._loop = __pyx_state[4]; __pyx_result._server = __pyx_state[5]; __pyx_result._serving_task = __pyx_state[6]; __pyx_result._shutdown_callback_wrapper = __pyx_state[7]; __pyx_result._shutdown_completed = __pyx_state[8]; __pyx_result._shutdown_lock = __pyx_state[9]; __pyx_result._status = __pyx_state[10]; __pyx_result._thread_pool = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_AioServer__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArg __pyx_vtable_4grpc_7_cython_6cygrpc__ChannelArg;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArg(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArg;
  new((void*)&(p->c_argument)) grpc_arg();
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArg(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArg) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  __Pyx_call_destructor(p->c_argument);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__ChannelArg[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__ChannelArg_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArg},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__ChannelArg},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArg},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__ChannelArg_spec = {
  "grpc._cython.cygrpc._ChannelArg",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc__ChannelArg_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__ChannelArg = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_ChannelArg", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArg, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__ChannelArg, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArg, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs __pyx_vtable_4grpc_7_cython_6cygrpc__ChannelArgs;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArgs(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArgs;
  new((void*)&(p->_c_arguments)) grpc_channel_args();
  p->_arguments = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_channel_args = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArgs(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArgs) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  __Pyx_call_destructor(p->_c_arguments);
  Py_CLEAR(p->_arguments);
  Py_CLEAR(p->_channel_args);
  Py_CLEAR(p->_references);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ChannelArgs(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)o;
  if (p->_arguments) {
    e = (*v)(p->_arguments, a); if (e) return e;
  }
  if (p->_channel_args) {
    e = (*v)(p->_channel_args, a); if (e) return e;
  }
  if (p->_references) {
    e = (*v)(p->_references, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__ChannelArgs(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)o;
  tmp = ((PyObject*)p->_arguments);
  p->_arguments = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_channel_args);
  p->_channel_args = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_references);
  p->_references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_12_ChannelArgs__arguments(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_10_arguments_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_12_ChannelArgs__references(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_11_references_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__ChannelArgs[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__ChannelArgs[] = {
  {(char *)"_arguments", __pyx_getprop_4grpc_7_cython_6cygrpc_12_ChannelArgs__arguments, 0, (char *)0, 0},
  {(char *)"_references", __pyx_getprop_4grpc_7_cython_6cygrpc_12_ChannelArgs__references, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArgs},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__ChannelArgs},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__ChannelArgs},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__ChannelArgs},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__ChannelArgs},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArgs},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs_spec = {
  "grpc._cython.cygrpc._ChannelArgs",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_ChannelArgs", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArgs, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ChannelArgs, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__ChannelArgs, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__ChannelArgs, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__ChannelArgs, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArgs, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Call(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)o);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_4Call_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Call(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Call) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_4Call_15__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->references);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_Call(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)o;
  if (p->references) {
    e = (*v)(p->references, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_Call(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)o;
  tmp = ((PyObject*)p->references);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_4Call_is_valid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_4Call_8is_valid_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_Call[] = {
  {"_start_batch", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_3_start_batch, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"start_client_batch", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_5start_client_batch, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"start_server_batch", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_7start_server_batch, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"cancel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_9cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_credentials", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_11set_credentials, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"peer", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_13peer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_custom_op_on_c_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_17_custom_op_on_c_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_19__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_21__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_Call[] = {
  {(char *)"is_valid", __pyx_getprop_4grpc_7_cython_6cygrpc_4Call_is_valid, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_Call_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Call},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_Call},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_Call},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_Call},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_Call},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_Call},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_Call_spec = {
  "grpc._cython.cygrpc.Call",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_Call_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_Call = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""Call", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Call, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_Call, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_Call, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_Call, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_Call, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_Call, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState __pyx_vtable_4grpc_7_cython_6cygrpc__CallState;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__CallState(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc__CallState;
  p->due = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->call_tracer_capsule = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__CallState(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__CallState) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->due);
  Py_CLEAR(p->call_tracer_capsule);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__CallState(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)o;
  if (p->due) {
    e = (*v)(p->due, a); if (e) return e;
  }
  if (p->call_tracer_capsule) {
    e = (*v)(p->call_tracer_capsule, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__CallState(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)o;
  tmp = ((PyObject*)p->due);
  p->due = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->call_tracer_capsule);
  p->call_tracer_capsule = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__CallState[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__CallState_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__CallState},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__CallState},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__CallState},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__CallState},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__CallState},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__CallState_spec = {
  "grpc._cython.cygrpc._CallState",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__CallState_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__CallState = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_CallState", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__CallState, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__CallState, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__CallState, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__CallState, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__CallState, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelState(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)o);
  p->target = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->condition = Py_None; Py_INCREF(Py_None);
  p->open = Py_None; Py_INCREF(Py_None);
  p->closed_reason = Py_None; Py_INCREF(Py_None);
  p->integrated_call_states = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->segregated_call_states = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->connectivity_due = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelState(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelState) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->target);
  Py_CLEAR(p->condition);
  Py_CLEAR(p->open);
  Py_CLEAR(p->closed_reason);
  Py_CLEAR(p->integrated_call_states);
  Py_CLEAR(p->segregated_call_states);
  Py_CLEAR(p->connectivity_due);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ChannelState(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)o;
  if (p->condition) {
    e = (*v)(p->condition, a); if (e) return e;
  }
  if (p->open) {
    e = (*v)(p->open, a); if (e) return e;
  }
  if (p->closed_reason) {
    e = (*v)(p->closed_reason, a); if (e) return e;
  }
  if (p->integrated_call_states) {
    e = (*v)(p->integrated_call_states, a); if (e) return e;
  }
  if (p->segregated_call_states) {
    e = (*v)(p->segregated_call_states, a); if (e) return e;
  }
  if (p->connectivity_due) {
    e = (*v)(p->connectivity_due, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__ChannelState(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)o;
  tmp = ((PyObject*)p->condition);
  p->condition = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->open);
  p->open = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->closed_reason);
  p->closed_reason = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->integrated_call_states);
  p->integrated_call_states = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->segregated_call_states);
  p->segregated_call_states = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->connectivity_due);
  p->connectivity_due = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__ChannelState[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__ChannelState_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelState},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__ChannelState},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__ChannelState},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__ChannelState},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelState},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__ChannelState_spec = {
  "grpc._cython.cygrpc._ChannelState",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__ChannelState_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__ChannelState = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_ChannelState", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelState, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ChannelState, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__ChannelState, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__ChannelState, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelState, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_IntegratedCall(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)o);
  p->_channel_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  p->_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_IntegratedCall(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_IntegratedCall) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_channel_state);
  Py_CLEAR(p->_call_state);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_IntegratedCall(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)o;
  if (p->_channel_state) {
    e = (*v)(((PyObject *)p->_channel_state), a); if (e) return e;
  }
  if (p->_call_state) {
    e = (*v)(((PyObject *)p->_call_state), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_IntegratedCall(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)o;
  tmp = ((PyObject*)p->_channel_state);
  p->_channel_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_call_state);
  p->_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_IntegratedCall[] = {
  {"operate", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_3operate, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"cancel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_5cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_IntegratedCall},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_IntegratedCall},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_IntegratedCall},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_IntegratedCall},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_IntegratedCall},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall_spec = {
  "grpc._cython.cygrpc.IntegratedCall",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""IntegratedCall", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_IntegratedCall, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_IntegratedCall, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_IntegratedCall, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_IntegratedCall, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_IntegratedCall, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SegregatedCall(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)o);
  p->_channel_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  p->_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SegregatedCall(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SegregatedCall) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_channel_state);
  Py_CLEAR(p->_call_state);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SegregatedCall(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)o;
  if (p->_channel_state) {
    e = (*v)(((PyObject *)p->_channel_state), a); if (e) return e;
  }
  if (p->_call_state) {
    e = (*v)(((PyObject *)p->_call_state), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_SegregatedCall(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)o;
  tmp = ((PyObject*)p->_channel_state);
  p->_channel_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_call_state);
  p->_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SegregatedCall[] = {
  {"operate", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_3operate, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"cancel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_5cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"next_event", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_7next_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SegregatedCall},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_SegregatedCall},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_SegregatedCall},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SegregatedCall},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SegregatedCall},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall_spec = {
  "grpc._cython.cygrpc.SegregatedCall",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SegregatedCall", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SegregatedCall, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SegregatedCall, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_SegregatedCall, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SegregatedCall, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SegregatedCall, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Channel(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)o);
  p->_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  p->_registered_call_handles = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_arguments = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Channel(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Channel) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_state);
  Py_CLEAR(p->_registered_call_handles);
  Py_CLEAR(p->_arguments);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_Channel(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)o;
  if (p->_state) {
    e = (*v)(((PyObject *)p->_state), a); if (e) return e;
  }
  if (p->_registered_call_handles) {
    e = (*v)(p->_registered_call_handles, a); if (e) return e;
  }
  if (p->_arguments) {
    e = (*v)(p->_arguments, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_Channel(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)o;
  tmp = ((PyObject*)p->_state);
  p->_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_registered_call_handles);
  p->_registered_call_handles = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_arguments);
  p->_arguments = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_Channel[] = {
  {"target", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_3target, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"integrated_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_5integrated_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"next_call_event", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_7next_call_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"segregated_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_9segregated_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"check_connectivity_state", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_11check_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"watch_connectivity_state", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_13watch_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"close", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_15close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"close_on_fork", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_17close_on_fork, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_registered_call_handle", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_19get_registered_call_handle, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_7Channel_18get_registered_call_handle},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_21__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_23__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_Channel_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Channel},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_Channel},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_Channel},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_Channel},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_Channel},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_Channel_spec = {
  "grpc._cython.cygrpc.Channel",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_Channel_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_Channel = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""Channel", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Channel, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_Channel, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_Channel, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_Channel, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_Channel, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallHandle(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)o);
  p->method = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallHandle(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallHandle) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->method);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallHandle(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)o;
  if (p->method) {
    e = (*v)(p->method, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_CallHandle(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)o;
  tmp = ((PyObject*)p->method);
  p->method = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_10CallHandle_call_handle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_11call_handle_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CallHandle[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_CallHandle[] = {
  {(char *)"call_handle", __pyx_getprop_4grpc_7_cython_6cygrpc_10CallHandle_call_handle, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CallHandle_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallHandle},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallHandle},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_CallHandle},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CallHandle},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_CallHandle},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CallHandle},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CallHandle_spec = {
  "grpc._cython.cygrpc.CallHandle",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_CallHandle_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CallHandle = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CallHandle", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallHandle, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallHandle, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_CallHandle, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CallHandle, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_CallHandle, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CallHandle, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_CallCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallCredentials(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallCredentials;
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallCredentials(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CallCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CallCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CallCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CallCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CallCredentials_spec = {
  "grpc._cython.cygrpc.CallCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_CallCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CallCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CallCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CallCredentials, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CallCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_CallCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;
  p->_metadata_plugin = Py_None; Py_INCREF(Py_None);
  p->_name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_metadata_plugin);
  Py_CLEAR(p->_name);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallCredentials(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials)); if (e) return e;
  if (p->_metadata_plugin) {
    e = (*v)(p->_metadata_plugin, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials);
  tmp = ((PyObject*)p->_metadata_plugin);
  p->_metadata_plugin = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials__metadata_plugin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_16_metadata_plugin_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials__name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5_name_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials[] = {
  {(char *)"_metadata_plugin", __pyx_getprop_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials__metadata_plugin, 0, (char *)0, 0},
  {(char *)"_name", __pyx_getprop_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials__name, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials_spec = {
  "grpc._cython.cygrpc.MetadataPluginCallCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""MetadataPluginCallCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompositeCallCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_CompositeCallCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeCallCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_CallCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeCallCredentials;
  p->_call_credentialses = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeCallCredentials(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeCallCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_call_credentialses);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallCredentials(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeCallCredentials(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeCallCredentials)); if (e) return e;
  if (p->_call_credentialses) {
    e = (*v)(p->_call_credentialses, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeCallCredentials(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeCallCredentials);
  tmp = ((PyObject*)p->_call_credentialses);
  p->_call_credentialses = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_24CompositeCallCredentials__call_credentialses(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_19_call_credentialses_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CompositeCallCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_CompositeCallCredentials[] = {
  {(char *)"_call_credentialses", __pyx_getprop_4grpc_7_cython_6cygrpc_24CompositeCallCredentials__call_credentialses, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeCallCredentials},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeCallCredentials},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeCallCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CompositeCallCredentials},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_CompositeCallCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeCallCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials_spec = {
  "grpc._cython.cygrpc.CompositeCallCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CompositeCallCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeCallCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeCallCredentials, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeCallCredentials, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CompositeCallCredentials, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_CompositeCallCredentials, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeCallCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_ChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials_spec = {
  "grpc._cython.cygrpc.ChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU},
  {Py_nb_int, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_3__int__},
  #if PY_MAJOR_VERSION < 3
  {Py_nb_long, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_3__int__},
  #endif
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU_spec = {
  "grpc._cython.cygrpc.SSLSessionCacheLRU",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU_slots,
};
#else

static PyNumberMethods __pyx_tp_as_number_SSLSessionCacheLRU = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_bool*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  __pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_3__int__, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  __pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_3__int__, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SSLSessionCacheLRU", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  &__pyx_tp_as_number_SSLSessionCacheLRU, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SSLChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_SSLChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SSLChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_SSLChannelCredentials;
  p->_pem_root_certificates = Py_None; Py_INCREF(Py_None);
  p->_private_key = Py_None; Py_INCREF(Py_None);
  p->_certificate_chain = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLChannelCredentials(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLChannelCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_pem_root_certificates);
  Py_CLEAR(p->_private_key);
  Py_CLEAR(p->_certificate_chain);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SSLChannelCredentials(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SSLChannelCredentials)); if (e) return e;
  if (p->_pem_root_certificates) {
    e = (*v)(p->_pem_root_certificates, a); if (e) return e;
  }
  if (p->_private_key) {
    e = (*v)(p->_private_key, a); if (e) return e;
  }
  if (p->_certificate_chain) {
    e = (*v)(p->_certificate_chain, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_SSLChannelCredentials(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_SSLChannelCredentials);
  tmp = ((PyObject*)p->_pem_root_certificates);
  p->_pem_root_certificates = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_private_key);
  p->_private_key = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_certificate_chain);
  p->_certificate_chain = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_21SSLChannelCredentials__pem_root_certificates(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_22_pem_root_certificates_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_21SSLChannelCredentials__private_key(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_12_private_key_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_21SSLChannelCredentials__certificate_chain(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_18_certificate_chain_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SSLChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_SSLChannelCredentials[] = {
  {(char *)"_pem_root_certificates", __pyx_getprop_4grpc_7_cython_6cygrpc_21SSLChannelCredentials__pem_root_certificates, 0, (char *)0, 0},
  {(char *)"_private_key", __pyx_getprop_4grpc_7_cython_6cygrpc_21SSLChannelCredentials__private_key, 0, (char *)0, 0},
  {(char *)"_certificate_chain", __pyx_getprop_4grpc_7_cython_6cygrpc_21SSLChannelCredentials__certificate_chain, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLChannelCredentials},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_SSLChannelCredentials},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_SSLChannelCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SSLChannelCredentials},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_SSLChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SSLChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials_spec = {
  "grpc._cython.cygrpc.SSLChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SSLChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SSLChannelCredentials, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_SSLChannelCredentials, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SSLChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_SSLChannelCredentials, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SSLChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompositeChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;
  p->_call_credentialses = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_channel_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeChannelCredentials(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeChannelCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_call_credentialses);
  Py_CLEAR(p->_channel_credentials);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeChannelCredentials(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeChannelCredentials)); if (e) return e;
  if (p->_call_credentialses) {
    e = (*v)(p->_call_credentialses, a); if (e) return e;
  }
  if (p->_channel_credentials) {
    e = (*v)(((PyObject *)p->_channel_credentials), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeChannelCredentials(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeChannelCredentials);
  tmp = ((PyObject*)p->_call_credentialses);
  p->_call_credentialses = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_channel_credentials);
  p->_channel_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials__call_credentialses(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_19_call_credentialses_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials__channel_credentials(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_20_channel_credentials_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CompositeChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_CompositeChannelCredentials[] = {
  {(char *)"_call_credentialses", __pyx_getprop_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials__call_credentialses, 0, (char *)0, 0},
  {(char *)"_channel_credentials", __pyx_getprop_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials__channel_credentials, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeChannelCredentials},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeChannelCredentials},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeChannelCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CompositeChannelCredentials},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_CompositeChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials_spec = {
  "grpc._cython.cygrpc.CompositeChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CompositeChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeChannelCredentials, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeChannelCredentials, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CompositeChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_CompositeChannelCredentials, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_XDSChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_XDSChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_XDSChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_XDSChannelCredentials;
  p->_fallback_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_XDSChannelCredentials(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_XDSChannelCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_fallback_credentials);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_XDSChannelCredentials(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_XDSChannelCredentials)); if (e) return e;
  if (p->_fallback_credentials) {
    e = (*v)(((PyObject *)p->_fallback_credentials), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_XDSChannelCredentials(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_XDSChannelCredentials);
  tmp = ((PyObject*)p->_fallback_credentials);
  p->_fallback_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_21XDSChannelCredentials__fallback_credentials(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_21_fallback_credentials_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_XDSChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_XDSChannelCredentials[] = {
  {(char *)"_fallback_credentials", __pyx_getprop_4grpc_7_cython_6cygrpc_21XDSChannelCredentials__fallback_credentials, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_XDSChannelCredentials},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_XDSChannelCredentials},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_XDSChannelCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_XDSChannelCredentials},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_XDSChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_XDSChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials_spec = {
  "grpc._cython.cygrpc.XDSChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""XDSChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_XDSChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_XDSChannelCredentials, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_XDSChannelCredentials, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_XDSChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_XDSChannelCredentials, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_XDSChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCertificateConfig(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)o);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCertificateConfig(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCertificateConfig) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->references);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerCertificateConfig(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)o;
  if (p->references) {
    e = (*v)(p->references, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerCertificateConfig(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)o;
  tmp = ((PyObject*)p->references);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ServerCertificateConfig[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCertificateConfig},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerCertificateConfig},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerCertificateConfig},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ServerCertificateConfig},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCertificateConfig},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig_spec = {
  "grpc._cython.cygrpc.ServerCertificateConfig",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ServerCertificateConfig", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCertificateConfig, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerCertificateConfig, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerCertificateConfig, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ServerCertificateConfig, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCertificateConfig, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCredentials(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)o);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->initial_cert_config = Py_None; Py_INCREF(Py_None);
  p->cert_config_fetcher = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCredentials(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->references);
  Py_CLEAR(p->initial_cert_config);
  Py_CLEAR(p->cert_config_fetcher);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerCredentials(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)o;
  if (p->references) {
    e = (*v)(p->references, a); if (e) return e;
  }
  if (p->initial_cert_config) {
    e = (*v)(p->initial_cert_config, a); if (e) return e;
  }
  if (p->cert_config_fetcher) {
    e = (*v)(p->cert_config_fetcher, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerCredentials(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)o;
  tmp = ((PyObject*)p->references);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->initial_cert_config);
  p->initial_cert_config = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->cert_config_fetcher);
  p->cert_config_fetcher = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ServerCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCredentials},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerCredentials},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ServerCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials_spec = {
  "grpc._cython.cygrpc.ServerCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ServerCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerCredentials, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerCredentials, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ServerCredentials, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_LocalChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_LocalChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_LocalChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_LocalChannelCredentials;
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_LocalChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials_slots[] = {
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_LocalChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_LocalChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials_spec = {
  "grpc._cython.cygrpc.LocalChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""LocalChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_LocalChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_LocalChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ALTSChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ALTSChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ALTSChannelCredentials(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ALTSChannelCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ALTSChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ALTSChannelCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ALTSChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ALTSChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials_spec = {
  "grpc._cython.cygrpc.ALTSChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ALTSChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ALTSChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ALTSChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ALTSChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__LatentEventArg(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)o);
  p->deadline = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__LatentEventArg(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__LatentEventArg) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->deadline);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__LatentEventArg(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)o;
  if (p->deadline) {
    e = (*v)(p->deadline, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__LatentEventArg(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)o;
  tmp = ((PyObject*)p->deadline);
  p->deadline = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__LatentEventArg},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__LatentEventArg},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__LatentEventArg},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__LatentEventArg},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg_spec = {
  "grpc._cython.cygrpc._LatentEventArg",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_LatentEventArg", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__LatentEventArg, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__LatentEventArg, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__LatentEventArg, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__LatentEventArg, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompletionQueue __pyx_vtable_4grpc_7_cython_6cygrpc_CompletionQueue;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompletionQueue(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_CompletionQueue;
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompletionQueue(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompletionQueue) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_11__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CompletionQueue[] = {
  {"_internal_poll", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_3_internal_poll, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"poll", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_5poll, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"shutdown", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_7shutdown, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"clear", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_9clear, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_13__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_15__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompletionQueue},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CompletionQueue},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CompletionQueue},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue_spec = {
  "grpc._cython.cygrpc.CompletionQueue",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CompletionQueue", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompletionQueue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CompletionQueue, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CompletionQueue, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_BaseEvent_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_BaseEvent_spec = {
  "grpc._cython.cygrpc.BaseEvent",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_BaseEvent_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_BaseEvent = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""BaseEvent", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ConnectivityEvent(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)o);
  p->tag = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ConnectivityEvent(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ConnectivityEvent) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tag);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ConnectivityEvent(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ConnectivityEvent)); if (e) return e;
  if (p->tag) {
    e = (*v)(p->tag, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_ConnectivityEvent(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_ConnectivityEvent);
  tmp = ((PyObject*)p->tag);
  p->tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_17ConnectivityEvent_completion_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_15completion_type_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_17ConnectivityEvent_success(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_7success_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_17ConnectivityEvent_tag(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3tag_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ConnectivityEvent[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_ConnectivityEvent[] = {
  {(char *)"completion_type", __pyx_getprop_4grpc_7_cython_6cygrpc_17ConnectivityEvent_completion_type, 0, (char *)0, 0},
  {(char *)"success", __pyx_getprop_4grpc_7_cython_6cygrpc_17ConnectivityEvent_success, 0, (char *)0, 0},
  {(char *)"tag", __pyx_getprop_4grpc_7_cython_6cygrpc_17ConnectivityEvent_tag, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ConnectivityEvent},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_ConnectivityEvent},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_ConnectivityEvent},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ConnectivityEvent},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_ConnectivityEvent},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ConnectivityEvent},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent_spec = {
  "grpc._cython.cygrpc.ConnectivityEvent",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ConnectivityEvent", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ConnectivityEvent, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ConnectivityEvent, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_ConnectivityEvent, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ConnectivityEvent, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_ConnectivityEvent, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ConnectivityEvent, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_RequestCallEvent(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)o);
  p->tag = Py_None; Py_INCREF(Py_None);
  p->call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)Py_None); Py_INCREF(Py_None);
  p->call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)Py_None); Py_INCREF(Py_None);
  p->invocation_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RequestCallEvent(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RequestCallEvent) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tag);
  Py_CLEAR(p->call);
  Py_CLEAR(p->call_details);
  Py_CLEAR(p->invocation_metadata);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_RequestCallEvent(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_RequestCallEvent)); if (e) return e;
  if (p->tag) {
    e = (*v)(p->tag, a); if (e) return e;
  }
  if (p->call) {
    e = (*v)(((PyObject *)p->call), a); if (e) return e;
  }
  if (p->call_details) {
    e = (*v)(((PyObject *)p->call_details), a); if (e) return e;
  }
  if (p->invocation_metadata) {
    e = (*v)(p->invocation_metadata, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_RequestCallEvent(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_RequestCallEvent);
  tmp = ((PyObject*)p->tag);
  p->tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->call);
  p->call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->call_details);
  p->call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->invocation_metadata);
  p->invocation_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_completion_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_15completion_type_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_success(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_7success_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_tag(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_3tag_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_call(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_4call_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_call_details(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_12call_details_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_invocation_metadata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_19invocation_metadata_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_RequestCallEvent[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_RequestCallEvent[] = {
  {(char *)"completion_type", __pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_completion_type, 0, (char *)0, 0},
  {(char *)"success", __pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_success, 0, (char *)0, 0},
  {(char *)"tag", __pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_tag, 0, (char *)0, 0},
  {(char *)"call", __pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_call, 0, (char *)0, 0},
  {(char *)"call_details", __pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_call_details, 0, (char *)0, 0},
  {(char *)"invocation_metadata", __pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_invocation_metadata, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RequestCallEvent},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_RequestCallEvent},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_RequestCallEvent},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_RequestCallEvent},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_RequestCallEvent},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_RequestCallEvent},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent_spec = {
  "grpc._cython.cygrpc.RequestCallEvent",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""RequestCallEvent", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RequestCallEvent, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_RequestCallEvent, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_RequestCallEvent, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_RequestCallEvent, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_RequestCallEvent, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_RequestCallEvent, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_BatchOperationEvent(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)o);
  p->tag = Py_None; Py_INCREF(Py_None);
  p->batch_operations = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BatchOperationEvent(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BatchOperationEvent) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tag);
  Py_CLEAR(p->batch_operations);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_BatchOperationEvent(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_BatchOperationEvent)); if (e) return e;
  if (p->tag) {
    e = (*v)(p->tag, a); if (e) return e;
  }
  if (p->batch_operations) {
    e = (*v)(p->batch_operations, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_BatchOperationEvent(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_BatchOperationEvent);
  tmp = ((PyObject*)p->tag);
  p->tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->batch_operations);
  p->batch_operations = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_completion_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_15completion_type_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_success(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_7success_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_tag(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3tag_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_batch_operations(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_16batch_operations_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_BatchOperationEvent[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_BatchOperationEvent[] = {
  {(char *)"completion_type", __pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_completion_type, 0, (char *)0, 0},
  {(char *)"success", __pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_success, 0, (char *)0, 0},
  {(char *)"tag", __pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_tag, 0, (char *)0, 0},
  {(char *)"batch_operations", __pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_batch_operations, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BatchOperationEvent},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_BatchOperationEvent},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_BatchOperationEvent},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_BatchOperationEvent},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_BatchOperationEvent},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_BatchOperationEvent},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent_spec = {
  "grpc._cython.cygrpc.BatchOperationEvent",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""BatchOperationEvent", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BatchOperationEvent, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_BatchOperationEvent, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_BatchOperationEvent, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_BatchOperationEvent, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_BatchOperationEvent, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_BatchOperationEvent, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerShutdownEvent(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)o);
  p->tag = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerShutdownEvent(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerShutdownEvent) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tag);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerShutdownEvent(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerShutdownEvent)); if (e) return e;
  if (p->tag) {
    e = (*v)(p->tag, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerShutdownEvent(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerShutdownEvent);
  tmp = ((PyObject*)p->tag);
  p->tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_completion_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_15completion_type_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_success(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_7success_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_tag(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3tag_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ServerShutdownEvent[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_ServerShutdownEvent[] = {
  {(char *)"completion_type", __pyx_getprop_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_completion_type, 0, (char *)0, 0},
  {(char *)"success", __pyx_getprop_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_success, 0, (char *)0, 0},
  {(char *)"tag", __pyx_getprop_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_tag, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerShutdownEvent},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerShutdownEvent},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerShutdownEvent},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ServerShutdownEvent},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_ServerShutdownEvent},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerShutdownEvent},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent_spec = {
  "grpc._cython.cygrpc.ServerShutdownEvent",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ServerShutdownEvent", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerShutdownEvent, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerShutdownEvent, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerShutdownEvent, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ServerShutdownEvent, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_ServerShutdownEvent, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ServerShutdownEvent, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_vtable_4grpc_7_cython_6cygrpc_Operation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  new((void*)&(p->c_op)) grpc_op();
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  __Pyx_call_destructor(p->c_op);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_Operation[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_Operation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_Operation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_Operation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_Operation_spec = {
  "grpc._cython.cygrpc.Operation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_Operation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_Operation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""Operation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_Operation, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation __pyx_vtable_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;
  p->_initial_metadata = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_initial_metadata);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation)); if (e) return e;
  if (p->_initial_metadata) {
    e = (*v)(p->_initial_metadata, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);
  tmp = ((PyObject*)p->_initial_metadata);
  p->_initial_metadata = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation__initial_metadata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_17_initial_metadata_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation[] = {
  {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation[] = {
  {(char *)"_initial_metadata", __pyx_getprop_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation__initial_metadata, 0, (char *)0, 0},
  {(char *)"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation__flags, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation_spec = {
  "grpc._cython.cygrpc.SendInitialMetadataOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SendInitialMetadataOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendMessageOperation __pyx_vtable_4grpc_7_cython_6cygrpc_SendMessageOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendMessageOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendMessageOperation;
  p->_message = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendMessageOperation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendMessageOperation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  Py_CLEAR(p->_message);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_20SendMessageOperation__message(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_8_message_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_20SendMessageOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SendMessageOperation[] = {
  {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_SendMessageOperation[] = {
  {(char *)"_message", __pyx_getprop_4grpc_7_cython_6cygrpc_20SendMessageOperation__message, 0, (char *)0, 0},
  {(char *)"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_20SendMessageOperation__flags, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendMessageOperation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SendMessageOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_SendMessageOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SendMessageOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation_spec = {
  "grpc._cython.cygrpc.SendMessageOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SendMessageOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendMessageOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SendMessageOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_SendMessageOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SendMessageOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation __pyx_vtable_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation[] = {
  {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation[] = {
  {(char *)"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation__flags, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation_slots[] = {
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation_spec = {
  "grpc._cython.cygrpc.SendCloseFromClientOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SendCloseFromClientOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation __pyx_vtable_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;
  new((void*)&(p->_c_details)) grpc_slice();
  p->_trailing_metadata = Py_None; Py_INCREF(Py_None);
  p->_code = Py_None; Py_INCREF(Py_None);
  p->_details = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->_c_details);
  Py_CLEAR(p->_trailing_metadata);
  Py_CLEAR(p->_code);
  Py_CLEAR(p->_details);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation)); if (e) return e;
  if (p->_trailing_metadata) {
    e = (*v)(p->_trailing_metadata, a); if (e) return e;
  }
  if (p->_code) {
    e = (*v)(p->_code, a); if (e) return e;
  }
  if (p->_details) {
    e = (*v)(p->_details, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation);
  tmp = ((PyObject*)p->_trailing_metadata);
  p->_trailing_metadata = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_code);
  p->_code = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_details);
  p->_details = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__trailing_metadata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_18_trailing_metadata_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__code(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5_code_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__details(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_8_details_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation[] = {
  {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation[] = {
  {(char *)"_trailing_metadata", __pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__trailing_metadata, 0, (char *)0, 0},
  {(char *)"_code", __pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__code, 0, (char *)0, 0},
  {(char *)"_details", __pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__details, 0, (char *)0, 0},
  {(char *)"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__flags, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation_spec = {
  "grpc._cython.cygrpc.SendStatusFromServerOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SendStatusFromServerOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;
  new((void*)&(p->_c_initial_metadata)) grpc_metadata_array();
  p->_initial_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->_c_initial_metadata);
  Py_CLEAR(p->_initial_metadata);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation)); if (e) return e;
  if (p->_initial_metadata) {
    e = (*v)(p->_initial_metadata, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation);
  tmp = ((PyObject*)p->_initial_metadata);
  p->_initial_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation[] = {
  {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"initial_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_5initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation[] = {
  {(char *)"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation__flags, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation_spec = {
  "grpc._cython.cygrpc.ReceiveInitialMetadataOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ReceiveInitialMetadataOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveMessageOperation __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveMessageOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;
  p->_message = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveMessageOperation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveMessageOperation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  Py_CLEAR(p->_message);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveMessageOperation[] = {
  {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"message", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_5message, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveMessageOperation[] = {
  {(char *)"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation__flags, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveMessageOperation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ReceiveMessageOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveMessageOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveMessageOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation_spec = {
  "grpc._cython.cygrpc.ReceiveMessageOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ReceiveMessageOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveMessageOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveMessageOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveMessageOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveMessageOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;
  new((void*)&(p->_c_trailing_metadata)) grpc_metadata_array();
  new((void*)&(p->_c_details)) grpc_slice();
  p->_trailing_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_code = Py_None; Py_INCREF(Py_None);
  p->_details = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_error_string = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->_c_trailing_metadata);
  __Pyx_call_destructor(p->_c_details);
  Py_CLEAR(p->_trailing_metadata);
  Py_CLEAR(p->_code);
  Py_CLEAR(p->_details);
  Py_CLEAR(p->_error_string);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation)); if (e) return e;
  if (p->_trailing_metadata) {
    e = (*v)(p->_trailing_metadata, a); if (e) return e;
  }
  if (p->_code) {
    e = (*v)(p->_code, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);
  tmp = ((PyObject*)p->_trailing_metadata);
  p->_trailing_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_code);
  p->_code = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation[] = {
  {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"trailing_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_5trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"code", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_7code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"details", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_9details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"error_string", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_11error_string, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_13__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_15__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation[] = {
  {(char *)"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation__flags, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation_spec = {
  "grpc._cython.cygrpc.ReceiveStatusOnClientOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ReceiveStatusOnClientOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;
  p->_cancelled = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_cancelled);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation)); if (e) return e;
  if (p->_cancelled) {
    e = (*v)(p->_cancelled, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation);
  tmp = ((PyObject*)p->_cancelled);
  p->_cancelled = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation[] = {
  {"type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"cancelled", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_5cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation[] = {
  {(char *)"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation__flags, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation_spec = {
  "grpc._cython.cygrpc.ReceiveCloseOnServerOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ReceiveCloseOnServerOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallDetails(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)o);
  new((void*)&(p->c_details)) grpc_call_details();
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallDetails(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallDetails) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  __Pyx_call_destructor(p->c_details);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_11CallDetails_method(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_6method_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_11CallDetails_host(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_4host_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_11CallDetails_deadline(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_8deadline_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CallDetails[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_CallDetails[] = {
  {(char *)"method", __pyx_getprop_4grpc_7_cython_6cygrpc_11CallDetails_method, 0, (char *)0, 0},
  {(char *)"host", __pyx_getprop_4grpc_7_cython_6cygrpc_11CallDetails_host, 0, (char *)0, 0},
  {(char *)"deadline", __pyx_getprop_4grpc_7_cython_6cygrpc_11CallDetails_deadline, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CallDetails_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallDetails},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CallDetails},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_CallDetails},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CallDetails},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CallDetails_spec = {
  "grpc._cython.cygrpc.CallDetails",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_CallDetails_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CallDetails = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CallDetails", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallDetails, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CallDetails, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_CallDetails, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CallDetails, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SslPemKeyCertPair(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)o);
  new((void*)&(p->c_pair)) grpc_ssl_pem_key_cert_pair();
  p->private_key = Py_None; Py_INCREF(Py_None);
  p->certificate_chain = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SslPemKeyCertPair(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SslPemKeyCertPair) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->c_pair);
  Py_CLEAR(p->private_key);
  Py_CLEAR(p->certificate_chain);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SslPemKeyCertPair(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)o;
  if (p->private_key) {
    e = (*v)(p->private_key, a); if (e) return e;
  }
  if (p->certificate_chain) {
    e = (*v)(p->certificate_chain, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_SslPemKeyCertPair(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)o;
  tmp = ((PyObject*)p->private_key);
  p->private_key = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->certificate_chain);
  p->certificate_chain = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_private_key(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_11private_key_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_certificate_chain(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_17certificate_chain_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SslPemKeyCertPair[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_SslPemKeyCertPair[] = {
  {(char *)"private_key", __pyx_getprop_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_private_key, 0, (char *)0, 0},
  {(char *)"certificate_chain", __pyx_getprop_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_certificate_chain, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SslPemKeyCertPair},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_SslPemKeyCertPair},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_SslPemKeyCertPair},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SslPemKeyCertPair},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_SslPemKeyCertPair},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SslPemKeyCertPair},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair_spec = {
  "grpc._cython.cygrpc.SslPemKeyCertPair",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SslPemKeyCertPair", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SslPemKeyCertPair, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SslPemKeyCertPair, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_SslPemKeyCertPair, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SslPemKeyCertPair, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_SslPemKeyCertPair, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SslPemKeyCertPair, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompressionOptions(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)o);
  new((void*)&(p->c_options)) grpc_compression_options();
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompressionOptions(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompressionOptions) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  __Pyx_call_destructor(p->c_options);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CompressionOptions[] = {
  {"enable_algorithm", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_3enable_algorithm, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"disable_algorithm", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_5disable_algorithm, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"is_algorithm_enabled", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_7is_algorithm_enabled, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"to_channel_arg", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_9to_channel_arg, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompressionOptions},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CompressionOptions},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CompressionOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions_spec = {
  "grpc._cython.cygrpc.CompressionOptions",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CompressionOptions", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompressionOptions, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CompressionOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CompressionOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server __pyx_vtable_4grpc_7_cython_6cygrpc_Server;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Server(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_Server;
  p->backup_shutdown_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)Py_None); Py_INCREF(Py_None);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->registered_completion_queues = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->registered_methods = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_6Server_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Server(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Server) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_6Server_21__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->backup_shutdown_queue);
  Py_CLEAR(p->references);
  Py_CLEAR(p->registered_completion_queues);
  Py_CLEAR(p->registered_methods);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_Server(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)o;
  if (p->backup_shutdown_queue) {
    e = (*v)(((PyObject *)p->backup_shutdown_queue), a); if (e) return e;
  }
  if (p->references) {
    e = (*v)(p->references, a); if (e) return e;
  }
  if (p->registered_completion_queues) {
    e = (*v)(p->registered_completion_queues, a); if (e) return e;
  }
  if (p->registered_methods) {
    e = (*v)(p->registered_methods, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_Server(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)o;
  tmp = ((PyObject*)p->backup_shutdown_queue);
  p->backup_shutdown_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->references);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->registered_completion_queues);
  p->registered_completion_queues = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->registered_methods);
  p->registered_methods = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_Server[] = {
  {"request_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_3request_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"request_registered_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_5request_registered_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"register_completion_queue", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_7register_completion_queue, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"register_method", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_9register_method, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"start", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_11start, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_6Server_10start},
  {"add_http2_port", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_13add_http2_port, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"shutdown", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_15shutdown, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"cancel_all_calls", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_17cancel_all_calls, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"destroy", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_19destroy, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_23__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_25__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_Server_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Server},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_Server},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_Server},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_Server},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_Server},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_Server_spec = {
  "grpc._cython.cygrpc.Server",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_Server_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_Server = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""Server", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Server, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_Server, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_Server, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_Server, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_Server, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_RegisteredMethod(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)o);
  p->method = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RegisteredMethod(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RegisteredMethod) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->method);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_RegisteredMethod[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RegisteredMethod},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_RegisteredMethod},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_RegisteredMethod},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod_spec = {
  "grpc._cython.cygrpc.RegisteredMethod",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""RegisteredMethod", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RegisteredMethod, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_RegisteredMethod, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_RegisteredMethod, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag __pyx_vtable_4grpc_7_cython_6cygrpc__Tag;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__Tag(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag;
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__Tag[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__Tag_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__Tag},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__Tag},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__Tag_spec = {
  "grpc._cython.cygrpc._Tag",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc__Tag_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__Tag = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_Tag", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__Tag, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__Tag, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ConnectivityTag __pyx_vtable_4grpc_7_cython_6cygrpc__ConnectivityTag;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ConnectivityTag(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc__Tag(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag*)__pyx_vtabptr_4grpc_7_cython_6cygrpc__ConnectivityTag;
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConnectivityTag(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConnectivityTag) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_user_tag);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ConnectivityTag(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ConnectivityTag)); if (e) return e;
  if (p->_user_tag) {
    e = (*v)(p->_user_tag, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__ConnectivityTag(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc__ConnectivityTag);
  tmp = ((PyObject*)p->_user_tag);
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_16_ConnectivityTag__user_tag(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_9_user_tag_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__ConnectivityTag[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__ConnectivityTag[] = {
  {(char *)"_user_tag", __pyx_getprop_4grpc_7_cython_6cygrpc_16_ConnectivityTag__user_tag, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConnectivityTag},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__ConnectivityTag},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__ConnectivityTag},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__ConnectivityTag},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__ConnectivityTag},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__ConnectivityTag},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag_spec = {
  "grpc._cython.cygrpc._ConnectivityTag",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_ConnectivityTag", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConnectivityTag, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ConnectivityTag, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__ConnectivityTag, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__ConnectivityTag, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__ConnectivityTag, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__ConnectivityTag, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__RequestCallTag __pyx_vtable_4grpc_7_cython_6cygrpc__RequestCallTag;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__RequestCallTag(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc__Tag(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag*)__pyx_vtabptr_4grpc_7_cython_6cygrpc__RequestCallTag;
  new((void*)&(p->c_invocation_metadata)) grpc_metadata_array();
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  p->call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)Py_None); Py_INCREF(Py_None);
  p->call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__RequestCallTag(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__RequestCallTag) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->c_invocation_metadata);
  Py_CLEAR(p->_user_tag);
  Py_CLEAR(p->call);
  Py_CLEAR(p->call_details);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__RequestCallTag(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc__RequestCallTag)); if (e) return e;
  if (p->_user_tag) {
    e = (*v)(p->_user_tag, a); if (e) return e;
  }
  if (p->call) {
    e = (*v)(((PyObject *)p->call), a); if (e) return e;
  }
  if (p->call_details) {
    e = (*v)(((PyObject *)p->call_details), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__RequestCallTag(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc__RequestCallTag);
  tmp = ((PyObject*)p->_user_tag);
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->call);
  p->call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->call_details);
  p->call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_15_RequestCallTag__user_tag(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_9_user_tag_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__RequestCallTag[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__RequestCallTag[] = {
  {(char *)"_user_tag", __pyx_getprop_4grpc_7_cython_6cygrpc_15_RequestCallTag__user_tag, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__RequestCallTag},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__RequestCallTag},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__RequestCallTag},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__RequestCallTag},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__RequestCallTag},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__RequestCallTag},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag_spec = {
  "grpc._cython.cygrpc._RequestCallTag",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_RequestCallTag", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__RequestCallTag, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__RequestCallTag, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__RequestCallTag, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__RequestCallTag, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__RequestCallTag, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__RequestCallTag, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__BatchOperationTag __pyx_vtable_4grpc_7_cython_6cygrpc__BatchOperationTag;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__BatchOperationTag(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc__Tag(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag*)__pyx_vtabptr_4grpc_7_cython_6cygrpc__BatchOperationTag;
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  p->_operations = Py_None; Py_INCREF(Py_None);
  p->_retained_call = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BatchOperationTag(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BatchOperationTag) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_user_tag);
  Py_CLEAR(p->_operations);
  Py_CLEAR(p->_retained_call);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__BatchOperationTag(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc__BatchOperationTag)); if (e) return e;
  if (p->_user_tag) {
    e = (*v)(p->_user_tag, a); if (e) return e;
  }
  if (p->_operations) {
    e = (*v)(p->_operations, a); if (e) return e;
  }
  if (p->_retained_call) {
    e = (*v)(p->_retained_call, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__BatchOperationTag(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc__BatchOperationTag);
  tmp = ((PyObject*)p->_user_tag);
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_operations);
  p->_operations = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_retained_call);
  p->_retained_call = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_18_BatchOperationTag__operations(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_11_operations_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_18_BatchOperationTag__retained_call(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_14_retained_call_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__BatchOperationTag[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__BatchOperationTag[] = {
  {(char *)"_operations", __pyx_getprop_4grpc_7_cython_6cygrpc_18_BatchOperationTag__operations, 0, (char *)0, 0},
  {(char *)"_retained_call", __pyx_getprop_4grpc_7_cython_6cygrpc_18_BatchOperationTag__retained_call, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BatchOperationTag},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__BatchOperationTag},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__BatchOperationTag},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__BatchOperationTag},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__BatchOperationTag},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__BatchOperationTag},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag_spec = {
  "grpc._cython.cygrpc._BatchOperationTag",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_BatchOperationTag", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BatchOperationTag, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__BatchOperationTag, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__BatchOperationTag, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__BatchOperationTag, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__BatchOperationTag, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__BatchOperationTag, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ServerShutdownTag __pyx_vtable_4grpc_7_cython_6cygrpc__ServerShutdownTag;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ServerShutdownTag(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc__Tag(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag*)__pyx_vtabptr_4grpc_7_cython_6cygrpc__ServerShutdownTag;
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  p->_shutting_down_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServerShutdownTag(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServerShutdownTag) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_user_tag);
  Py_CLEAR(p->_shutting_down_server);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ServerShutdownTag(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ServerShutdownTag)); if (e) return e;
  if (p->_user_tag) {
    e = (*v)(p->_user_tag, a); if (e) return e;
  }
  if (p->_shutting_down_server) {
    e = (*v)(((PyObject *)p->_shutting_down_server), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__ServerShutdownTag(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc__ServerShutdownTag);
  tmp = ((PyObject*)p->_user_tag);
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_shutting_down_server);
  p->_shutting_down_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_18_ServerShutdownTag__user_tag(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_9_user_tag_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_18_ServerShutdownTag__shutting_down_server(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_21_shutting_down_server_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__ServerShutdownTag[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__ServerShutdownTag[] = {
  {(char *)"_user_tag", __pyx_getprop_4grpc_7_cython_6cygrpc_18_ServerShutdownTag__user_tag, 0, (char *)0, 0},
  {(char *)"_shutting_down_server", __pyx_getprop_4grpc_7_cython_6cygrpc_18_ServerShutdownTag__shutting_down_server, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServerShutdownTag},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__ServerShutdownTag},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__ServerShutdownTag},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__ServerShutdownTag},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__ServerShutdownTag},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__ServerShutdownTag},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag_spec = {
  "grpc._cython.cygrpc._ServerShutdownTag",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_ServerShutdownTag", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServerShutdownTag, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ServerShutdownTag, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__ServerShutdownTag, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__ServerShutdownTag, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__ServerShutdownTag, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__ServerShutdownTag, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_BaseCompletionQueue __pyx_vtable_4grpc_7_cython_6cygrpc_BaseCompletionQueue;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_BaseCompletionQueue(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseCompletionQueue(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseCompletionQueue) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_BaseCompletionQueue[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseCompletionQueue},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_BaseCompletionQueue},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_BaseCompletionQueue},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue_spec = {
  "grpc._cython.cygrpc.BaseCompletionQueue",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""BaseCompletionQueue", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseCompletionQueue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_BaseCompletionQueue, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_BaseCompletionQueue, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__BoundEventLoop(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)o);
  p->loop = Py_None; Py_INCREF(Py_None);
  p->read_socket = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BoundEventLoop(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BoundEventLoop) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->loop);
  Py_CLEAR(p->read_socket);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__BoundEventLoop(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)o;
  if (p->loop) {
    e = (*v)(p->loop, a); if (e) return e;
  }
  if (p->read_socket) {
    e = (*v)(p->read_socket, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__BoundEventLoop(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)o;
  tmp = ((PyObject*)p->loop);
  p->loop = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->read_socket);
  p->read_socket = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_15_BoundEventLoop_loop(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4loop_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_15_BoundEventLoop_read_socket(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_11read_socket_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__BoundEventLoop[] = {
  {"close", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_3close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__BoundEventLoop[] = {
  {(char *)"loop", __pyx_getprop_4grpc_7_cython_6cygrpc_15_BoundEventLoop_loop, 0, (char *)0, 0},
  {(char *)"read_socket", __pyx_getprop_4grpc_7_cython_6cygrpc_15_BoundEventLoop_read_socket, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BoundEventLoop},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__BoundEventLoop},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__BoundEventLoop},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__BoundEventLoop},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__BoundEventLoop},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__BoundEventLoop},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop_spec = {
  "grpc._cython.cygrpc._BoundEventLoop",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_BoundEventLoop", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BoundEventLoop, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__BoundEventLoop, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__BoundEventLoop, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__BoundEventLoop, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__BoundEventLoop, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__BoundEventLoop, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_PollerCompletionQueue __pyx_vtable_4grpc_7_cython_6cygrpc_PollerCompletionQueue;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_PollerCompletionQueue(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_BaseCompletionQueue(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_BaseCompletionQueue*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_PollerCompletionQueue;
  new((void*)&(p->_queue)) __pyx_t_4grpc_7_cython_6cygrpc_cpp_event_queue();
  new((void*)&(p->_queue_mutex)) std::mutex();
  p->_poller_thread = Py_None; Py_INCREF(Py_None);
  p->_read_socket = Py_None; Py_INCREF(Py_None);
  p->_write_socket = Py_None; Py_INCREF(Py_None);
  p->_loops = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_PollerCompletionQueue(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_PollerCompletionQueue) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->_queue);
  __Pyx_call_destructor(p->_queue_mutex);
  Py_CLEAR(p->_poller_thread);
  Py_CLEAR(p->_read_socket);
  Py_CLEAR(p->_write_socket);
  Py_CLEAR(p->_loops);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseCompletionQueue(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_PollerCompletionQueue(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_PollerCompletionQueue)); if (e) return e;
  if (p->_poller_thread) {
    e = (*v)(p->_poller_thread, a); if (e) return e;
  }
  if (p->_read_socket) {
    e = (*v)(p->_read_socket, a); if (e) return e;
  }
  if (p->_write_socket) {
    e = (*v)(p->_write_socket, a); if (e) return e;
  }
  if (p->_loops) {
    e = (*v)(p->_loops, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_PollerCompletionQueue(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_PollerCompletionQueue);
  tmp = ((PyObject*)p->_poller_thread);
  p->_poller_thread = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_read_socket);
  p->_read_socket = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_write_socket);
  p->_write_socket = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_loops);
  p->_loops = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_PollerCompletionQueue[] = {
  {"bind_loop", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_3bind_loop, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_poll_wrapper", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_5_poll_wrapper, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_handle_events", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_7_handle_events, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_PollerCompletionQueue},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_PollerCompletionQueue},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_PollerCompletionQueue},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_PollerCompletionQueue},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_PollerCompletionQueue},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue_spec = {
  "grpc._cython.cygrpc.PollerCompletionQueue",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""PollerCompletionQueue", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_PollerCompletionQueue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_PollerCompletionQueue, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_PollerCompletionQueue, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_PollerCompletionQueue, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_PollerCompletionQueue, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus __pyx_vtable_4grpc_7_cython_6cygrpc_AioRpcStatus;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_AioRpcStatus(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *p;
  PyObject *o = __Pyx_PyType_GetSlot((&((PyTypeObject*)PyExc_Exception)[0]), tp_new, newfunc)(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_AioRpcStatus;
  p->_details = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_trailing_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_debug_error_string = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioRpcStatus(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioRpcStatus) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_details);
  Py_CLEAR(p->_trailing_metadata);
  Py_CLEAR(p->_debug_error_string);
  PyObject_GC_Track(o);
  __Pyx_PyType_GetSlot((&((PyTypeObject*)PyExc_Exception)[0]), tp_dealloc, destructor)(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioRpcStatus(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)o;
  if (!(&((PyTypeObject*)PyExc_Exception)[0])->tp_traverse); else { e = (&((PyTypeObject*)PyExc_Exception)[0])->tp_traverse(o,v,a); if (e) return e; }
  if (p->_trailing_metadata) {
    e = (*v)(p->_trailing_metadata, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_AioRpcStatus(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)o;
  if (!(&((PyTypeObject*)PyExc_Exception)[0])->tp_clear); else (&((PyTypeObject*)PyExc_Exception)[0])->tp_clear(o);
  tmp = ((PyObject*)p->_trailing_metadata);
  p->_trailing_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__code(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5_code_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__details(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_8_details_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__trailing_metadata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_18_trailing_metadata_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__debug_error_string(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_19_debug_error_string_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_AioRpcStatus[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_AioRpcStatus[] = {
  {(char *)"_code", __pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__code, 0, (char *)0, 0},
  {(char *)"_details", __pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__details, 0, (char *)0, 0},
  {(char *)"_trailing_metadata", __pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__trailing_metadata, 0, (char *)0, 0},
  {(char *)"_debug_error_string", __pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__debug_error_string, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioRpcStatus},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioRpcStatus},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_AioRpcStatus},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_AioRpcStatus},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_AioRpcStatus},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_AioRpcStatus},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus_spec = {
  "grpc._cython.cygrpc.AioRpcStatus",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""AioRpcStatus", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioRpcStatus, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioRpcStatus, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_AioRpcStatus, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_AioRpcStatus, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_AioRpcStatus, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_AioRpcStatus, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__AioState(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)o);
  p->lock = Py_None; Py_INCREF(Py_None);
  p->engine = Py_None; Py_INCREF(Py_None);
  p->cq = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioState(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioState) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->lock);
  Py_CLEAR(p->engine);
  Py_CLEAR(p->cq);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__AioState(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)o;
  if (p->lock) {
    e = (*v)(p->lock, a); if (e) return e;
  }
  if (p->engine) {
    e = (*v)(p->engine, a); if (e) return e;
  }
  if (p->cq) {
    e = (*v)(((PyObject *)p->cq), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__AioState(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)o;
  tmp = ((PyObject*)p->lock);
  p->lock = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->engine);
  p->engine = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->cq);
  p->cq = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__AioState[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__AioState_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioState},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__AioState},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__AioState},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__AioState},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__AioState},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__AioState_spec = {
  "grpc._cython.cygrpc._AioState",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__AioState_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__AioState = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_AioState", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioState, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__AioState, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__AioState, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__AioState, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__AioState, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackFailureHandler __pyx_vtable_4grpc_7_cython_6cygrpc_CallbackFailureHandler;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackFailureHandler(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackFailureHandler;
  p->_core_function_name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_error_details = Py_None; Py_INCREF(Py_None);
  p->_exception_type = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackFailureHandler(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackFailureHandler) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_core_function_name);
  Py_CLEAR(p->_error_details);
  Py_CLEAR(p->_exception_type);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallbackFailureHandler(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)o;
  if (p->_error_details) {
    e = (*v)(p->_error_details, a); if (e) return e;
  }
  if (p->_exception_type) {
    e = (*v)(p->_exception_type, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_CallbackFailureHandler(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)o;
  tmp = ((PyObject*)p->_error_details);
  p->_error_details = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_exception_type);
  p->_exception_type = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CallbackFailureHandler[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackFailureHandler},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallbackFailureHandler},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_CallbackFailureHandler},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CallbackFailureHandler},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackFailureHandler},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler_spec = {
  "grpc._cython.cygrpc.CallbackFailureHandler",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CallbackFailureHandler", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackFailureHandler, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallbackFailureHandler, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_CallbackFailureHandler, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CallbackFailureHandler, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackFailureHandler, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper __pyx_vtable_4grpc_7_cython_6cygrpc_CallbackWrapper;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackWrapper(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackWrapper;
  new((void*)&(p->context)) struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext();
  p->_reference_of_future = Py_None; Py_INCREF(Py_None);
  p->_reference_of_failure_handler = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackWrapper(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackWrapper) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->context);
  Py_CLEAR(p->_reference_of_future);
  Py_CLEAR(p->_reference_of_failure_handler);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallbackWrapper(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)o;
  if (p->_reference_of_future) {
    e = (*v)(p->_reference_of_future, a); if (e) return e;
  }
  if (p->_reference_of_failure_handler) {
    e = (*v)(p->_reference_of_failure_handler, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_CallbackWrapper(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)o;
  tmp = ((PyObject*)p->_reference_of_future);
  p->_reference_of_future = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_reference_of_failure_handler);
  p->_reference_of_failure_handler = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CallbackWrapper[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackWrapper},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallbackWrapper},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_CallbackWrapper},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CallbackWrapper},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackWrapper},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper_spec = {
  "grpc._cython.cygrpc.CallbackWrapper",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CallbackWrapper", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackWrapper, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallbackWrapper, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_CallbackWrapper, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CallbackWrapper, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackWrapper, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_GrpcCallWrapper(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_GrpcCallWrapper(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_GrpcCallWrapper) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_GrpcCallWrapper},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_GrpcCallWrapper},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper_spec = {
  "grpc._cython.cygrpc.GrpcCallWrapper",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""GrpcCallWrapper", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_GrpcCallWrapper, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_GrpcCallWrapper, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall __pyx_vtable_4grpc_7_cython_6cygrpc__AioCall;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__AioCall(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_GrpcCallWrapper(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc__AioCall;
  p->_channel = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)Py_None); Py_INCREF(Py_None);
  p->_references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_deadline = Py_None; Py_INCREF(Py_None);
  p->_done_callbacks = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_loop = Py_None; Py_INCREF(Py_None);
  p->_status = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)Py_None); Py_INCREF(Py_None);
  p->_initial_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_waiters_status = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_waiters_initial_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioCall(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioCall) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_channel);
  Py_CLEAR(p->_references);
  Py_CLEAR(p->_deadline);
  Py_CLEAR(p->_done_callbacks);
  Py_CLEAR(p->_loop);
  Py_CLEAR(p->_status);
  Py_CLEAR(p->_initial_metadata);
  Py_CLEAR(p->_waiters_status);
  Py_CLEAR(p->_waiters_initial_metadata);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_GrpcCallWrapper(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__AioCall(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc__AioCall)); if (e) return e;
  if (p->_channel) {
    e = (*v)(((PyObject *)p->_channel), a); if (e) return e;
  }
  if (p->_references) {
    e = (*v)(p->_references, a); if (e) return e;
  }
  if (p->_deadline) {
    e = (*v)(p->_deadline, a); if (e) return e;
  }
  if (p->_done_callbacks) {
    e = (*v)(p->_done_callbacks, a); if (e) return e;
  }
  if (p->_loop) {
    e = (*v)(p->_loop, a); if (e) return e;
  }
  if (p->_status) {
    e = (*v)(((PyObject *)p->_status), a); if (e) return e;
  }
  if (p->_initial_metadata) {
    e = (*v)(p->_initial_metadata, a); if (e) return e;
  }
  if (p->_waiters_status) {
    e = (*v)(p->_waiters_status, a); if (e) return e;
  }
  if (p->_waiters_initial_metadata) {
    e = (*v)(p->_waiters_initial_metadata, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__AioCall(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc__AioCall);
  tmp = ((PyObject*)p->_channel);
  p->_channel = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_references);
  p->_references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_deadline);
  p->_deadline = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_done_callbacks);
  p->_done_callbacks = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_loop);
  p->_loop = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_status);
  p->_status = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_initial_metadata);
  p->_initial_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_waiters_status);
  p->_waiters_status = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_waiters_initial_metadata);
  p->_waiters_initial_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_8_AioCall__channel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_8_channel_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_8_AioCall__status(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7_status_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_8_AioCall__initial_metadata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_17_initial_metadata_1__get__(o);
}

static PyObject *__pyx_specialmethod___pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7__repr__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7__repr__(self);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__AioCall[] = {
  {"_repr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_5_repr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_4_repr},
  {"__repr__", (PyCFunction)__pyx_specialmethod___pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7__repr__, METH_NOARGS|METH_COEXIST, 0},
  {"add_done_callback", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_11add_done_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"time_remaining", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_13time_remaining, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"cancel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_15cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_14cancel},
  {"done", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_17done, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_16done},
  {"cancelled", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_19cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_18cancelled},
  {"status", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_21status, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_20status},
  {"is_ok", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_24is_ok, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_23is_ok},
  {"initial_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_26initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_25initial_metadata},
  {"is_locally_cancelled", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_29is_locally_cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_28is_locally_cancelled},
  {"set_internal_error", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_31set_internal_error, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"unary_unary", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_33unary_unary, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_32unary_unary},
  {"_handle_status_once_received", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_36_handle_status_once_received, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_35_handle_status_once_received},
  {"receive_serialized_message", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_39receive_serialized_message, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_38receive_serialized_message},
  {"send_serialized_message", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_42send_serialized_message, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_41send_serialized_message},
  {"send_receive_close", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_45send_receive_close, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_44send_receive_close},
  {"initiate_unary_stream", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_48initiate_unary_stream, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_47initiate_unary_stream},
  {"stream_unary", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_51stream_unary, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_50stream_unary},
  {"initiate_stream_stream", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_54initiate_stream_stream, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_53initiate_stream_stream},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_57__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_59__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__AioCall[] = {
  {(char *)"_channel", __pyx_getprop_4grpc_7_cython_6cygrpc_8_AioCall__channel, 0, (char *)0, 0},
  {(char *)"_status", __pyx_getprop_4grpc_7_cython_6cygrpc_8_AioCall__status, 0, (char *)0, 0},
  {(char *)"_initial_metadata", __pyx_getprop_4grpc_7_cython_6cygrpc_8_AioCall__initial_metadata, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__AioCall_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioCall},
  {Py_tp_repr, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7__repr__},
  {Py_tp_str, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_9__str__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__AioCall},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__AioCall},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__AioCall},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__AioCall},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__AioCall},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__AioCall_spec = {
  "grpc._cython.cygrpc._AioCall",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc__AioCall_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__AioCall = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_AioCall", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioCall, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_9__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__AioCall, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__AioCall, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__AioCall, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__AioCall, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__AioCall, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_AioChannel(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)o);
  p->loop = Py_None; Py_INCREF(Py_None);
  p->_target = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioChannel(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioChannel) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->loop);
  Py_CLEAR(p->_target);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioChannel(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)o;
  if (p->loop) {
    e = (*v)(p->loop, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_AioChannel(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)o;
  tmp = ((PyObject*)p->loop);
  p->loop = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_5__repr__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_5__repr__(self);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_AioChannel[] = {
  {"__repr__", (PyCFunction)__pyx_specialmethod___pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_5__repr__, METH_NOARGS|METH_COEXIST, 0},
  {"check_connectivity_state", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_7check_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_6check_connectivity_state},
  {"watch_connectivity_state", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_9watch_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_8watch_connectivity_state},
  {"closing", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_12closing, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"close", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_14close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"closed", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_16closed, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_18call, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_17call},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_20__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_22__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_AioChannel_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioChannel},
  {Py_tp_repr, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_5__repr__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioChannel},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_AioChannel},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_AioChannel},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_AioChannel},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_AioChannel_spec = {
  "grpc._cython.cygrpc.AioChannel",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_AioChannel_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_AioChannel = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""AioChannel", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioChannel, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_5__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioChannel, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_AioChannel, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_AioChannel, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_AioChannel, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__HandlerCallDetails(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)o);
  p->method = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->invocation_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__HandlerCallDetails(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__HandlerCallDetails) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->method);
  Py_CLEAR(p->invocation_metadata);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__HandlerCallDetails(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)o;
  if (p->invocation_metadata) {
    e = (*v)(p->invocation_metadata, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__HandlerCallDetails(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)o;
  tmp = ((PyObject*)p->invocation_metadata);
  p->invocation_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_method(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_6method_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_invocation_metadata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_19invocation_metadata_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__HandlerCallDetails[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__HandlerCallDetails[] = {
  {(char *)"method", __pyx_getprop_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_method, 0, (char *)0, 0},
  {(char *)"invocation_metadata", __pyx_getprop_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_invocation_metadata, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__HandlerCallDetails},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__HandlerCallDetails},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__HandlerCallDetails},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__HandlerCallDetails},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__HandlerCallDetails},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__HandlerCallDetails},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails_spec = {
  "grpc._cython.cygrpc._HandlerCallDetails",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_HandlerCallDetails", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__HandlerCallDetails, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__HandlerCallDetails, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__HandlerCallDetails, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__HandlerCallDetails, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__HandlerCallDetails, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__HandlerCallDetails, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState __pyx_vtable_4grpc_7_cython_6cygrpc_RPCState;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_RPCState(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_GrpcCallWrapper(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_RPCState;
  new((void*)&(p->details)) grpc_call_details();
  new((void*)&(p->request_metadata)) grpc_metadata_array();
  p->server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)Py_None); Py_INCREF(Py_None);
  p->abort_exception = Py_None; Py_INCREF(Py_None);
  p->py_status_code = Py_None; Py_INCREF(Py_None);
  p->status_details = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->trailing_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->compression_algorithm = Py_None; Py_INCREF(Py_None);
  p->callbacks = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RPCState(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RPCState) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  __Pyx_call_destructor(p->details);
  __Pyx_call_destructor(p->request_metadata);
  Py_CLEAR(p->server);
  Py_CLEAR(p->abort_exception);
  Py_CLEAR(p->py_status_code);
  Py_CLEAR(p->status_details);
  Py_CLEAR(p->trailing_metadata);
  Py_CLEAR(p->compression_algorithm);
  Py_CLEAR(p->callbacks);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_GrpcCallWrapper(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_RPCState(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)o;
  e = ((likely(__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper)) ? ((__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_traverse) ? __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_RPCState)); if (e) return e;
  if (p->server) {
    e = (*v)(((PyObject *)p->server), a); if (e) return e;
  }
  if (p->abort_exception) {
    e = (*v)(p->abort_exception, a); if (e) return e;
  }
  if (p->py_status_code) {
    e = (*v)(p->py_status_code, a); if (e) return e;
  }
  if (p->trailing_metadata) {
    e = (*v)(p->trailing_metadata, a); if (e) return e;
  }
  if (p->compression_algorithm) {
    e = (*v)(p->compression_algorithm, a); if (e) return e;
  }
  if (p->callbacks) {
    e = (*v)(p->callbacks, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_RPCState(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)o;
  if (likely(__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper)) { if (__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_clear) __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_RPCState);
  tmp = ((PyObject*)p->server);
  p->server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->abort_exception);
  p->abort_exception = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->py_status_code);
  p->py_status_code = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->trailing_metadata);
  p->trailing_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->compression_algorithm);
  p->compression_algorithm = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->callbacks);
  p->callbacks = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_RPCState[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_RPCState_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RPCState},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_RPCState},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_RPCState},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_RPCState},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_RPCState},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_RPCState_spec = {
  "grpc._cython.cygrpc.RPCState",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_RPCState_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_RPCState = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""RPCState", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RPCState, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_RPCState, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_RPCState, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_RPCState, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_RPCState, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ServicerContext(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)o);
  p->_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)Py_None); Py_INCREF(Py_None);
  p->_loop = Py_None; Py_INCREF(Py_None);
  p->_request_deserializer = Py_None; Py_INCREF(Py_None);
  p->_response_serializer = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServicerContext(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServicerContext) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_rpc_state);
  Py_CLEAR(p->_loop);
  Py_CLEAR(p->_request_deserializer);
  Py_CLEAR(p->_response_serializer);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ServicerContext(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)o;
  if (p->_rpc_state) {
    e = (*v)(((PyObject *)p->_rpc_state), a); if (e) return e;
  }
  if (p->_loop) {
    e = (*v)(p->_loop, a); if (e) return e;
  }
  if (p->_request_deserializer) {
    e = (*v)(p->_request_deserializer, a); if (e) return e;
  }
  if (p->_response_serializer) {
    e = (*v)(p->_response_serializer, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__ServicerContext(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)o;
  tmp = ((PyObject*)p->_rpc_state);
  p->_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_loop);
  p->_loop = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_request_deserializer);
  p->_request_deserializer = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_response_serializer);
  p->_response_serializer = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__ServicerContext[] = {
  {"read", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_3read, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"write", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_6write, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"send_initial_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_9send_initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"abort", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_12abort, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"abort_with_status", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_15abort_with_status, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_trailing_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_18set_trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"trailing_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_20trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"invocation_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_22invocation_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_code", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_24set_code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"code", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_26code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_details", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_28set_details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"details", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_30details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_compression", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_32set_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"disable_next_message_compression", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_34disable_next_message_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"peer", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_36peer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"peer_identities", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_38peer_identities, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"peer_identity_key", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_40peer_identity_key, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"auth_context", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_42auth_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"time_remaining", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_44time_remaining, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"add_done_callback", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_46add_done_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"done", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_48done, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"cancelled", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_50cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_52__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_54__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__ServicerContext_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServicerContext},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__ServicerContext},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__ServicerContext},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__ServicerContext},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__ServicerContext},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__ServicerContext_spec = {
  "grpc._cython.cygrpc._ServicerContext",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__ServicerContext_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__ServicerContext = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_ServicerContext", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServicerContext, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ServicerContext, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__ServicerContext, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__ServicerContext, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__ServicerContext, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__SyncServicerContext(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)o);
  p->_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)Py_None); Py_INCREF(Py_None);
  p->_callbacks = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_loop = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__SyncServicerContext(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__SyncServicerContext) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_context);
  Py_CLEAR(p->_callbacks);
  Py_CLEAR(p->_loop);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__SyncServicerContext(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)o;
  if (p->_context) {
    e = (*v)(((PyObject *)p->_context), a); if (e) return e;
  }
  if (p->_callbacks) {
    e = (*v)(p->_callbacks, a); if (e) return e;
  }
  if (p->_loop) {
    e = (*v)(p->_loop, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__SyncServicerContext(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)o;
  tmp = ((PyObject*)p->_context);
  p->_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_callbacks);
  p->_callbacks = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_loop);
  p->_loop = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__SyncServicerContext[] = {
  {"abort", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_3abort, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"send_initial_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_5send_initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_trailing_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_7set_trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"invocation_metadata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_9invocation_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_code", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_11set_code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_details", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_13set_details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_compression", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_15set_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"disable_next_message_compression", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_17disable_next_message_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"add_callback", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_19add_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"peer", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_21peer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"peer_identities", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_23peer_identities, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"peer_identity_key", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_25peer_identity_key, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"auth_context", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_27auth_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"time_remaining", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_29time_remaining, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_31__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_33__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__SyncServicerContext},
  {Py_tp_doc, (void *)PyDoc_STR("Sync servicer context for sync handler compatibility.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__SyncServicerContext},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__SyncServicerContext},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__SyncServicerContext},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__SyncServicerContext},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext_spec = {
  "grpc._cython.cygrpc._SyncServicerContext",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_SyncServicerContext", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__SyncServicerContext, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Sync servicer context for sync handler compatibility."), /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__SyncServicerContext, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__SyncServicerContext, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__SyncServicerContext, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__SyncServicerContext, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__MessageReceiver(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)o);
  p->_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)Py_None); Py_INCREF(Py_None);
  p->_agen = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__MessageReceiver(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__MessageReceiver) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_servicer_context);
  Py_CLEAR(p->_agen);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__MessageReceiver(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)o;
  if (p->_servicer_context) {
    e = (*v)(((PyObject *)p->_servicer_context), a); if (e) return e;
  }
  if (p->_agen) {
    e = (*v)(p->_agen, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__MessageReceiver(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)o;
  tmp = ((PyObject*)p->_servicer_context);
  p->_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_agen);
  p->_agen = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_6__aiter__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_6__aiter__(self);
}
static PyObject *__pyx_specialmethod___pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_8__anext__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_8__anext__(self);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__MessageReceiver[] = {
  {"_async_message_receiver", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_3_async_message_receiver, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_16_MessageReceiver_2_async_message_receiver},
  {"__aiter__", (PyCFunction)__pyx_specialmethod___pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_6__aiter__, METH_NOARGS|METH_COEXIST, 0},
  {"__anext__", (PyCFunction)__pyx_specialmethod___pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_8__anext__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__MessageReceiver},
  {Py_am_aiter, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_6__aiter__},
  {Py_am_anext, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_8__anext__},
  {Py_tp_doc, (void *)PyDoc_STR("Bridge between the async generator API and the reader-writer API.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__MessageReceiver},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__MessageReceiver},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__MessageReceiver},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__MessageReceiver},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver_spec = {
  "grpc._cython.cygrpc._MessageReceiver",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver_slots,
};
#else

#if PY_MAJOR_VERSION >= 3
static __Pyx_PyAsyncMethodsStruct __pyx_tp_as_async__MessageReceiver = {
  0, /*am_await*/
  __pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_6__aiter__, /*am_aiter*/
  __pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_8__anext__, /*am_anext*/
  #if PY_VERSION_HEX >= 0x030A00A3
  0, /*am_send*/
  #endif
};
#endif

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_MessageReceiver", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__MessageReceiver, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  &__pyx_tp_as_async__MessageReceiver, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Bridge between the async generator API and the reader-writer API."), /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__MessageReceiver, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__MessageReceiver, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__MessageReceiver, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__MessageReceiver, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter[] = {
  {"check_before_request_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_3check_before_request_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_decrease_active_rpcs_count", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_5_decrease_active_rpcs_count, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"decrease_once_finished", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_7decrease_once_finished, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter_spec = {
  "grpc._cython.cygrpc._ConcurrentRpcLimiter",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_ConcurrentRpcLimiter", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioServer __pyx_vtable_4grpc_7_cython_6cygrpc_AioServer;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_AioServer(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_AioServer;
  p->_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)Py_None); Py_INCREF(Py_None);
  p->_generic_handlers = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_loop = Py_None; Py_INCREF(Py_None);
  p->_serving_task = Py_None; Py_INCREF(Py_None);
  p->_shutdown_lock = Py_None; Py_INCREF(Py_None);
  p->_shutdown_completed = Py_None; Py_INCREF(Py_None);
  p->_shutdown_callback_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)Py_None); Py_INCREF(Py_None);
  p->_crash_exception = Py_None; Py_INCREF(Py_None);
  p->_interceptors = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_thread_pool = Py_None; Py_INCREF(Py_None);
  p->_limiter = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioServer(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioServer) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_29__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_server);
  Py_CLEAR(p->_generic_handlers);
  Py_CLEAR(p->_loop);
  Py_CLEAR(p->_serving_task);
  Py_CLEAR(p->_shutdown_lock);
  Py_CLEAR(p->_shutdown_completed);
  Py_CLEAR(p->_shutdown_callback_wrapper);
  Py_CLEAR(p->_crash_exception);
  Py_CLEAR(p->_interceptors);
  Py_CLEAR(p->_thread_pool);
  Py_CLEAR(p->_limiter);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioServer(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)o;
  if (p->_server) {
    e = (*v)(((PyObject *)p->_server), a); if (e) return e;
  }
  if (p->_generic_handlers) {
    e = (*v)(p->_generic_handlers, a); if (e) return e;
  }
  if (p->_loop) {
    e = (*v)(p->_loop, a); if (e) return e;
  }
  if (p->_serving_task) {
    e = (*v)(p->_serving_task, a); if (e) return e;
  }
  if (p->_shutdown_lock) {
    e = (*v)(p->_shutdown_lock, a); if (e) return e;
  }
  if (p->_shutdown_completed) {
    e = (*v)(p->_shutdown_completed, a); if (e) return e;
  }
  if (p->_shutdown_callback_wrapper) {
    e = (*v)(((PyObject *)p->_shutdown_callback_wrapper), a); if (e) return e;
  }
  if (p->_crash_exception) {
    e = (*v)(p->_crash_exception, a); if (e) return e;
  }
  if (p->_interceptors) {
    e = (*v)(p->_interceptors, a); if (e) return e;
  }
  if (p->_thread_pool) {
    e = (*v)(p->_thread_pool, a); if (e) return e;
  }
  if (p->_limiter) {
    e = (*v)(((PyObject *)p->_limiter), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_AioServer(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)o;
  tmp = ((PyObject*)p->_server);
  p->_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_generic_handlers);
  p->_generic_handlers = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_loop);
  p->_loop = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_serving_task);
  p->_serving_task = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_shutdown_lock);
  p->_shutdown_lock = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_shutdown_completed);
  p->_shutdown_completed = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_shutdown_callback_wrapper);
  p->_shutdown_callback_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_crash_exception);
  p->_crash_exception = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_interceptors);
  p->_interceptors = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_thread_pool);
  p->_thread_pool = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_limiter);
  p->_limiter = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_AioServer[] = {
  {"add_generic_rpc_handlers", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_3add_generic_rpc_handlers, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"add_insecure_port", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_5add_insecure_port, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"add_secure_port", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_7add_secure_port, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_request_call", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_9_request_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_server_main_loop", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_12_server_main_loop, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_serving_task_crash_handler", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_15_serving_task_crash_handler, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_14_serving_task_crash_handler},
  {"start", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_17start, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_start_shutting_down", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_20_start_shutting_down, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_19_start_shutting_down},
  {"shutdown", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_23shutdown, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_22shutdown},
  {"wait_for_termination", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_26wait_for_termination, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"is_running", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_31is_running, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_33__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_35__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_AioServer_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioServer},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioServer},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_AioServer},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_AioServer},
  {Py_tp_init, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_AioServer},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_AioServer_spec = {
  "grpc._cython.cygrpc.AioServer",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_AioServer_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_AioServer = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""AioServer", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioServer, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioServer, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_AioServer, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_AioServer, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_AioServer, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__GrpcArgWrapper(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *)o);
  new((void*)&(p->arg)) grpc_arg();
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__GrpcArgWrapper(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__GrpcArgWrapper) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  __Pyx_call_destructor(p->arg);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__GrpcArgWrapper[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__GrpcArgWrapper},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__GrpcArgWrapper},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__GrpcArgWrapper},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper_spec = {
  "grpc._cython.cygrpc._GrpcArgWrapper",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_GrpcArgWrapper", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__GrpcArgWrapper, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__GrpcArgWrapper, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__GrpcArgWrapper, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_InsecureChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_InsecureChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;
  return o;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_InsecureChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials_slots[] = {
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_InsecureChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_InsecureChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials_spec = {
  "grpc._cython.cygrpc.InsecureChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""InsecureChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_InsecureChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_InsecureChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials_slots[] = {
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials_spec = {
  "grpc._cython.cygrpc.ComputeEngineChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ComputeEngineChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CensusContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CensusContext(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CensusContext) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CensusContext[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CensusContext_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CensusContext},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CensusContext},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CensusContext},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CensusContext_spec = {
  "grpc._cython.cygrpc.CensusContext",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_CensusContext_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CensusContext = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CensusContext", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CensusContext, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CensusContext, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CensusContext, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_call_state);
  Py_CLEAR(p->__pyx_v_state);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *)o;
  if (p->__pyx_v_call_state) {
    e = (*v)(((PyObject *)p->__pyx_v_call_state), a); if (e) return e;
  }
  if (p->__pyx_v_state) {
    e = (*v)(((PyObject *)p->__pyx_v_state), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *)o;
  tmp = ((PyObject*)p->__pyx_v_call_state);
  p->__pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_state);
  p->__pyx_v_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_1_next_event",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_1_next_event", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_call_state);
  Py_CLEAR(p->__pyx_v_state);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *)o;
  if (p->__pyx_v_call_state) {
    e = (*v)(((PyObject *)p->__pyx_v_call_state), a); if (e) return e;
  }
  if (p->__pyx_v_state) {
    e = (*v)(((PyObject *)p->__pyx_v_state), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *)o;
  tmp = ((PyObject*)p->__pyx_v_call_state);
  p->__pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_state);
  p->__pyx_v_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_3_next_call_event",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_3_next_call_event", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata));
    (void) PyObject_INIT(o, t);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata));
    (void) PyObject_INIT(o, t);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_6_genexpr",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_6_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_ctx);
  Py_CLEAR(p->__pyx_v_target);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *)o;
  if (p->__pyx_v_ctx) {
    e = (*v)(p->__pyx_v_ctx, a); if (e) return e;
  }
  if (p->__pyx_v_target) {
    e = (*v)(p->__pyx_v_target, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *)o;
  tmp = ((PyObject*)p->__pyx_v_ctx);
  p->__pyx_v_ctx = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_target);
  p->__pyx_v_target = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_7__run_with_context",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_7__run_with_context", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_target);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *)o;
  if (p->__pyx_v_target) {
    e = (*v)(p->__pyx_v_target, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *)o;
  tmp = ((PyObject*)p->__pyx_v_target);
  p->__pyx_v_target = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_8__run_with_context",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_8__run_with_context", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_target);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *)o;
  if (p->__pyx_v_target) {
    e = (*v)(p->__pyx_v_target, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *)o;
  tmp = ((PyObject*)p->__pyx_v_target);
  p->__pyx_v_target = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init___slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init___spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_9___init__",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init___slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_9___init__", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_agen);
  Py_CLEAR(p->__pyx_v_future);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_response);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *)o;
  if (p->__pyx_v_agen) {
    e = (*v)(p->__pyx_v_agen, a); if (e) return e;
  }
  if (p->__pyx_v_future) {
    e = (*v)(p->__pyx_v_future, a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_response) {
    e = (*v)(p->__pyx_v_response, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_10_async_generator_to_generator",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_10_async_generator_to_generator", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_future);
  Py_CLEAR(p->__pyx_v_gen);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_queue);
  Py_CLEAR(p->__pyx_v_response);
  Py_CLEAR(p->__pyx_v_thread_pool);
  Py_CLEAR(p->__pyx_v_yield_to_queue);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *)o;
  if (p->__pyx_v_future) {
    e = (*v)(p->__pyx_v_future, a); if (e) return e;
  }
  if (p->__pyx_v_gen) {
    e = (*v)(p->__pyx_v_gen, a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_queue) {
    e = (*v)(p->__pyx_v_queue, a); if (e) return e;
  }
  if (p->__pyx_v_response) {
    e = (*v)(p->__pyx_v_response, a); if (e) return e;
  }
  if (p->__pyx_v_thread_pool) {
    e = (*v)(p->__pyx_v_thread_pool, a); if (e) return e;
  }
  if (p->__pyx_v_yield_to_queue) {
    e = (*v)(p->__pyx_v_yield_to_queue, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_11_generator_to_async_generator",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_11_generator_to_async_generator", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *)o);
  new((void*)&(p->__pyx_v_c_event)) grpc_event();
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->__pyx_v_c_event);
  Py_CLEAR(p->__pyx_v_batch_operation_tag);
  Py_CLEAR(p->__pyx_v_future);
  Py_CLEAR(p->__pyx_v_grpc_call_error_string);
  Py_CLEAR(p->__pyx_v_grpc_call_wrapper);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_operations);
  Py_CLEAR(p->__pyx_v_wrapper);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *)o;
  if (p->__pyx_v_batch_operation_tag) {
    e = (*v)(((PyObject *)p->__pyx_v_batch_operation_tag), a); if (e) return e;
  }
  if (p->__pyx_v_future) {
    e = (*v)(p->__pyx_v_future, a); if (e) return e;
  }
  if (p->__pyx_v_grpc_call_error_string) {
    e = (*v)(p->__pyx_v_grpc_call_error_string, a); if (e) return e;
  }
  if (p->__pyx_v_grpc_call_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_grpc_call_wrapper), a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_operations) {
    e = (*v)(p->__pyx_v_operations, a); if (e) return e;
  }
  if (p->__pyx_v_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_wrapper), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_12_execute_batch",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_12_execute_batch", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_e);
  Py_CLEAR(p->__pyx_v_grpc_call_wrapper);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_ops);
  Py_CLEAR(p->__pyx_v_receive_op);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *)o;
  if (p->__pyx_v_e) {
    e = (*v)(p->__pyx_v_e, a); if (e) return e;
  }
  if (p->__pyx_v_grpc_call_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_grpc_call_wrapper), a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  if (p->__pyx_v_receive_op) {
    e = (*v)(((PyObject *)p->__pyx_v_receive_op), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_13__receive_message",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_13__receive_message", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_grpc_call_wrapper);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_message);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_ops);
  Py_CLEAR(p->__pyx_v_send_initial_metadata_op);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *)o;
  if (p->__pyx_v_grpc_call_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_grpc_call_wrapper), a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  if (p->__pyx_v_send_initial_metadata_op) {
    e = (*v)(((PyObject *)p->__pyx_v_send_initial_metadata_op), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_14__send_message",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_14__send_message", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_grpc_call_wrapper);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_metadata);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_ops);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *)o;
  if (p->__pyx_v_grpc_call_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_grpc_call_wrapper), a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_metadata) {
    e = (*v)(p->__pyx_v_metadata, a); if (e) return e;
  }
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_15__send_initial_metadata",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_15__send_initial_metadata", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_grpc_call_wrapper);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_ops);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *)o;
  if (p->__pyx_v_grpc_call_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_grpc_call_wrapper), a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_16__receive_initial_metadata",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_16__receive_initial_metadata", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_details);
  Py_CLEAR(p->__pyx_v_grpc_call_wrapper);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_ops);
  Py_CLEAR(p->__pyx_v_send_initial_metadata_op);
  Py_CLEAR(p->__pyx_v_trailing_metadata);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *)o;
  if (p->__pyx_v_grpc_call_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_grpc_call_wrapper), a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  if (p->__pyx_v_send_initial_metadata_op) {
    e = (*v)(((PyObject *)p->__pyx_v_send_initial_metadata_op), a); if (e) return e;
  }
  if (p->__pyx_v_trailing_metadata) {
    e = (*v)(p->__pyx_v_trailing_metadata, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_17__send_error_status_from_server",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_17__send_error_status_from_server", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_future);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *)o;
  if (p->__pyx_v_future) {
    e = (*v)(p->__pyx_v_future, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_18_status",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_18_status", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_future);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *)o;
  if (p->__pyx_v_future) {
    e = (*v)(p->__pyx_v_future, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_19_initial_metadata",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_19_initial_metadata", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_context);
  Py_CLEAR(p->__pyx_v_initial_metadata_op);
  Py_CLEAR(p->__pyx_v_ops);
  Py_CLEAR(p->__pyx_v_outbound_initial_metadata);
  Py_CLEAR(p->__pyx_v_receive_initial_metadata_op);
  Py_CLEAR(p->__pyx_v_receive_message_op);
  Py_CLEAR(p->__pyx_v_receive_status_on_client_op);
  Py_CLEAR(p->__pyx_v_request);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_send_close_op);
  Py_CLEAR(p->__pyx_v_send_message_op);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *)o;
  if (p->__pyx_v_context) {
    e = (*v)(p->__pyx_v_context, a); if (e) return e;
  }
  if (p->__pyx_v_initial_metadata_op) {
    e = (*v)(((PyObject *)p->__pyx_v_initial_metadata_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  if (p->__pyx_v_outbound_initial_metadata) {
    e = (*v)(p->__pyx_v_outbound_initial_metadata, a); if (e) return e;
  }
  if (p->__pyx_v_receive_initial_metadata_op) {
    e = (*v)(((PyObject *)p->__pyx_v_receive_initial_metadata_op), a); if (e) return e;
  }
  if (p->__pyx_v_receive_message_op) {
    e = (*v)(((PyObject *)p->__pyx_v_receive_message_op), a); if (e) return e;
  }
  if (p->__pyx_v_receive_status_on_client_op) {
    e = (*v)(((PyObject *)p->__pyx_v_receive_status_on_client_op), a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_send_close_op) {
    e = (*v)(((PyObject *)p->__pyx_v_send_close_op), a); if (e) return e;
  }
  if (p->__pyx_v_send_message_op) {
    e = (*v)(((PyObject *)p->__pyx_v_send_message_op), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_20_unary_unary",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_20_unary_unary", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_ops);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *)o;
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_21__handle_status_once_received",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_21__handle_status_once_received", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_received_message);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_22_receive_serialized_message",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_22_receive_serialized_message", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_message);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_23_send_serialized_message",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_23_send_serialized_message", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_ops);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *)o;
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_24_send_receive_close",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_24_send_receive_close", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_batch_error);
  Py_CLEAR(p->__pyx_v_context);
  Py_CLEAR(p->__pyx_v_initial_metadata_op);
  Py_CLEAR(p->__pyx_v_outbound_initial_metadata);
  Py_CLEAR(p->__pyx_v_outbound_ops);
  Py_CLEAR(p->__pyx_v_request);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_send_close_op);
  Py_CLEAR(p->__pyx_v_send_message_op);
  Py_CLEAR(p->__pyx_v_status_task);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  Py_CLEAR(p->__pyx_t_3);
  Py_CLEAR(p->__pyx_t_4);
  Py_CLEAR(p->__pyx_t_5);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *)o;
  if (p->__pyx_v_batch_error) {
    e = (*v)(p->__pyx_v_batch_error, a); if (e) return e;
  }
  if (p->__pyx_v_context) {
    e = (*v)(p->__pyx_v_context, a); if (e) return e;
  }
  if (p->__pyx_v_initial_metadata_op) {
    e = (*v)(((PyObject *)p->__pyx_v_initial_metadata_op), a); if (e) return e;
  }
  if (p->__pyx_v_outbound_initial_metadata) {
    e = (*v)(p->__pyx_v_outbound_initial_metadata, a); if (e) return e;
  }
  if (p->__pyx_v_outbound_ops) {
    e = (*v)(p->__pyx_v_outbound_ops, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_send_close_op) {
    e = (*v)(((PyObject *)p->__pyx_v_send_close_op), a); if (e) return e;
  }
  if (p->__pyx_v_send_message_op) {
    e = (*v)(((PyObject *)p->__pyx_v_send_message_op), a); if (e) return e;
  }
  if (p->__pyx_v_status_task) {
    e = (*v)(p->__pyx_v_status_task, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  if (p->__pyx_t_3) {
    e = (*v)(p->__pyx_t_3, a); if (e) return e;
  }
  if (p->__pyx_t_4) {
    e = (*v)(p->__pyx_t_4, a); if (e) return e;
  }
  if (p->__pyx_t_5) {
    e = (*v)(p->__pyx_t_5, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_25_initiate_unary_stream",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_25_initiate_unary_stream", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_context);
  Py_CLEAR(p->__pyx_v_inbound_ops);
  Py_CLEAR(p->__pyx_v_metadata_sent_observer);
  Py_CLEAR(p->__pyx_v_outbound_initial_metadata);
  Py_CLEAR(p->__pyx_v_receive_message_op);
  Py_CLEAR(p->__pyx_v_receive_status_on_client_op);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  Py_CLEAR(p->__pyx_t_3);
  Py_CLEAR(p->__pyx_t_4);
  Py_CLEAR(p->__pyx_t_5);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *)o;
  if (p->__pyx_v_context) {
    e = (*v)(p->__pyx_v_context, a); if (e) return e;
  }
  if (p->__pyx_v_inbound_ops) {
    e = (*v)(p->__pyx_v_inbound_ops, a); if (e) return e;
  }
  if (p->__pyx_v_metadata_sent_observer) {
    e = (*v)(p->__pyx_v_metadata_sent_observer, a); if (e) return e;
  }
  if (p->__pyx_v_outbound_initial_metadata) {
    e = (*v)(p->__pyx_v_outbound_initial_metadata, a); if (e) return e;
  }
  if (p->__pyx_v_receive_message_op) {
    e = (*v)(((PyObject *)p->__pyx_v_receive_message_op), a); if (e) return e;
  }
  if (p->__pyx_v_receive_status_on_client_op) {
    e = (*v)(((PyObject *)p->__pyx_v_receive_status_on_client_op), a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  if (p->__pyx_t_3) {
    e = (*v)(p->__pyx_t_3, a); if (e) return e;
  }
  if (p->__pyx_t_4) {
    e = (*v)(p->__pyx_t_4, a); if (e) return e;
  }
  if (p->__pyx_t_5) {
    e = (*v)(p->__pyx_t_5, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_26_stream_unary",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_26_stream_unary", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_batch_error);
  Py_CLEAR(p->__pyx_v_context);
  Py_CLEAR(p->__pyx_v_metadata_sent_observer);
  Py_CLEAR(p->__pyx_v_outbound_initial_metadata);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_status_task);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  Py_CLEAR(p->__pyx_t_3);
  Py_CLEAR(p->__pyx_t_4);
  Py_CLEAR(p->__pyx_t_5);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *)o;
  if (p->__pyx_v_batch_error) {
    e = (*v)(p->__pyx_v_batch_error, a); if (e) return e;
  }
  if (p->__pyx_v_context) {
    e = (*v)(p->__pyx_v_context, a); if (e) return e;
  }
  if (p->__pyx_v_metadata_sent_observer) {
    e = (*v)(p->__pyx_v_metadata_sent_observer, a); if (e) return e;
  }
  if (p->__pyx_v_outbound_initial_metadata) {
    e = (*v)(p->__pyx_v_outbound_initial_metadata, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_status_task) {
    e = (*v)(p->__pyx_v_status_task, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  if (p->__pyx_t_3) {
    e = (*v)(p->__pyx_t_3, a); if (e) return e;
  }
  if (p->__pyx_t_4) {
    e = (*v)(p->__pyx_t_4, a); if (e) return e;
  }
  if (p->__pyx_t_5) {
    e = (*v)(p->__pyx_t_5, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_27_initiate_stream_stream",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_27_initiate_stream_stream", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *)o);
  new((void*)&(p->__pyx_v_c_deadline)) gpr_timespec();
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->__pyx_v_c_deadline);
  Py_CLEAR(p->__pyx_v_deadline);
  Py_CLEAR(p->__pyx_v_future);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_wrapper);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *)o;
  if (p->__pyx_v_deadline) {
    e = (*v)(p->__pyx_v_deadline, a); if (e) return e;
  }
  if (p->__pyx_v_future) {
    e = (*v)(p->__pyx_v_future, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_wrapper), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_28_watch_connectivity_state",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_28_watch_connectivity_state", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_raw_message);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_29_read",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_29_read", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_message);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *)o;
  if (p->__pyx_v_message) {
    e = (*v)(p->__pyx_v_message, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_30_write",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_30_write", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_metadata);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *)o;
  if (p->__pyx_v_metadata) {
    e = (*v)(p->__pyx_v_metadata, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_31_send_initial_metadata",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_31_send_initial_metadata", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_code);
  Py_CLEAR(p->__pyx_v_details);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_trailing_metadata);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *)o;
  if (p->__pyx_v_code) {
    e = (*v)(p->__pyx_v_code, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_trailing_metadata) {
    e = (*v)(p->__pyx_v_trailing_metadata, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_32_abort",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_32_abort", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_status);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_status) {
    e = (*v)(p->__pyx_v_status, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_33_abort_with_status",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_33_abort_with_status", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_continuation);
  Py_CLEAR(p->__pyx_v_handler_call_details);
  Py_CLEAR(p->__pyx_v_interceptor);
  Py_CLEAR(p->__pyx_v_interceptors);
  Py_CLEAR(p->__pyx_v_query_handler);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *)o;
  if (p->__pyx_v_continuation) {
    e = (*v)(p->__pyx_v_continuation, a); if (e) return e;
  }
  if (p->__pyx_v_handler_call_details) {
    e = (*v)(p->__pyx_v_handler_call_details, a); if (e) return e;
  }
  if (p->__pyx_v_interceptor) {
    e = (*v)(p->__pyx_v_interceptor, a); if (e) return e;
  }
  if (p->__pyx_v_interceptors) {
    e = (*v)(p->__pyx_v_interceptors, a); if (e) return e;
  }
  if (p->__pyx_v_query_handler) {
    e = (*v)(p->__pyx_v_query_handler, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_34__run_interceptor",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_34__run_interceptor", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_generic_handlers);
  Py_CLEAR(p->__pyx_v_handler_call_details);
  Py_CLEAR(p->__pyx_v_interceptors);
  Py_CLEAR(p->__pyx_v_metadata);
  Py_CLEAR(p->__pyx_v_method);
  Py_CLEAR(p->__pyx_v_query_handlers);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *)o;
  if (p->__pyx_v_generic_handlers) {
    e = (*v)(p->__pyx_v_generic_handlers, a); if (e) return e;
  }
  if (p->__pyx_v_handler_call_details) {
    e = (*v)(((PyObject *)p->__pyx_v_handler_call_details), a); if (e) return e;
  }
  if (p->__pyx_v_interceptors) {
    e = (*v)(p->__pyx_v_interceptors, a); if (e) return e;
  }
  if (p->__pyx_v_metadata) {
    e = (*v)(p->__pyx_v_metadata, a); if (e) return e;
  }
  if (p->__pyx_v_query_handlers) {
    e = (*v)(p->__pyx_v_query_handlers, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_35__find_method_handler",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_35__find_method_handler", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_callback);
  Py_CLEAR(p->__pyx_v_finish_ops);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_request);
  Py_CLEAR(p->__pyx_v_response_message);
  Py_CLEAR(p->__pyx_v_response_raw);
  Py_CLEAR(p->__pyx_v_response_serializer);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_servicer_context);
  Py_CLEAR(p->__pyx_v_sync_servicer_context);
  Py_CLEAR(p->__pyx_v_unary_handler);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *)o;
  if (p->__pyx_v_callback) {
    e = (*v)(p->__pyx_v_callback, a); if (e) return e;
  }
  if (p->__pyx_v_finish_ops) {
    e = (*v)(p->__pyx_v_finish_ops, a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_request) {
    e = (*v)(p->__pyx_v_request, a); if (e) return e;
  }
  if (p->__pyx_v_response_message) {
    e = (*v)(p->__pyx_v_response_message, a); if (e) return e;
  }
  if (p->__pyx_v_response_serializer) {
    e = (*v)(p->__pyx_v_response_serializer, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_servicer_context), a); if (e) return e;
  }
  if (p->__pyx_v_sync_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_sync_servicer_context), a); if (e) return e;
  }
  if (p->__pyx_v_unary_handler) {
    e = (*v)(p->__pyx_v_unary_handler, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_36__finish_handler_with_unary_response",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_36__finish_handler_with_unary_response", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_async_response_generator);
  Py_CLEAR(p->__pyx_v_finish_ops);
  Py_CLEAR(p->__pyx_v_gen);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_request);
  Py_CLEAR(p->__pyx_v_response_message);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_servicer_context);
  Py_CLEAR(p->__pyx_v_stream_handler);
  Py_CLEAR(p->__pyx_v_sync_servicer_context);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *)o;
  if (p->__pyx_v_async_response_generator) {
    e = (*v)(p->__pyx_v_async_response_generator, a); if (e) return e;
  }
  if (p->__pyx_v_finish_ops) {
    e = (*v)(p->__pyx_v_finish_ops, a); if (e) return e;
  }
  if (p->__pyx_v_gen) {
    e = (*v)(p->__pyx_v_gen, a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_request) {
    e = (*v)(p->__pyx_v_request, a); if (e) return e;
  }
  if (p->__pyx_v_response_message) {
    e = (*v)(p->__pyx_v_response_message, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_servicer_context), a); if (e) return e;
  }
  if (p->__pyx_v_stream_handler) {
    e = (*v)(p->__pyx_v_stream_handler, a); if (e) return e;
  }
  if (p->__pyx_v_sync_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_sync_servicer_context), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_37__finish_handler_with_stream_responses",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_37__finish_handler_with_stream_responses", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_method_handler);
  Py_CLEAR(p->__pyx_v_request_message);
  Py_CLEAR(p->__pyx_v_request_raw);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_servicer_context);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *)o;
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_method_handler) {
    e = (*v)(p->__pyx_v_method_handler, a); if (e) return e;
  }
  if (p->__pyx_v_request_message) {
    e = (*v)(p->__pyx_v_request_message, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_servicer_context), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_38__handle_unary_unary_rpc",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_38__handle_unary_unary_rpc", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_method_handler);
  Py_CLEAR(p->__pyx_v_request_message);
  Py_CLEAR(p->__pyx_v_request_raw);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_servicer_context);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *)o;
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_method_handler) {
    e = (*v)(p->__pyx_v_method_handler, a); if (e) return e;
  }
  if (p->__pyx_v_request_message) {
    e = (*v)(p->__pyx_v_request_message, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_servicer_context), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_39__handle_unary_stream_rpc",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_39__handle_unary_stream_rpc", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_message);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *)o;
  if (p->__pyx_v_message) {
    e = (*v)(p->__pyx_v_message, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_40__async_message_receiver",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_40__async_message_receiver", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext___slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext___spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_41___anext__",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext___slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_41___anext__", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_method_handler);
  Py_CLEAR(p->__pyx_v_request_iterator);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_servicer_context);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *)o;
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_method_handler) {
    e = (*v)(p->__pyx_v_method_handler, a); if (e) return e;
  }
  if (p->__pyx_v_request_iterator) {
    e = (*v)(p->__pyx_v_request_iterator, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_servicer_context), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_42__handle_stream_unary_rpc",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_42__handle_stream_unary_rpc", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_method_handler);
  Py_CLEAR(p->__pyx_v_request_iterator);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_servicer_context);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *)o;
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_method_handler) {
    e = (*v)(p->__pyx_v_method_handler, a); if (e) return e;
  }
  if (p->__pyx_v_request_iterator) {
    e = (*v)(p->__pyx_v_request_iterator, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_servicer_context), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_43__handle_stream_stream_rpc",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_43__handle_stream_stream_rpc", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_e);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_rpc_coro);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_status_code);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  Py_CLEAR(p->__pyx_t_3);
  Py_CLEAR(p->__pyx_t_4);
  Py_CLEAR(p->__pyx_t_5);
  Py_CLEAR(p->__pyx_t_6);
  Py_CLEAR(p->__pyx_t_7);
  Py_CLEAR(p->__pyx_t_8);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *)o;
  if (p->__pyx_v_e) {
    e = (*v)(p->__pyx_v_e, a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_coro) {
    e = (*v)(p->__pyx_v_rpc_coro, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_status_code) {
    e = (*v)(p->__pyx_v_status_code, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  if (p->__pyx_t_3) {
    e = (*v)(p->__pyx_t_3, a); if (e) return e;
  }
  if (p->__pyx_t_4) {
    e = (*v)(p->__pyx_t_4, a); if (e) return e;
  }
  if (p->__pyx_t_5) {
    e = (*v)(p->__pyx_t_5, a); if (e) return e;
  }
  if (p->__pyx_t_6) {
    e = (*v)(p->__pyx_t_6, a); if (e) return e;
  }
  if (p->__pyx_t_7) {
    e = (*v)(p->__pyx_t_7, a); if (e) return e;
  }
  if (p->__pyx_t_8) {
    e = (*v)(p->__pyx_t_8, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_44__handle_exceptions",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_44__handle_exceptions", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_rpc_state);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *)o;
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *)o;
  tmp = ((PyObject*)p->__pyx_v_rpc_state);
  p->__pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_ops);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_rpc_task);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *)o;
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_rpc_task) {
    e = (*v)(p->__pyx_v_rpc_task, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_46__handle_cancellation_from_core",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_46__handle_cancellation_from_core", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_rpc_coro);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_rpc_task);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *)o;
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_coro) {
    e = (*v)(p->__pyx_v_rpc_coro, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_rpc_task) {
    e = (*v)(p->__pyx_v_rpc_task, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_47__schedule_rpc_coro",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_47__schedule_rpc_coro", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_generic_handlers);
  Py_CLEAR(p->__pyx_v_interceptors);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_method_handler);
  Py_CLEAR(p->__pyx_v_rpc_state);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *)o;
  if (p->__pyx_v_generic_handlers) {
    e = (*v)(p->__pyx_v_generic_handlers, a); if (e) return e;
  }
  if (p->__pyx_v_interceptors) {
    e = (*v)(p->__pyx_v_interceptors, a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_method_handler) {
    e = (*v)(p->__pyx_v_method_handler, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_48__handle_rpc",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_48__handle_rpc", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_future);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_wrapper);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *)o;
  if (p->__pyx_v_future) {
    e = (*v)(p->__pyx_v_future, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_wrapper), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_49__request_call",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_49__request_call", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_rpc_coro);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_rpc_task);
  Py_CLEAR(p->__pyx_v_rpc_tasks);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_server_started);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *)o;
  if (p->__pyx_v_rpc_coro) {
    e = (*v)(p->__pyx_v_rpc_coro, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_rpc_task) {
    e = (*v)(p->__pyx_v_rpc_task, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_tasks) {
    e = (*v)(p->__pyx_v_rpc_tasks, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_server_started) {
    e = (*v)(p->__pyx_v_server_started, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_50__server_main_loop",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_50__server_main_loop", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_server_started);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_server_started) {
    e = (*v)(p->__pyx_v_server_started, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_51_start",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_51_start", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_52__start_shutting_down",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_52__start_shutting_down", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_grace);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  Py_CLEAR(p->__pyx_t_3);
  Py_CLEAR(p->__pyx_t_4);
  Py_CLEAR(p->__pyx_t_5);
  Py_CLEAR(p->__pyx_t_6);
  Py_CLEAR(p->__pyx_t_7);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *)o;
  if (p->__pyx_v_grace) {
    e = (*v)(p->__pyx_v_grace, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  if (p->__pyx_t_3) {
    e = (*v)(p->__pyx_t_3, a); if (e) return e;
  }
  if (p->__pyx_t_4) {
    e = (*v)(p->__pyx_t_4, a); if (e) return e;
  }
  if (p->__pyx_t_5) {
    e = (*v)(p->__pyx_t_5, a); if (e) return e;
  }
  if (p->__pyx_t_6) {
    e = (*v)(p->__pyx_t_6, a); if (e) return e;
  }
  if (p->__pyx_t_7) {
    e = (*v)(p->__pyx_t_7, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_53_shutdown",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_53_shutdown", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination[8];
static int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination = 0;
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination)))) {
    o = (PyObject*)__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination[--__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_timeout);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination)))) {
    __pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination[__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_timeout) {
    e = (*v)(p->__pyx_v_timeout, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_54_wait_for_termination",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_54_wait_for_termination", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *__pyx_freelist___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg[8];
static int __pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg = 0;
#endif

static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg)))) {
    o = (PyObject*)__pyx_freelist___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg[--__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg];
    memset(o, 0, sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg));
    (void) PyObject_INIT(o, t);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg)))) {
    __pyx_freelist___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg[__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg++] = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg},
  {Py_tp_new, (void *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg},
  {0, 0},
};
static PyType_Spec __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg",
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_slots,
};
#else

static PyTypeObject __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg", /*tp_name*/
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *__pyx_freelist___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_[8];
static int __pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ = 0;
#endif

static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_)))) {
    o = (PyObject*)__pyx_freelist___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_[--__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_];
    memset(o, 0, sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_));
    (void) PyObject_INIT(o, t);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_)))) {
    __pyx_freelist___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_[__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_++] = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_},
  {Py_tp_new, (void *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_},
  {0, 0},
};
static PyType_Spec __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_",
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__slots,
};
#else

static PyTypeObject __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_", /*tp_name*/
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *__pyx_freelist___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args[8];
static int __pyx_freecount___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args = 0;
#endif

static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args)))) {
    o = (PyObject*)__pyx_freelist___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args[--__pyx_freecount___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args];
    memset(o, 0, sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args));
    (void) PyObject_INIT(o, t);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args)))) {
    __pyx_freelist___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args[__pyx_freecount___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args++] = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args},
  {Py_tp_new, (void *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args},
  {0, 0},
};
static PyType_Spec __pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args",
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_slots,
};
#else

static PyTypeObject __pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args", /*tp_name*/
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

#if CYTHON_USE_FREELISTS
static struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *__pyx_freelist___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_[8];
static int __pyx_freecount___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ = 0;
#endif

static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_freecount___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_)))) {
    o = (PyObject*)__pyx_freelist___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_[--__pyx_freecount___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_];
    memset(o, 0, sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_));
    (void) PyObject_INIT(o, t);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_freecount___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_)))) {
    __pyx_freelist___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_[__pyx_freecount___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_++] = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_},
  {Py_tp_new, (void *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_},
  {0, 0},
};
static PyType_Spec __pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_",
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__slots,
};
#else

static PyTypeObject __pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_", /*tp_name*/
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};
#ifndef CYTHON_SMALL_CODE
#if defined(__clang__)
    #define CYTHON_SMALL_CODE
#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
    #define CYTHON_SMALL_CODE __attribute__((cold))
#else
    #define CYTHON_SMALL_CODE
#endif
#endif
/* #### Code section: pystring_table ### */

static int __Pyx_CreateStringTabAndInitStrings(void) {
  __Pyx_StringTabEntry __pyx_string_tab[] = {
    {&__pyx_kp_s_0, __pyx_k_0, sizeof(__pyx_k_0), 0, 0, 1, 0},
    {&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0},
    {&__pyx_n_s_ALTSChannelCredentials, __pyx_k_ALTSChannelCredentials, sizeof(__pyx_k_ALTSChannelCredentials), 0, 0, 1, 1},
    {&__pyx_n_s_ALTSChannelCredentials___reduce, __pyx_k_ALTSChannelCredentials___reduce, sizeof(__pyx_k_ALTSChannelCredentials___reduce), 0, 0, 1, 1},
    {&__pyx_n_s_ALTSChannelCredentials___setstat, __pyx_k_ALTSChannelCredentials___setstat, sizeof(__pyx_k_ALTSChannelCredentials___setstat), 0, 0, 1, 1},
    {&__pyx_n_s_AWAIT_THREADS_TIMEOUT_SECONDS, __pyx_k_AWAIT_THREADS_TIMEOUT_SECONDS, sizeof(__pyx_k_AWAIT_THREADS_TIMEOUT_SECONDS), 0, 0, 1, 1},
    {&__pyx_n_s_AbortError, __pyx_k_AbortError, sizeof(__pyx_k_AbortError), 0, 0, 1, 1},
    {&__pyx_kp_s_Abort_already_called, __pyx_k_Abort_already_called, sizeof(__pyx_k_Abort_already_called), 0, 0, 1, 0},
    {&__pyx_kp_s_Abort_error_has_been_replaced, __pyx_k_Abort_error_has_been_replaced, sizeof(__pyx_k_Abort_error_has_been_replaced), 0, 0, 1, 0},
    {&__pyx_kp_s_Abort_error_unexpectedly_suppres, __pyx_k_Abort_error_unexpectedly_suppres, sizeof(__pyx_k_Abort_error_unexpectedly_suppres), 0, 0, 1, 0},
    {&__pyx_kp_s_Aborting_method_s_due_to_server, __pyx_k_Aborting_method_s_due_to_server, sizeof(__pyx_k_Aborting_method_s_due_to_server), 0, 0, 1, 0},
    {&__pyx_n_s_ActiveThreadCount, __pyx_k_ActiveThreadCount, sizeof(__pyx_k_ActiveThreadCount), 0, 0, 1, 1},
    {&__pyx_n_s_ActiveThreadCount___init, __pyx_k_ActiveThreadCount___init, sizeof(__pyx_k_ActiveThreadCount___init), 0, 0, 1, 1},
    {&__pyx_n_s_ActiveThreadCount_await_zero_th, __pyx_k_ActiveThreadCount_await_zero_th, sizeof(__pyx_k_ActiveThreadCount_await_zero_th), 0, 0, 1, 1},
    {&__pyx_n_s_ActiveThreadCount_decrement, __pyx_k_ActiveThreadCount_decrement, sizeof(__pyx_k_ActiveThreadCount_decrement), 0, 0, 1, 1},
    {&__pyx_n_s_ActiveThreadCount_increment, __pyx_k_ActiveThreadCount_increment, sizeof(__pyx_k_ActiveThreadCount_increment), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall, __pyx_k_AioCall, sizeof(__pyx_k_AioCall), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall___reduce_cython, __pyx_k_AioCall___reduce_cython, sizeof(__pyx_k_AioCall___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall___setstate_cython, __pyx_k_AioCall___setstate_cython, sizeof(__pyx_k_AioCall___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall__handle_status_once_rec, __pyx_k_AioCall__handle_status_once_rec, sizeof(__pyx_k_AioCall__handle_status_once_rec), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall__repr, __pyx_k_AioCall__repr, sizeof(__pyx_k_AioCall__repr), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_add_done_callback, __pyx_k_AioCall_add_done_callback, sizeof(__pyx_k_AioCall_add_done_callback), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_cancel, __pyx_k_AioCall_cancel, sizeof(__pyx_k_AioCall_cancel), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_cancelled, __pyx_k_AioCall_cancelled, sizeof(__pyx_k_AioCall_cancelled), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_done, __pyx_k_AioCall_done, sizeof(__pyx_k_AioCall_done), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_initial_metadata, __pyx_k_AioCall_initial_metadata, sizeof(__pyx_k_AioCall_initial_metadata), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_initiate_stream_stream, __pyx_k_AioCall_initiate_stream_stream, sizeof(__pyx_k_AioCall_initiate_stream_stream), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_initiate_unary_stream, __pyx_k_AioCall_initiate_unary_stream, sizeof(__pyx_k_AioCall_initiate_unary_stream), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_is_locally_cancelled, __pyx_k_AioCall_is_locally_cancelled, sizeof(__pyx_k_AioCall_is_locally_cancelled), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_is_ok, __pyx_k_AioCall_is_ok, sizeof(__pyx_k_AioCall_is_ok), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_receive_serialized_mess, __pyx_k_AioCall_receive_serialized_mess, sizeof(__pyx_k_AioCall_receive_serialized_mess), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_send_receive_close, __pyx_k_AioCall_send_receive_close, sizeof(__pyx_k_AioCall_send_receive_close), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_send_serialized_message, __pyx_k_AioCall_send_serialized_message, sizeof(__pyx_k_AioCall_send_serialized_message), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_set_internal_error, __pyx_k_AioCall_set_internal_error, sizeof(__pyx_k_AioCall_set_internal_error), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_status, __pyx_k_AioCall_status, sizeof(__pyx_k_AioCall_status), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_stream_unary, __pyx_k_AioCall_stream_unary, sizeof(__pyx_k_AioCall_stream_unary), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_time_remaining, __pyx_k_AioCall_time_remaining, sizeof(__pyx_k_AioCall_time_remaining), 0, 0, 1, 1},
    {&__pyx_n_s_AioCall_unary_unary, __pyx_k_AioCall_unary_unary, sizeof(__pyx_k_AioCall_unary_unary), 0, 0, 1, 1},
    {&__pyx_n_s_AioChannel, __pyx_k_AioChannel, sizeof(__pyx_k_AioChannel), 0, 0, 1, 1},
    {&__pyx_n_s_AioChannel___reduce_cython, __pyx_k_AioChannel___reduce_cython, sizeof(__pyx_k_AioChannel___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_AioChannel___setstate_cython, __pyx_k_AioChannel___setstate_cython, sizeof(__pyx_k_AioChannel___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_AioChannel_call, __pyx_k_AioChannel_call, sizeof(__pyx_k_AioChannel_call), 0, 0, 1, 1},
    {&__pyx_n_s_AioChannel_check_connectivity_st, __pyx_k_AioChannel_check_connectivity_st, sizeof(__pyx_k_AioChannel_check_connectivity_st), 0, 0, 1, 1},
    {&__pyx_n_s_AioChannel_close, __pyx_k_AioChannel_close, sizeof(__pyx_k_AioChannel_close), 0, 0, 1, 1},
    {&__pyx_n_s_AioChannel_closed, __pyx_k_AioChannel_closed, sizeof(__pyx_k_AioChannel_closed), 0, 0, 1, 1},
    {&__pyx_n_s_AioChannel_closing, __pyx_k_AioChannel_closing, sizeof(__pyx_k_AioChannel_closing), 0, 0, 1, 1},
    {&__pyx_n_s_AioChannel_watch_connectivity_st, __pyx_k_AioChannel_watch_connectivity_st, sizeof(__pyx_k_AioChannel_watch_connectivity_st), 0, 0, 1, 1},
    {&__pyx_n_s_AioRpcStatus, __pyx_k_AioRpcStatus, sizeof(__pyx_k_AioRpcStatus), 0, 0, 1, 1},
    {&__pyx_n_s_AioRpcStatus___reduce_cython, __pyx_k_AioRpcStatus___reduce_cython, sizeof(__pyx_k_AioRpcStatus___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_AioRpcStatus___setstate_cython, __pyx_k_AioRpcStatus___setstate_cython, sizeof(__pyx_k_AioRpcStatus___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_AioRpcStatus_code, __pyx_k_AioRpcStatus_code, sizeof(__pyx_k_AioRpcStatus_code), 0, 0, 1, 1},
    {&__pyx_n_s_AioRpcStatus_debug_error_string, __pyx_k_AioRpcStatus_debug_error_string, sizeof(__pyx_k_AioRpcStatus_debug_error_string), 0, 0, 1, 1},
    {&__pyx_n_s_AioRpcStatus_details, __pyx_k_AioRpcStatus_details, sizeof(__pyx_k_AioRpcStatus_details), 0, 0, 1, 1},
    {&__pyx_n_s_AioRpcStatus_trailing_metadata, __pyx_k_AioRpcStatus_trailing_metadata, sizeof(__pyx_k_AioRpcStatus_trailing_metadata), 0, 0, 1, 1},
    {&__pyx_n_s_AioServer, __pyx_k_AioServer, sizeof(__pyx_k_AioServer), 0, 0, 1, 1},
    {&__pyx_n_s_AioServer___reduce_cython, __pyx_k_AioServer___reduce_cython, sizeof(__pyx_k_AioServer___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_AioServer___setstate_cython, __pyx_k_AioServer___setstate_cython, sizeof(__pyx_k_AioServer___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_AioServer__request_call, __pyx_k_AioServer__request_call, sizeof(__pyx_k_AioServer__request_call), 0, 0, 1, 1},
    {&__pyx_n_s_AioServer__server_main_loop, __pyx_k_AioServer__server_main_loop, sizeof(__pyx_k_AioServer__server_main_loop), 0, 0, 1, 1},
    {&__pyx_n_s_AioServer__serving_task_crash_ha, __pyx_k_AioServer__serving_task_crash_ha, sizeof(__pyx_k_AioServer__serving_task_crash_ha), 0, 0, 1, 1},
    {&__pyx_n_s_AioServer__start_shutting_down, __pyx_k_AioServer__start_shutting_down, sizeof(__pyx_k_AioServer__start_shutting_down), 0, 0, 1, 1},
    {&__pyx_n_s_AioServer_add_generic_rpc_handle, __pyx_k_AioServer_add_generic_rpc_handle, sizeof(__pyx_k_AioServer_add_generic_rpc_handle), 0, 0, 1, 1},
    {&__pyx_n_s_AioServer_add_insecure_port, __pyx_k_AioServer_add_insecure_port, sizeof(__pyx_k_AioServer_add_insecure_port), 0, 0, 1, 1},
    {&__pyx_n_s_AioServer_add_secure_port, __pyx_k_AioServer_add_secure_port, sizeof(__pyx_k_AioServer_add_secure_port), 0, 0, 1, 1},
    {&__pyx_n_s_AioServer_is_running, __pyx_k_AioServer_is_running, sizeof(__pyx_k_AioServer_is_running), 0, 0, 1, 1},
    {&__pyx_n_s_AioServer_shutdown, __pyx_k_AioServer_shutdown, sizeof(__pyx_k_AioServer_shutdown), 0, 0, 1, 1},
    {&__pyx_n_s_AioServer_start, __pyx_k_AioServer_start, sizeof(__pyx_k_AioServer_start), 0, 0, 1, 1},
    {&__pyx_n_s_AioServer_wait_for_termination, __pyx_k_AioServer_wait_for_termination, sizeof(__pyx_k_AioServer_wait_for_termination), 0, 0, 1, 1},
    {&__pyx_n_s_AioState, __pyx_k_AioState, sizeof(__pyx_k_AioState), 0, 0, 1, 1},
    {&__pyx_n_s_AioState___reduce_cython, __pyx_k_AioState___reduce_cython, sizeof(__pyx_k_AioState___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_AioState___setstate_cython, __pyx_k_AioState___setstate_cython, sizeof(__pyx_k_AioState___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_AssertionError, __pyx_k_AssertionError, sizeof(__pyx_k_AssertionError), 0, 0, 1, 1},
    {&__pyx_n_s_AsyncIOEngine, __pyx_k_AsyncIOEngine, sizeof(__pyx_k_AsyncIOEngine), 0, 0, 1, 1},
    {&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1},
    {&__pyx_n_s_BaseCompletionQueue, __pyx_k_BaseCompletionQueue, sizeof(__pyx_k_BaseCompletionQueue), 0, 0, 1, 1},
    {&__pyx_n_s_BaseCompletionQueue___reduce_cyt, __pyx_k_BaseCompletionQueue___reduce_cyt, sizeof(__pyx_k_BaseCompletionQueue___reduce_cyt), 0, 0, 1, 1},
    {&__pyx_n_s_BaseCompletionQueue___setstate_c, __pyx_k_BaseCompletionQueue___setstate_c, sizeof(__pyx_k_BaseCompletionQueue___setstate_c), 0, 0, 1, 1},
    {&__pyx_n_s_BaseError, __pyx_k_BaseError, sizeof(__pyx_k_BaseError), 0, 0, 1, 1},
    {&__pyx_n_s_BaseEvent, __pyx_k_BaseEvent, sizeof(__pyx_k_BaseEvent), 0, 0, 1, 1},
    {&__pyx_n_s_BatchOperationEvent, __pyx_k_BatchOperationEvent, sizeof(__pyx_k_BatchOperationEvent), 0, 0, 1, 1},
    {&__pyx_n_s_BatchOperationEvent___reduce_cyt, __pyx_k_BatchOperationEvent___reduce_cyt, sizeof(__pyx_k_BatchOperationEvent___reduce_cyt), 0, 0, 1, 1},
    {&__pyx_n_s_BatchOperationEvent___setstate_c, __pyx_k_BatchOperationEvent___setstate_c, sizeof(__pyx_k_BatchOperationEvent___setstate_c), 0, 0, 1, 1},
    {&__pyx_n_s_BatchOperationTag, __pyx_k_BatchOperationTag, sizeof(__pyx_k_BatchOperationTag), 0, 0, 1, 1},
    {&__pyx_n_s_BatchOperationTag___reduce_cyth, __pyx_k_BatchOperationTag___reduce_cyth, sizeof(__pyx_k_BatchOperationTag___reduce_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_BatchOperationTag___setstate_cy, __pyx_k_BatchOperationTag___setstate_cy, sizeof(__pyx_k_BatchOperationTag___setstate_cy), 0, 0, 1, 1},
    {&__pyx_kp_s_Binary_metadata_key_s_expected_b, __pyx_k_Binary_metadata_key_s_expected_b, sizeof(__pyx_k_Binary_metadata_key_s_expected_b), 0, 0, 1, 0},
    {&__pyx_n_s_BoundEventLoop, __pyx_k_BoundEventLoop, sizeof(__pyx_k_BoundEventLoop), 0, 0, 1, 1},
    {&__pyx_n_s_BoundEventLoop___reduce_cython, __pyx_k_BoundEventLoop___reduce_cython, sizeof(__pyx_k_BoundEventLoop___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_BoundEventLoop___setstate_cytho, __pyx_k_BoundEventLoop___setstate_cytho, sizeof(__pyx_k_BoundEventLoop___setstate_cytho), 0, 0, 1, 1},
    {&__pyx_n_s_BoundEventLoop_close, __pyx_k_BoundEventLoop_close, sizeof(__pyx_k_BoundEventLoop_close), 0, 0, 1, 1},
    {&__pyx_n_s_COMPRESSION_METADATA_STRING_MAP, __pyx_k_COMPRESSION_METADATA_STRING_MAP, sizeof(__pyx_k_COMPRESSION_METADATA_STRING_MAP), 0, 0, 1, 1},
    {&__pyx_n_s_CUSTOM_IO_MANAGER, __pyx_k_CUSTOM_IO_MANAGER, sizeof(__pyx_k_CUSTOM_IO_MANAGER), 0, 0, 1, 1},
    {&__pyx_n_s_CYGRPC_STATUS_CODE_TO_STATUS_COD, __pyx_k_CYGRPC_STATUS_CODE_TO_STATUS_COD, sizeof(__pyx_k_CYGRPC_STATUS_CODE_TO_STATUS_COD), 0, 0, 1, 1},
    {&__pyx_n_s_Call, __pyx_k_Call, sizeof(__pyx_k_Call), 0, 0, 1, 1},
    {&__pyx_n_s_CallCredentials, __pyx_k_CallCredentials, sizeof(__pyx_k_CallCredentials), 0, 0, 1, 1},
    {&__pyx_n_s_CallCredentials___reduce_cython, __pyx_k_CallCredentials___reduce_cython, sizeof(__pyx_k_CallCredentials___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_CallCredentials___setstate_cytho, __pyx_k_CallCredentials___setstate_cytho, sizeof(__pyx_k_CallCredentials___setstate_cytho), 0, 0, 1, 1},
    {&__pyx_n_s_CallDetails, __pyx_k_CallDetails, sizeof(__pyx_k_CallDetails), 0, 0, 1, 1},
    {&__pyx_n_s_CallDetails___reduce_cython, __pyx_k_CallDetails___reduce_cython, sizeof(__pyx_k_CallDetails___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_CallDetails___setstate_cython, __pyx_k_CallDetails___setstate_cython, sizeof(__pyx_k_CallDetails___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_CallError, __pyx_k_CallError, sizeof(__pyx_k_CallError), 0, 0, 1, 1},
    {&__pyx_n_s_CallHandle, __pyx_k_CallHandle, sizeof(__pyx_k_CallHandle), 0, 0, 1, 1},
    {&__pyx_n_s_CallHandle___reduce_cython, __pyx_k_CallHandle___reduce_cython, sizeof(__pyx_k_CallHandle___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_CallHandle___setstate_cython, __pyx_k_CallHandle___setstate_cython, sizeof(__pyx_k_CallHandle___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_CallState, __pyx_k_CallState, sizeof(__pyx_k_CallState), 0, 0, 1, 1},
    {&__pyx_n_s_CallState___reduce_cython, __pyx_k_CallState___reduce_cython, sizeof(__pyx_k_CallState___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_CallState___setstate_cython, __pyx_k_CallState___setstate_cython, sizeof(__pyx_k_CallState___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Call___reduce_cython, __pyx_k_Call___reduce_cython, sizeof(__pyx_k_Call___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Call___setstate_cython, __pyx_k_Call___setstate_cython, sizeof(__pyx_k_Call___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Call__custom_op_on_c_call, __pyx_k_Call__custom_op_on_c_call, sizeof(__pyx_k_Call__custom_op_on_c_call), 0, 0, 1, 1},
    {&__pyx_n_s_Call__start_batch, __pyx_k_Call__start_batch, sizeof(__pyx_k_Call__start_batch), 0, 0, 1, 1},
    {&__pyx_n_s_Call_cancel, __pyx_k_Call_cancel, sizeof(__pyx_k_Call_cancel), 0, 0, 1, 1},
    {&__pyx_kp_s_Call_credentials_are_only_valid, __pyx_k_Call_credentials_are_only_valid, sizeof(__pyx_k_Call_credentials_are_only_valid), 0, 0, 1, 0},
    {&__pyx_kp_s_Call_credentials_may_not_be_NULL, __pyx_k_Call_credentials_may_not_be_NULL, sizeof(__pyx_k_Call_credentials_may_not_be_NULL), 0, 0, 1, 0},
    {&__pyx_n_s_Call_peer, __pyx_k_Call_peer, sizeof(__pyx_k_Call_peer), 0, 0, 1, 1},
    {&__pyx_n_s_Call_set_credentials, __pyx_k_Call_set_credentials, sizeof(__pyx_k_Call_set_credentials), 0, 0, 1, 1},
    {&__pyx_n_s_Call_start_client_batch, __pyx_k_Call_start_client_batch, sizeof(__pyx_k_Call_start_client_batch), 0, 0, 1, 1},
    {&__pyx_n_s_Call_start_server_batch, __pyx_k_Call_start_server_batch, sizeof(__pyx_k_Call_start_server_batch), 0, 0, 1, 1},
    {&__pyx_n_s_CallbackFailureHandler, __pyx_k_CallbackFailureHandler, sizeof(__pyx_k_CallbackFailureHandler), 0, 0, 1, 1},
    {&__pyx_n_s_CallbackFailureHandler___reduce, __pyx_k_CallbackFailureHandler___reduce, sizeof(__pyx_k_CallbackFailureHandler___reduce), 0, 0, 1, 1},
    {&__pyx_n_s_CallbackFailureHandler___setstat, __pyx_k_CallbackFailureHandler___setstat, sizeof(__pyx_k_CallbackFailureHandler___setstat), 0, 0, 1, 1},
    {&__pyx_n_s_CallbackWrapper, __pyx_k_CallbackWrapper, sizeof(__pyx_k_CallbackWrapper), 0, 0, 1, 1},
    {&__pyx_n_s_CallbackWrapper___reduce_cython, __pyx_k_CallbackWrapper___reduce_cython, sizeof(__pyx_k_CallbackWrapper___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_CallbackWrapper___setstate_cytho, __pyx_k_CallbackWrapper___setstate_cytho, sizeof(__pyx_k_CallbackWrapper___setstate_cytho), 0, 0, 1, 1},
    {&__pyx_n_s_CancelledError, __pyx_k_CancelledError, sizeof(__pyx_k_CancelledError), 0, 0, 1, 1},
    {&__pyx_kp_s_Cannot_invoke_RPC_on_closed_chan, __pyx_k_Cannot_invoke_RPC_on_closed_chan, sizeof(__pyx_k_Cannot_invoke_RPC_on_closed_chan), 0, 0, 1, 0},
    {&__pyx_kp_s_Cannot_invoke_RPC_s, __pyx_k_Cannot_invoke_RPC_s, sizeof(__pyx_k_Cannot_invoke_RPC_s), 0, 0, 1, 0},
    {&__pyx_kp_s_Cannot_monitor_channel_state_s, __pyx_k_Cannot_monitor_channel_state_s, sizeof(__pyx_k_Cannot_monitor_channel_state_s), 0, 0, 1, 0},
    {&__pyx_n_s_CensusContext, __pyx_k_CensusContext, sizeof(__pyx_k_CensusContext), 0, 0, 1, 1},
    {&__pyx_n_s_CensusContext___reduce_cython, __pyx_k_CensusContext___reduce_cython, sizeof(__pyx_k_CensusContext___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_CensusContext___setstate_cython, __pyx_k_CensusContext___setstate_cython, sizeof(__pyx_k_CensusContext___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Channel, __pyx_k_Channel, sizeof(__pyx_k_Channel), 0, 0, 1, 1},
    {&__pyx_n_s_ChannelArg, __pyx_k_ChannelArg, sizeof(__pyx_k_ChannelArg), 0, 0, 1, 1},
    {&__pyx_n_s_ChannelArgKey, __pyx_k_ChannelArgKey, sizeof(__pyx_k_ChannelArgKey), 0, 0, 1, 1},
    {&__pyx_n_s_ChannelArg___reduce_cython, __pyx_k_ChannelArg___reduce_cython, sizeof(__pyx_k_ChannelArg___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_ChannelArg___setstate_cython, __pyx_k_ChannelArg___setstate_cython, sizeof(__pyx_k_ChannelArg___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_ChannelArgs, __pyx_k_ChannelArgs, sizeof(__pyx_k_ChannelArgs), 0, 0, 1, 1},
    {&__pyx_n_s_ChannelArgs___reduce_cython, __pyx_k_ChannelArgs___reduce_cython, sizeof(__pyx_k_ChannelArgs___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_ChannelArgs___setstate_cython, __pyx_k_ChannelArgs___setstate_cython, sizeof(__pyx_k_ChannelArgs___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_ChannelCredentials, __pyx_k_ChannelCredentials, sizeof(__pyx_k_ChannelCredentials), 0, 0, 1, 1},
    {&__pyx_n_s_ChannelCredentials___reduce_cyth, __pyx_k_ChannelCredentials___reduce_cyth, sizeof(__pyx_k_ChannelCredentials___reduce_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_ChannelCredentials___setstate_cy, __pyx_k_ChannelCredentials___setstate_cy, sizeof(__pyx_k_ChannelCredentials___setstate_cy), 0, 0, 1, 1},
    {&__pyx_n_s_ChannelState, __pyx_k_ChannelState, sizeof(__pyx_k_ChannelState), 0, 0, 1, 1},
    {&__pyx_n_s_ChannelState___reduce_cython, __pyx_k_ChannelState___reduce_cython, sizeof(__pyx_k_ChannelState___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_ChannelState___setstate_cython, __pyx_k_ChannelState___setstate_cython, sizeof(__pyx_k_ChannelState___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Channel___reduce_cython, __pyx_k_Channel___reduce_cython, sizeof(__pyx_k_Channel___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Channel___setstate_cython, __pyx_k_Channel___setstate_cython, sizeof(__pyx_k_Channel___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Channel_check_connectivity_state, __pyx_k_Channel_check_connectivity_state, sizeof(__pyx_k_Channel_check_connectivity_state), 0, 0, 1, 1},
    {&__pyx_n_s_Channel_close, __pyx_k_Channel_close, sizeof(__pyx_k_Channel_close), 0, 0, 1, 1},
    {&__pyx_n_s_Channel_close_on_fork, __pyx_k_Channel_close_on_fork, sizeof(__pyx_k_Channel_close_on_fork), 0, 0, 1, 1},
    {&__pyx_n_s_Channel_get_registered_call_hand, __pyx_k_Channel_get_registered_call_hand, sizeof(__pyx_k_Channel_get_registered_call_hand), 0, 0, 1, 1},
    {&__pyx_n_s_Channel_integrated_call, __pyx_k_Channel_integrated_call, sizeof(__pyx_k_Channel_integrated_call), 0, 0, 1, 1},
    {&__pyx_kp_s_Channel_is_closed, __pyx_k_Channel_is_closed, sizeof(__pyx_k_Channel_is_closed), 0, 0, 1, 0},
    {&__pyx_n_s_Channel_next_call_event, __pyx_k_Channel_next_call_event, sizeof(__pyx_k_Channel_next_call_event), 0, 0, 1, 1},
    {&__pyx_n_s_Channel_segregated_call, __pyx_k_Channel_segregated_call, sizeof(__pyx_k_Channel_segregated_call), 0, 0, 1, 1},
    {&__pyx_n_s_Channel_target, __pyx_k_Channel_target, sizeof(__pyx_k_Channel_target), 0, 0, 1, 1},
    {&__pyx_n_s_Channel_watch_connectivity_state, __pyx_k_Channel_watch_connectivity_state, sizeof(__pyx_k_Channel_watch_connectivity_state), 0, 0, 1, 1},
    {&__pyx_n_s_CompletionQueue, __pyx_k_CompletionQueue, sizeof(__pyx_k_CompletionQueue), 0, 0, 1, 1},
    {&__pyx_n_s_CompletionQueue___reduce_cython, __pyx_k_CompletionQueue___reduce_cython, sizeof(__pyx_k_CompletionQueue___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_CompletionQueue___setstate_cytho, __pyx_k_CompletionQueue___setstate_cytho, sizeof(__pyx_k_CompletionQueue___setstate_cytho), 0, 0, 1, 1},
    {&__pyx_n_s_CompletionQueue__internal_poll, __pyx_k_CompletionQueue__internal_poll, sizeof(__pyx_k_CompletionQueue__internal_poll), 0, 0, 1, 1},
    {&__pyx_n_s_CompletionQueue_clear, __pyx_k_CompletionQueue_clear, sizeof(__pyx_k_CompletionQueue_clear), 0, 0, 1, 1},
    {&__pyx_n_s_CompletionQueue_poll, __pyx_k_CompletionQueue_poll, sizeof(__pyx_k_CompletionQueue_poll), 0, 0, 1, 1},
    {&__pyx_n_s_CompletionQueue_shutdown, __pyx_k_CompletionQueue_shutdown, sizeof(__pyx_k_CompletionQueue_shutdown), 0, 0, 1, 1},
    {&__pyx_n_s_CompletionType, __pyx_k_CompletionType, sizeof(__pyx_k_CompletionType), 0, 0, 1, 1},
    {&__pyx_n_s_CompositeCallCredentials, __pyx_k_CompositeCallCredentials, sizeof(__pyx_k_CompositeCallCredentials), 0, 0, 1, 1},
    {&__pyx_n_s_CompositeCallCredentials___reduc, __pyx_k_CompositeCallCredentials___reduc, sizeof(__pyx_k_CompositeCallCredentials___reduc), 0, 0, 1, 1},
    {&__pyx_n_s_CompositeCallCredentials___setst, __pyx_k_CompositeCallCredentials___setst, sizeof(__pyx_k_CompositeCallCredentials___setst), 0, 0, 1, 1},
    {&__pyx_n_s_CompositeChannelCredentials, __pyx_k_CompositeChannelCredentials, sizeof(__pyx_k_CompositeChannelCredentials), 0, 0, 1, 1},
    {&__pyx_n_s_CompositeChannelCredentials___re, __pyx_k_CompositeChannelCredentials___re, sizeof(__pyx_k_CompositeChannelCredentials___re), 0, 0, 1, 1},
    {&__pyx_n_s_CompositeChannelCredentials___se, __pyx_k_CompositeChannelCredentials___se, sizeof(__pyx_k_CompositeChannelCredentials___se), 0, 0, 1, 1},
    {&__pyx_n_s_CompressionAlgorithm, __pyx_k_CompressionAlgorithm, sizeof(__pyx_k_CompressionAlgorithm), 0, 0, 1, 1},
    {&__pyx_n_s_CompressionLevel, __pyx_k_CompressionLevel, sizeof(__pyx_k_CompressionLevel), 0, 0, 1, 1},
    {&__pyx_n_s_CompressionOptions, __pyx_k_CompressionOptions, sizeof(__pyx_k_CompressionOptions), 0, 0, 1, 1},
    {&__pyx_n_s_CompressionOptions___reduce_cyth, __pyx_k_CompressionOptions___reduce_cyth, sizeof(__pyx_k_CompressionOptions___reduce_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_CompressionOptions___setstate_cy, __pyx_k_CompressionOptions___setstate_cy, sizeof(__pyx_k_CompressionOptions___setstate_cy), 0, 0, 1, 1},
    {&__pyx_n_s_CompressionOptions_disable_algor, __pyx_k_CompressionOptions_disable_algor, sizeof(__pyx_k_CompressionOptions_disable_algor), 0, 0, 1, 1},
    {&__pyx_n_s_CompressionOptions_enable_algori, __pyx_k_CompressionOptions_enable_algori, sizeof(__pyx_k_CompressionOptions_enable_algori), 0, 0, 1, 1},
    {&__pyx_n_s_CompressionOptions_is_algorithm, __pyx_k_CompressionOptions_is_algorithm, sizeof(__pyx_k_CompressionOptions_is_algorithm), 0, 0, 1, 1},
    {&__pyx_n_s_CompressionOptions_to_channel_ar, __pyx_k_CompressionOptions_to_channel_ar, sizeof(__pyx_k_CompressionOptions_to_channel_ar), 0, 0, 1, 1},
    {&__pyx_kp_s_Compression_setting_must_be_spec, __pyx_k_Compression_setting_must_be_spec, sizeof(__pyx_k_Compression_setting_must_be_spec), 0, 0, 1, 0},
    {&__pyx_n_s_ComputeEngineChannelCredentials, __pyx_k_ComputeEngineChannelCredentials, sizeof(__pyx_k_ComputeEngineChannelCredentials), 0, 0, 1, 1},
    {&__pyx_n_s_ComputeEngineChannelCredentials_2, __pyx_k_ComputeEngineChannelCredentials_2, sizeof(__pyx_k_ComputeEngineChannelCredentials_2), 0, 0, 1, 1},
    {&__pyx_n_s_ComputeEngineChannelCredentials_3, __pyx_k_ComputeEngineChannelCredentials_3, sizeof(__pyx_k_ComputeEngineChannelCredentials_3), 0, 0, 1, 1},
    {&__pyx_n_s_ConcurrentRpcLimiter, __pyx_k_ConcurrentRpcLimiter, sizeof(__pyx_k_ConcurrentRpcLimiter), 0, 0, 1, 1},
    {&__pyx_n_s_ConcurrentRpcLimiter___reduce_c, __pyx_k_ConcurrentRpcLimiter___reduce_c, sizeof(__pyx_k_ConcurrentRpcLimiter___reduce_c), 0, 0, 1, 1},
    {&__pyx_n_s_ConcurrentRpcLimiter___setstate, __pyx_k_ConcurrentRpcLimiter___setstate, sizeof(__pyx_k_ConcurrentRpcLimiter___setstate), 0, 0, 1, 1},
    {&__pyx_n_s_ConcurrentRpcLimiter__decrease, __pyx_k_ConcurrentRpcLimiter__decrease, sizeof(__pyx_k_ConcurrentRpcLimiter__decrease), 0, 0, 1, 1},
    {&__pyx_n_s_ConcurrentRpcLimiter_check_befo, __pyx_k_ConcurrentRpcLimiter_check_befo, sizeof(__pyx_k_ConcurrentRpcLimiter_check_befo), 0, 0, 1, 1},
    {&__pyx_n_s_ConcurrentRpcLimiter_decrease_o, __pyx_k_ConcurrentRpcLimiter_decrease_o, sizeof(__pyx_k_ConcurrentRpcLimiter_decrease_o), 0, 0, 1, 1},
    {&__pyx_kp_s_Concurrent_RPC_limit_exceeded, __pyx_k_Concurrent_RPC_limit_exceeded, sizeof(__pyx_k_Concurrent_RPC_limit_exceeded), 0, 0, 1, 0},
    {&__pyx_n_s_Condition, __pyx_k_Condition, sizeof(__pyx_k_Condition), 0, 0, 1, 1},
    {&__pyx_n_s_ConnectivityEvent, __pyx_k_ConnectivityEvent, sizeof(__pyx_k_ConnectivityEvent), 0, 0, 1, 1},
    {&__pyx_n_s_ConnectivityEvent___reduce_cytho, __pyx_k_ConnectivityEvent___reduce_cytho, sizeof(__pyx_k_ConnectivityEvent___reduce_cytho), 0, 0, 1, 1},
    {&__pyx_n_s_ConnectivityEvent___setstate_cyt, __pyx_k_ConnectivityEvent___setstate_cyt, sizeof(__pyx_k_ConnectivityEvent___setstate_cyt), 0, 0, 1, 1},
    {&__pyx_n_s_ConnectivityState, __pyx_k_ConnectivityState, sizeof(__pyx_k_ConnectivityState), 0, 0, 1, 1},
    {&__pyx_n_s_ConnectivityTag, __pyx_k_ConnectivityTag, sizeof(__pyx_k_ConnectivityTag), 0, 0, 1, 1},
    {&__pyx_n_s_ConnectivityTag___reduce_cython, __pyx_k_ConnectivityTag___reduce_cython, sizeof(__pyx_k_ConnectivityTag___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_ConnectivityTag___setstate_cyth, __pyx_k_ConnectivityTag___setstate_cyth, sizeof(__pyx_k_ConnectivityTag___setstate_cyth), 0, 0, 1, 1},
    {&__pyx_kp_s_Core_should_not_return_GRPC_QUEU, __pyx_k_Core_should_not_return_GRPC_QUEU, sizeof(__pyx_k_Core_should_not_return_GRPC_QUEU), 0, 0, 1, 0},
    {&__pyx_kp_s_Credentials_couldn_t_have_been_s, __pyx_k_Credentials_couldn_t_have_been_s, sizeof(__pyx_k_Credentials_couldn_t_have_been_s), 0, 0, 1, 0},
    {&__pyx_kp_s_Dedicated_exception_class_for_wa, __pyx_k_Dedicated_exception_class_for_wa, sizeof(__pyx_k_Dedicated_exception_class_for_wa), 0, 0, 1, 0},
    {&__pyx_n_s_DeprecationWarning, __pyx_k_DeprecationWarning, sizeof(__pyx_k_DeprecationWarning), 0, 0, 1, 1},
    {&__pyx_n_s_EMPTY_FLAGS, __pyx_k_EMPTY_FLAGS, sizeof(__pyx_k_EMPTY_FLAGS), 0, 0, 1, 1},
    {&__pyx_n_s_EMPTY_MASK, __pyx_k_EMPTY_MASK, sizeof(__pyx_k_EMPTY_MASK), 0, 0, 1, 1},
    {&__pyx_n_s_EOF, __pyx_k_EOF, sizeof(__pyx_k_EOF), 0, 0, 1, 1},
    {&__pyx_n_s_EOF_2, __pyx_k_EOF_2, sizeof(__pyx_k_EOF_2), 0, 0, 1, 1},
    {&__pyx_n_s_EOF___bool, __pyx_k_EOF___bool, sizeof(__pyx_k_EOF___bool), 0, 0, 1, 1},
    {&__pyx_n_s_EOF___len, __pyx_k_EOF___len, sizeof(__pyx_k_EOF___len), 0, 0, 1, 1},
    {&__pyx_n_s_EOF___repr, __pyx_k_EOF___repr, sizeof(__pyx_k_EOF___repr), 0, 0, 1, 1},
    {&__pyx_n_s_EOF___str, __pyx_k_EOF___str, sizeof(__pyx_k_EOF___str), 0, 0, 1, 1},
    {&__pyx_n_s_EOF__repr, __pyx_k_EOF__repr, sizeof(__pyx_k_EOF__repr), 0, 0, 1, 1},
    {&__pyx_n_s_EX_USAGE, __pyx_k_EX_USAGE, sizeof(__pyx_k_EX_USAGE), 0, 0, 1, 1},
    {&__pyx_n_s_Enum, __pyx_k_Enum, sizeof(__pyx_k_Enum), 0, 0, 1, 1},
    {&__pyx_kp_s_Error_fetching_certificate_confi, __pyx_k_Error_fetching_certificate_confi, sizeof(__pyx_k_Error_fetching_certificate_confi), 0, 0, 1, 0},
    {&__pyx_kp_s_Error_fetching_certificate_confi_2, __pyx_k_Error_fetching_certificate_confi_2, sizeof(__pyx_k_Error_fetching_certificate_confi_2), 0, 0, 1, 0},
    {&__pyx_kp_s_Error_in_callback_for_method_s, __pyx_k_Error_in_callback_for_method_s, sizeof(__pyx_k_Error_in_callback_for_method_s), 0, 0, 1, 0},
    {&__pyx_kp_s_Error_in_grpc_server_request_cal, __pyx_k_Error_in_grpc_server_request_cal, sizeof(__pyx_k_Error_in_grpc_server_request_cal), 0, 0, 1, 0},
    {&__pyx_kp_s_Error_in_grpc_server_request_reg, __pyx_k_Error_in_grpc_server_request_reg, sizeof(__pyx_k_Error_in_grpc_server_request_reg), 0, 0, 1, 0},
    {&__pyx_kp_s_Exception_not_handled_by__handle, __pyx_k_Exception_not_handled_by__handle, sizeof(__pyx_k_Exception_not_handled_by__handle), 0, 0, 1, 0},
    {&__pyx_n_s_ExecuteBatchError, __pyx_k_ExecuteBatchError, sizeof(__pyx_k_ExecuteBatchError), 0, 0, 1, 1},
    {&__pyx_kp_s_ExecuteBatchError_raised_in_core, __pyx_k_ExecuteBatchError_raised_in_core, sizeof(__pyx_k_ExecuteBatchError_raised_in_core), 0, 0, 1, 0},
    {&__pyx_kp_s_Exiting_child_due_to_raised_exce, __pyx_k_Exiting_child_due_to_raised_exce, sizeof(__pyx_k_Exiting_child_due_to_raised_exce), 0, 0, 1, 0},
    {&__pyx_kp_s_Expected_bytes_str_or_unicode_no, __pyx_k_Expected_bytes_str_or_unicode_no, sizeof(__pyx_k_Expected_bytes_str_or_unicode_no), 0, 0, 1, 0},
    {&__pyx_kp_s_Expected_int_bytes_or_behavior_g, __pyx_k_Expected_int_bytes_or_behavior_g, sizeof(__pyx_k_Expected_int_bytes_or_behavior_g), 0, 0, 1, 0},
    {&__pyx_kp_s_Expected_str_not, __pyx_k_Expected_str_not, sizeof(__pyx_k_Expected_str_not), 0, 0, 1, 0},
    {&__pyx_kp_s_Expecting_non_ok_status_code, __pyx_k_Expecting_non_ok_status_code, sizeof(__pyx_k_Expecting_non_ok_status_code), 0, 0, 1, 0},
    {&__pyx_kp_s_Failed_grpc_call_start_batch_wit, __pyx_k_Failed_grpc_call_start_batch_wit, sizeof(__pyx_k_Failed_grpc_call_start_batch_wit), 0, 0, 1, 0},
    {&__pyx_kp_s_Failed_s_s, __pyx_k_Failed_s_s, sizeof(__pyx_k_Failed_s_s), 0, 0, 1, 0},
    {&__pyx_kp_s_Failed_sending_error_status_from, __pyx_k_Failed_sending_error_status_from, sizeof(__pyx_k_Failed_sending_error_status_from), 0, 0, 1, 0},
    {&__pyx_kp_s_Failed_to_get_server_sockets_ple, __pyx_k_Failed_to_get_server_sockets_ple, sizeof(__pyx_k_Failed_to_get_server_sockets_ple), 0, 0, 1, 0},
    {&__pyx_kp_s_Failed_to_get_servers_please_ens, __pyx_k_Failed_to_get_servers_please_ens, sizeof(__pyx_k_Failed_to_get_servers_please_ens), 0, 0, 1, 0},
    {&__pyx_kp_s_Failed_to_get_the_channel_please, __pyx_k_Failed_to_get_the_channel_please, sizeof(__pyx_k_Failed_to_get_the_channel_please), 0, 0, 1, 0},
    {&__pyx_kp_s_Failed_to_get_the_server_please, __pyx_k_Failed_to_get_the_server_please, sizeof(__pyx_k_Failed_to_get_the_server_please), 0, 0, 1, 0},
    {&__pyx_kp_s_Failed_to_get_the_socket_please, __pyx_k_Failed_to_get_the_socket_please, sizeof(__pyx_k_Failed_to_get_the_socket_please), 0, 0, 1, 0},
    {&__pyx_kp_s_Failed_to_get_the_subchannel_ple, __pyx_k_Failed_to_get_the_subchannel_ple, sizeof(__pyx_k_Failed_to_get_the_subchannel_ple), 0, 0, 1, 0},
    {&__pyx_kp_s_Failed_to_get_top_channels_pleas, __pyx_k_Failed_to_get_top_channels_pleas, sizeof(__pyx_k_Failed_to_get_top_channels_pleas), 0, 0, 1, 0},
    {&__pyx_kp_s_Failed_to_receive_any_message_fr, __pyx_k_Failed_to_receive_any_message_fr, sizeof(__pyx_k_Failed_to_receive_any_message_fr), 0, 0, 1, 0},
    {&__pyx_kp_s_Failed_to_shutdown_gRPC_Core_aft, __pyx_k_Failed_to_shutdown_gRPC_Core_aft, sizeof(__pyx_k_Failed_to_shutdown_gRPC_Core_aft), 0, 0, 1, 0},
    {&__pyx_kp_s_Failed_to_shutdown_gRPC_Python_t, __pyx_k_Failed_to_shutdown_gRPC_Python_t, sizeof(__pyx_k_Failed_to_shutdown_gRPC_Python_t), 0, 0, 1, 0},
    {&__pyx_n_s_ForkManagedThread, __pyx_k_ForkManagedThread, sizeof(__pyx_k_ForkManagedThread), 0, 0, 1, 1},
    {&__pyx_n_s_ForkManagedThread___init, __pyx_k_ForkManagedThread___init, sizeof(__pyx_k_ForkManagedThread___init), 0, 0, 1, 1},
    {&__pyx_n_s_ForkManagedThread___init___local, __pyx_k_ForkManagedThread___init___local, sizeof(__pyx_k_ForkManagedThread___init___local), 0, 0, 1, 1},
    {&__pyx_n_s_ForkManagedThread_join, __pyx_k_ForkManagedThread_join, sizeof(__pyx_k_ForkManagedThread_join), 0, 0, 1, 1},
    {&__pyx_n_s_ForkManagedThread_setDaemon, __pyx_k_ForkManagedThread_setDaemon, sizeof(__pyx_k_ForkManagedThread_setDaemon), 0, 0, 1, 1},
    {&__pyx_n_s_ForkManagedThread_start, __pyx_k_ForkManagedThread_start, sizeof(__pyx_k_ForkManagedThread_start), 0, 0, 1, 1},
    {&__pyx_n_s_ForkState, __pyx_k_ForkState, sizeof(__pyx_k_ForkState), 0, 0, 1, 1},
    {&__pyx_n_s_ForkState___init, __pyx_k_ForkState___init, sizeof(__pyx_k_ForkState___init), 0, 0, 1, 1},
    {&__pyx_n_s_GRPC_ASYNCIO_ENGINE, __pyx_k_GRPC_ASYNCIO_ENGINE, sizeof(__pyx_k_GRPC_ASYNCIO_ENGINE), 0, 0, 1, 1},
    {&__pyx_n_s_GRPC_COMPRESSION_CHANNEL_DEFAULT, __pyx_k_GRPC_COMPRESSION_CHANNEL_DEFAULT, sizeof(__pyx_k_GRPC_COMPRESSION_CHANNEL_DEFAULT), 0, 0, 1, 1},
    {&__pyx_n_s_GRPC_COMPRESSION_REQUEST_ALGORIT, __pyx_k_GRPC_COMPRESSION_REQUEST_ALGORIT, sizeof(__pyx_k_GRPC_COMPRESSION_REQUEST_ALGORIT), 0, 0, 1, 1},
    {&__pyx_n_s_GRPC_ENABLE_FORK_SUPPORT, __pyx_k_GRPC_ENABLE_FORK_SUPPORT, sizeof(__pyx_k_GRPC_ENABLE_FORK_SUPPORT), 0, 0, 1, 1},
    {&__pyx_n_s_GRPC_ENABLE_FORK_SUPPORT_2, __pyx_k_GRPC_ENABLE_FORK_SUPPORT_2, sizeof(__pyx_k_GRPC_ENABLE_FORK_SUPPORT_2), 0, 0, 1, 1},
    {&__pyx_n_s_GRPC_PROPAGATE_CANCELLATION, __pyx_k_GRPC_PROPAGATE_CANCELLATION, sizeof(__pyx_k_GRPC_PROPAGATE_CANCELLATION), 0, 0, 1, 1},
    {&__pyx_n_s_GRPC_PROPAGATE_CENSUS_STATS_CONT, __pyx_k_GRPC_PROPAGATE_CENSUS_STATS_CONT, sizeof(__pyx_k_GRPC_PROPAGATE_CENSUS_STATS_CONT), 0, 0, 1, 1},
    {&__pyx_n_s_GRPC_PROPAGATE_CENSUS_TRACING_CO, __pyx_k_GRPC_PROPAGATE_CENSUS_TRACING_CO, sizeof(__pyx_k_GRPC_PROPAGATE_CENSUS_TRACING_CO), 0, 0, 1, 1},
    {&__pyx_n_s_GRPC_PROPAGATE_DEADLINE, __pyx_k_GRPC_PROPAGATE_DEADLINE, sizeof(__pyx_k_GRPC_PROPAGATE_DEADLINE), 0, 0, 1, 1},
    {&__pyx_n_s_GRPC_PROPAGATE_DEFAULTS, __pyx_k_GRPC_PROPAGATE_DEFAULTS, sizeof(__pyx_k_GRPC_PROPAGATE_DEFAULTS), 0, 0, 1, 1},
    {&__pyx_n_s_Group, __pyx_k_Group, sizeof(__pyx_k_Group), 0, 0, 1, 1},
    {&__pyx_n_s_GrpcArgWrapper, __pyx_k_GrpcArgWrapper, sizeof(__pyx_k_GrpcArgWrapper), 0, 0, 1, 1},
    {&__pyx_n_s_GrpcArgWrapper___reduce_cython, __pyx_k_GrpcArgWrapper___reduce_cython, sizeof(__pyx_k_GrpcArgWrapper___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_GrpcArgWrapper___setstate_cytho, __pyx_k_GrpcArgWrapper___setstate_cytho, sizeof(__pyx_k_GrpcArgWrapper___setstate_cytho), 0, 0, 1, 1},
    {&__pyx_n_s_GrpcCallWrapper, __pyx_k_GrpcCallWrapper, sizeof(__pyx_k_GrpcCallWrapper), 0, 0, 1, 1},
    {&__pyx_kp_s_HandleExceptions_s, __pyx_k_HandleExceptions_s, sizeof(__pyx_k_HandleExceptions_s), 0, 0, 1, 0},
    {&__pyx_n_s_HandlerCallDetails, __pyx_k_HandlerCallDetails, sizeof(__pyx_k_HandlerCallDetails), 0, 0, 1, 1},
    {&__pyx_n_s_HandlerCallDetails___reduce_cyt, __pyx_k_HandlerCallDetails___reduce_cyt, sizeof(__pyx_k_HandlerCallDetails___reduce_cyt), 0, 0, 1, 1},
    {&__pyx_n_s_HandlerCallDetails___setstate_c, __pyx_k_HandlerCallDetails___setstate_c, sizeof(__pyx_k_HandlerCallDetails___setstate_c), 0, 0, 1, 1},
    {&__pyx_n_s_IMMUTABLE_EMPTY_METADATA, __pyx_k_IMMUTABLE_EMPTY_METADATA, sizeof(__pyx_k_IMMUTABLE_EMPTY_METADATA), 0, 0, 1, 1},
    {&__pyx_n_s_INTERNAL_CALL_ERROR_MESSAGE_FOR, __pyx_k_INTERNAL_CALL_ERROR_MESSAGE_FOR, sizeof(__pyx_k_INTERNAL_CALL_ERROR_MESSAGE_FOR), 0, 0, 1, 1},
    {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_k_Incompatible_checksums_0x_x_vs_0, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_k_Incompatible_checksums_0x_x_vs_0_2, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_2), 0, 0, 1, 0},
    {&__pyx_n_s_InitialMetadataFlags, __pyx_k_InitialMetadataFlags, sizeof(__pyx_k_InitialMetadataFlags), 0, 0, 1, 1},
    {&__pyx_n_s_InsecureChannelCredentials, __pyx_k_InsecureChannelCredentials, sizeof(__pyx_k_InsecureChannelCredentials), 0, 0, 1, 1},
    {&__pyx_n_s_InsecureChannelCredentials___red, __pyx_k_InsecureChannelCredentials___red, sizeof(__pyx_k_InsecureChannelCredentials___red), 0, 0, 1, 1},
    {&__pyx_n_s_InsecureChannelCredentials___set, __pyx_k_InsecureChannelCredentials___set, sizeof(__pyx_k_InsecureChannelCredentials___set), 0, 0, 1, 1},
    {&__pyx_n_s_IntegratedCall, __pyx_k_IntegratedCall, sizeof(__pyx_k_IntegratedCall), 0, 0, 1, 1},
    {&__pyx_n_s_IntegratedCall___reduce_cython, __pyx_k_IntegratedCall___reduce_cython, sizeof(__pyx_k_IntegratedCall___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_IntegratedCall___setstate_cython, __pyx_k_IntegratedCall___setstate_cython, sizeof(__pyx_k_IntegratedCall___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_IntegratedCall_cancel, __pyx_k_IntegratedCall_cancel, sizeof(__pyx_k_IntegratedCall_cancel), 0, 0, 1, 1},
    {&__pyx_n_s_IntegratedCall_operate, __pyx_k_IntegratedCall_operate, sizeof(__pyx_k_IntegratedCall_operate), 0, 0, 1, 1},
    {&__pyx_n_s_InternalError, __pyx_k_InternalError, sizeof(__pyx_k_InternalError), 0, 0, 1, 1},
    {&__pyx_kp_s_Internal_error_from_Core, __pyx_k_Internal_error_from_Core, sizeof(__pyx_k_Internal_error_from_Core), 0, 0, 1, 0},
    {&__pyx_kp_s_Internal_gRPC_call_error_d, __pyx_k_Internal_gRPC_call_error_d, sizeof(__pyx_k_Internal_gRPC_call_error_d), 0, 0, 1, 0},
    {&__pyx_kp_s_Invalid_encoding_on_s, __pyx_k_Invalid_encoding_on_s, sizeof(__pyx_k_Invalid_encoding_on_s), 0, 0, 1, 0},
    {&__pyx_kp_u_Invalid_trailing_metadata_type_e, __pyx_k_Invalid_trailing_metadata_type_e, sizeof(__pyx_k_Invalid_trailing_metadata_type_e), 0, 1, 0, 0},
    {&__pyx_n_s_KeyError, __pyx_k_KeyError, sizeof(__pyx_k_KeyError), 0, 0, 1, 1},
    {&__pyx_n_s_KeyboardInterrupt, __pyx_k_KeyboardInterrupt, sizeof(__pyx_k_KeyboardInterrupt), 0, 0, 1, 1},
    {&__pyx_n_s_LOGGER, __pyx_k_LOGGER, sizeof(__pyx_k_LOGGER), 0, 0, 1, 1},
    {&__pyx_n_s_LatentEventArg, __pyx_k_LatentEventArg, sizeof(__pyx_k_LatentEventArg), 0, 0, 1, 1},
    {&__pyx_n_s_LocalChannelCredentials, __pyx_k_LocalChannelCredentials, sizeof(__pyx_k_LocalChannelCredentials), 0, 0, 1, 1},
    {&__pyx_n_s_LocalChannelCredentials___reduce, __pyx_k_LocalChannelCredentials___reduce, sizeof(__pyx_k_LocalChannelCredentials___reduce), 0, 0, 1, 1},
    {&__pyx_n_s_LocalChannelCredentials___setsta, __pyx_k_LocalChannelCredentials___setsta, sizeof(__pyx_k_LocalChannelCredentials___setsta), 0, 0, 1, 1},
    {&__pyx_n_s_LocalConnectionType, __pyx_k_LocalConnectionType, sizeof(__pyx_k_LocalConnectionType), 0, 0, 1, 1},
    {&__pyx_kp_s_Locally_aborted, __pyx_k_Locally_aborted, sizeof(__pyx_k_Locally_aborted), 0, 0, 1, 0},
    {&__pyx_n_s_Lock, __pyx_k_Lock, sizeof(__pyx_k_Lock), 0, 0, 1, 1},
    {&__pyx_n_s_MessageReceiver, __pyx_k_MessageReceiver, sizeof(__pyx_k_MessageReceiver), 0, 0, 1, 1},
    {&__pyx_n_s_MessageReceiver___anext, __pyx_k_MessageReceiver___anext, sizeof(__pyx_k_MessageReceiver___anext), 0, 0, 1, 1},
    {&__pyx_n_s_MessageReceiver___reduce_cython, __pyx_k_MessageReceiver___reduce_cython, sizeof(__pyx_k_MessageReceiver___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_MessageReceiver___setstate_cyth, __pyx_k_MessageReceiver___setstate_cyth, sizeof(__pyx_k_MessageReceiver___setstate_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_MessageReceiver__async_message, __pyx_k_MessageReceiver__async_message, sizeof(__pyx_k_MessageReceiver__async_message), 0, 0, 1, 1},
    {&__pyx_n_s_MetadataPluginCallCredentials, __pyx_k_MetadataPluginCallCredentials, sizeof(__pyx_k_MetadataPluginCallCredentials), 0, 0, 1, 1},
    {&__pyx_n_s_MetadataPluginCallCredentials_2, __pyx_k_MetadataPluginCallCredentials_2, sizeof(__pyx_k_MetadataPluginCallCredentials_2), 0, 0, 1, 1},
    {&__pyx_n_s_MetadataPluginCallCredentials_3, __pyx_k_MetadataPluginCallCredentials_3, sizeof(__pyx_k_MetadataPluginCallCredentials_3), 0, 0, 1, 1},
    {&__pyx_n_s_Metadatum, __pyx_k_Metadatum, sizeof(__pyx_k_Metadatum), 0, 0, 1, 1},
    {&__pyx_kp_s_Method_not_found, __pyx_k_Method_not_found, sizeof(__pyx_k_Method_not_found), 0, 0, 1, 0},
    {&__pyx_n_s_NON_OK_CALL_REPRESENTATION, __pyx_k_NON_OK_CALL_REPRESENTATION, sizeof(__pyx_k_NON_OK_CALL_REPRESENTATION), 0, 0, 1, 1},
    {&__pyx_kp_s_No_custom_hooks_are_implemented, __pyx_k_No_custom_hooks_are_implemented, sizeof(__pyx_k_No_custom_hooks_are_implemented), 0, 0, 1, 0},
    {&__pyx_kp_s_Non_thread_safe_operation, __pyx_k_Non_thread_safe_operation, sizeof(__pyx_k_Non_thread_safe_operation), 0, 0, 1, 0},
    {&__pyx_n_s_None, __pyx_k_None, sizeof(__pyx_k_None), 0, 0, 1, 1},
    {&__pyx_n_s_NotImplementedError, __pyx_k_NotImplementedError, sizeof(__pyx_k_NotImplementedError), 0, 0, 1, 1},
    {&__pyx_n_s_OK_CALL_REPRESENTATION, __pyx_k_OK_CALL_REPRESENTATION, sizeof(__pyx_k_OK_CALL_REPRESENTATION), 0, 0, 1, 1},
    {&__pyx_n_s_Operation, __pyx_k_Operation, sizeof(__pyx_k_Operation), 0, 0, 1, 1},
    {&__pyx_n_s_OperationType, __pyx_k_OperationType, sizeof(__pyx_k_OperationType), 0, 0, 1, 1},
    {&__pyx_n_s_Operation___reduce_cython, __pyx_k_Operation___reduce_cython, sizeof(__pyx_k_Operation___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Operation___setstate_cython, __pyx_k_Operation___setstate_cython, sizeof(__pyx_k_Operation___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Optional, __pyx_k_Optional, sizeof(__pyx_k_Optional), 0, 0, 1, 1},
    {&__pyx_kp_s_Optional_int, __pyx_k_Optional_int, sizeof(__pyx_k_Optional_int), 0, 0, 1, 0},
    {&__pyx_n_s_POLLER, __pyx_k_POLLER, sizeof(__pyx_k_POLLER), 0, 0, 1, 1},
    {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1},
    {&__pyx_kp_s_Please_report_to_https_github_co, __pyx_k_Please_report_to_https_github_co, sizeof(__pyx_k_Please_report_to_https_github_co), 0, 0, 1, 0},
    {&__pyx_n_s_PollerCompletionQueue, __pyx_k_PollerCompletionQueue, sizeof(__pyx_k_PollerCompletionQueue), 0, 0, 1, 1},
    {&__pyx_n_s_PollerCompletionQueue___reduce_c, __pyx_k_PollerCompletionQueue___reduce_c, sizeof(__pyx_k_PollerCompletionQueue___reduce_c), 0, 0, 1, 1},
    {&__pyx_n_s_PollerCompletionQueue___setstate, __pyx_k_PollerCompletionQueue___setstate, sizeof(__pyx_k_PollerCompletionQueue___setstate), 0, 0, 1, 1},
    {&__pyx_n_s_PollerCompletionQueue__handle_ev, __pyx_k_PollerCompletionQueue__handle_ev, sizeof(__pyx_k_PollerCompletionQueue__handle_ev), 0, 0, 1, 1},
    {&__pyx_n_s_PollerCompletionQueue__poll_wrap, __pyx_k_PollerCompletionQueue__poll_wrap, sizeof(__pyx_k_PollerCompletionQueue__poll_wrap), 0, 0, 1, 1},
    {&__pyx_n_s_PollerCompletionQueue_bind_loop, __pyx_k_PollerCompletionQueue_bind_loop, sizeof(__pyx_k_PollerCompletionQueue_bind_loop), 0, 0, 1, 1},
    {&__pyx_n_s_PropagationConstants, __pyx_k_PropagationConstants, sizeof(__pyx_k_PropagationConstants), 0, 0, 1, 1},
    {&__pyx_n_s_Pyx_CFunc_1f6ebd__4grpc_7_cyth, __pyx_k_Pyx_CFunc_1f6ebd__4grpc_7_cyth, sizeof(__pyx_k_Pyx_CFunc_1f6ebd__4grpc_7_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_Pyx_CFunc_4grpc_7_cython_6cygr, __pyx_k_Pyx_CFunc_4grpc_7_cython_6cygr, sizeof(__pyx_k_Pyx_CFunc_4grpc_7_cython_6cygr), 0, 0, 1, 1},
    {&__pyx_n_s_Pyx_CFunc_4grpc_7_cython_6cygr_2, __pyx_k_Pyx_CFunc_4grpc_7_cython_6cygr_2, sizeof(__pyx_k_Pyx_CFunc_4grpc_7_cython_6cygr_2), 0, 0, 1, 1},
    {&__pyx_n_s_Pyx_CFunc_7f0cf6__4grpc_7_cyth, __pyx_k_Pyx_CFunc_7f0cf6__4grpc_7_cyth, sizeof(__pyx_k_Pyx_CFunc_7f0cf6__4grpc_7_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_Queue, __pyx_k_Queue, sizeof(__pyx_k_Queue), 0, 0, 1, 1},
    {&__pyx_n_s_RLock, __pyx_k_RLock, sizeof(__pyx_k_RLock), 0, 0, 1, 1},
    {&__pyx_n_s_RPCState, __pyx_k_RPCState, sizeof(__pyx_k_RPCState), 0, 0, 1, 1},
    {&__pyx_n_s_RPCState___reduce_cython, __pyx_k_RPCState___reduce_cython, sizeof(__pyx_k_RPCState___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_RPCState___setstate_cython, __pyx_k_RPCState___setstate_cython, sizeof(__pyx_k_RPCState___setstate_cython), 0, 0, 1, 1},
    {&__pyx_kp_s_RPC_already_finished, __pyx_k_RPC_already_finished, sizeof(__pyx_k_RPC_already_finished), 0, 0, 1, 0},
    {&__pyx_kp_s_RPC_cancelled_for_servicer_metho, __pyx_k_RPC_cancelled_for_servicer_metho, sizeof(__pyx_k_RPC_cancelled_for_servicer_metho), 0, 0, 1, 0},
    {&__pyx_kp_s_RPC_cancelled_for_unknown_reason, __pyx_k_RPC_cancelled_for_unknown_reason, sizeof(__pyx_k_RPC_cancelled_for_unknown_reason), 0, 0, 1, 0},
    {&__pyx_kp_s_Raised_if_the_server_is_stopped, __pyx_k_Raised_if_the_server_is_stopped, sizeof(__pyx_k_Raised_if_the_server_is_stopped), 0, 0, 1, 0},
    {&__pyx_kp_s_Raised_upon_unexpected_errors_in, __pyx_k_Raised_upon_unexpected_errors_in, sizeof(__pyx_k_Raised_upon_unexpected_errors_in), 0, 0, 1, 0},
    {&__pyx_kp_s_Raised_when_calling_abort_in_ser, __pyx_k_Raised_when_calling_abort_in_ser, sizeof(__pyx_k_Raised_when_calling_abort_in_ser), 0, 0, 1, 0},
    {&__pyx_kp_s_Raised_when_execute_batch_return, __pyx_k_Raised_when_execute_batch_return, sizeof(__pyx_k_Raised_when_execute_batch_return), 0, 0, 1, 0},
    {&__pyx_kp_s_Raised_when_the_usage_of_API_by, __pyx_k_Raised_when_the_usage_of_API_by, sizeof(__pyx_k_Raised_when_the_usage_of_API_by), 0, 0, 1, 0},
    {&__pyx_n_s_ReceiveCloseOnServerOperation, __pyx_k_ReceiveCloseOnServerOperation, sizeof(__pyx_k_ReceiveCloseOnServerOperation), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveCloseOnServerOperation_2, __pyx_k_ReceiveCloseOnServerOperation_2, sizeof(__pyx_k_ReceiveCloseOnServerOperation_2), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveCloseOnServerOperation_3, __pyx_k_ReceiveCloseOnServerOperation_3, sizeof(__pyx_k_ReceiveCloseOnServerOperation_3), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveCloseOnServerOperation_ca, __pyx_k_ReceiveCloseOnServerOperation_ca, sizeof(__pyx_k_ReceiveCloseOnServerOperation_ca), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveCloseOnServerOperation_ty, __pyx_k_ReceiveCloseOnServerOperation_ty, sizeof(__pyx_k_ReceiveCloseOnServerOperation_ty), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveInitialMetadataOperation, __pyx_k_ReceiveInitialMetadataOperation, sizeof(__pyx_k_ReceiveInitialMetadataOperation), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveInitialMetadataOperation_2, __pyx_k_ReceiveInitialMetadataOperation_2, sizeof(__pyx_k_ReceiveInitialMetadataOperation_2), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveInitialMetadataOperation_3, __pyx_k_ReceiveInitialMetadataOperation_3, sizeof(__pyx_k_ReceiveInitialMetadataOperation_3), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveInitialMetadataOperation_4, __pyx_k_ReceiveInitialMetadataOperation_4, sizeof(__pyx_k_ReceiveInitialMetadataOperation_4), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveInitialMetadataOperation_5, __pyx_k_ReceiveInitialMetadataOperation_5, sizeof(__pyx_k_ReceiveInitialMetadataOperation_5), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveMessageOperation, __pyx_k_ReceiveMessageOperation, sizeof(__pyx_k_ReceiveMessageOperation), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveMessageOperation___reduce, __pyx_k_ReceiveMessageOperation___reduce, sizeof(__pyx_k_ReceiveMessageOperation___reduce), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveMessageOperation___setsta, __pyx_k_ReceiveMessageOperation___setsta, sizeof(__pyx_k_ReceiveMessageOperation___setsta), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveMessageOperation_message, __pyx_k_ReceiveMessageOperation_message, sizeof(__pyx_k_ReceiveMessageOperation_message), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveMessageOperation_type, __pyx_k_ReceiveMessageOperation_type, sizeof(__pyx_k_ReceiveMessageOperation_type), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveStatusOnClientOperation, __pyx_k_ReceiveStatusOnClientOperation, sizeof(__pyx_k_ReceiveStatusOnClientOperation), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveStatusOnClientOperation_2, __pyx_k_ReceiveStatusOnClientOperation_2, sizeof(__pyx_k_ReceiveStatusOnClientOperation_2), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveStatusOnClientOperation_3, __pyx_k_ReceiveStatusOnClientOperation_3, sizeof(__pyx_k_ReceiveStatusOnClientOperation_3), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveStatusOnClientOperation_c, __pyx_k_ReceiveStatusOnClientOperation_c, sizeof(__pyx_k_ReceiveStatusOnClientOperation_c), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveStatusOnClientOperation_d, __pyx_k_ReceiveStatusOnClientOperation_d, sizeof(__pyx_k_ReceiveStatusOnClientOperation_d), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveStatusOnClientOperation_e, __pyx_k_ReceiveStatusOnClientOperation_e, sizeof(__pyx_k_ReceiveStatusOnClientOperation_e), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveStatusOnClientOperation_t, __pyx_k_ReceiveStatusOnClientOperation_t, sizeof(__pyx_k_ReceiveStatusOnClientOperation_t), 0, 0, 1, 1},
    {&__pyx_n_s_ReceiveStatusOnClientOperation_t_2, __pyx_k_ReceiveStatusOnClientOperation_t_2, sizeof(__pyx_k_ReceiveStatusOnClientOperation_t_2), 0, 0, 1, 1},
    {&__pyx_n_s_RegisteredMethod, __pyx_k_RegisteredMethod, sizeof(__pyx_k_RegisteredMethod), 0, 0, 1, 1},
    {&__pyx_n_s_RegisteredMethod___reduce_cython, __pyx_k_RegisteredMethod___reduce_cython, sizeof(__pyx_k_RegisteredMethod___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_RegisteredMethod___setstate_cyth, __pyx_k_RegisteredMethod___setstate_cyth, sizeof(__pyx_k_RegisteredMethod___setstate_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_RequestCallError, __pyx_k_RequestCallError, sizeof(__pyx_k_RequestCallError), 0, 0, 1, 1},
    {&__pyx_n_s_RequestCallEvent, __pyx_k_RequestCallEvent, sizeof(__pyx_k_RequestCallEvent), 0, 0, 1, 1},
    {&__pyx_n_s_RequestCallEvent___reduce_cython, __pyx_k_RequestCallEvent___reduce_cython, sizeof(__pyx_k_RequestCallEvent___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_RequestCallEvent___setstate_cyth, __pyx_k_RequestCallEvent___setstate_cyth, sizeof(__pyx_k_RequestCallEvent___setstate_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_RequestCallTag, __pyx_k_RequestCallTag, sizeof(__pyx_k_RequestCallTag), 0, 0, 1, 1},
    {&__pyx_n_s_RequestCallTag___reduce_cython, __pyx_k_RequestCallTag___reduce_cython, sizeof(__pyx_k_RequestCallTag___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_RequestCallTag___setstate_cytho, __pyx_k_RequestCallTag___setstate_cytho, sizeof(__pyx_k_RequestCallTag___setstate_cytho), 0, 0, 1, 1},
    {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1},
    {&__pyx_n_s_SERVICES_TO_EXCLUDE, __pyx_k_SERVICES_TO_EXCLUDE, sizeof(__pyx_k_SERVICES_TO_EXCLUDE), 0, 0, 1, 1},
    {&__pyx_n_s_SSLChannelCredentials, __pyx_k_SSLChannelCredentials, sizeof(__pyx_k_SSLChannelCredentials), 0, 0, 1, 1},
    {&__pyx_n_s_SSLChannelCredentials___reduce_c, __pyx_k_SSLChannelCredentials___reduce_c, sizeof(__pyx_k_SSLChannelCredentials___reduce_c), 0, 0, 1, 1},
    {&__pyx_n_s_SSLChannelCredentials___setstate, __pyx_k_SSLChannelCredentials___setstate, sizeof(__pyx_k_SSLChannelCredentials___setstate), 0, 0, 1, 1},
    {&__pyx_n_s_SSLSessionCacheLRU, __pyx_k_SSLSessionCacheLRU, sizeof(__pyx_k_SSLSessionCacheLRU), 0, 0, 1, 1},
    {&__pyx_n_s_SSLSessionCacheLRU___reduce_cyth, __pyx_k_SSLSessionCacheLRU___reduce_cyth, sizeof(__pyx_k_SSLSessionCacheLRU___reduce_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_SSLSessionCacheLRU___setstate_cy, __pyx_k_SSLSessionCacheLRU___setstate_cy, sizeof(__pyx_k_SSLSessionCacheLRU___setstate_cy), 0, 0, 1, 1},
    {&__pyx_n_s_SegregatedCall, __pyx_k_SegregatedCall, sizeof(__pyx_k_SegregatedCall), 0, 0, 1, 1},
    {&__pyx_n_s_SegregatedCall___reduce_cython, __pyx_k_SegregatedCall___reduce_cython, sizeof(__pyx_k_SegregatedCall___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_SegregatedCall___setstate_cython, __pyx_k_SegregatedCall___setstate_cython, sizeof(__pyx_k_SegregatedCall___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_SegregatedCall_cancel, __pyx_k_SegregatedCall_cancel, sizeof(__pyx_k_SegregatedCall_cancel), 0, 0, 1, 1},
    {&__pyx_n_s_SegregatedCall_next_event, __pyx_k_SegregatedCall_next_event, sizeof(__pyx_k_SegregatedCall_next_event), 0, 0, 1, 1},
    {&__pyx_n_s_SegregatedCall_operate, __pyx_k_SegregatedCall_operate, sizeof(__pyx_k_SegregatedCall_operate), 0, 0, 1, 1},
    {&__pyx_n_s_SendCloseFromClientOperation, __pyx_k_SendCloseFromClientOperation, sizeof(__pyx_k_SendCloseFromClientOperation), 0, 0, 1, 1},
    {&__pyx_n_s_SendCloseFromClientOperation___r, __pyx_k_SendCloseFromClientOperation___r, sizeof(__pyx_k_SendCloseFromClientOperation___r), 0, 0, 1, 1},
    {&__pyx_n_s_SendCloseFromClientOperation___s, __pyx_k_SendCloseFromClientOperation___s, sizeof(__pyx_k_SendCloseFromClientOperation___s), 0, 0, 1, 1},
    {&__pyx_n_s_SendCloseFromClientOperation_typ, __pyx_k_SendCloseFromClientOperation_typ, sizeof(__pyx_k_SendCloseFromClientOperation_typ), 0, 0, 1, 1},
    {&__pyx_n_s_SendInitialMetadataOperation, __pyx_k_SendInitialMetadataOperation, sizeof(__pyx_k_SendInitialMetadataOperation), 0, 0, 1, 1},
    {&__pyx_n_s_SendInitialMetadataOperation___r, __pyx_k_SendInitialMetadataOperation___r, sizeof(__pyx_k_SendInitialMetadataOperation___r), 0, 0, 1, 1},
    {&__pyx_n_s_SendInitialMetadataOperation___s, __pyx_k_SendInitialMetadataOperation___s, sizeof(__pyx_k_SendInitialMetadataOperation___s), 0, 0, 1, 1},
    {&__pyx_n_s_SendInitialMetadataOperation_typ, __pyx_k_SendInitialMetadataOperation_typ, sizeof(__pyx_k_SendInitialMetadataOperation_typ), 0, 0, 1, 1},
    {&__pyx_n_s_SendMessageOperation, __pyx_k_SendMessageOperation, sizeof(__pyx_k_SendMessageOperation), 0, 0, 1, 1},
    {&__pyx_n_s_SendMessageOperation___reduce_cy, __pyx_k_SendMessageOperation___reduce_cy, sizeof(__pyx_k_SendMessageOperation___reduce_cy), 0, 0, 1, 1},
    {&__pyx_n_s_SendMessageOperation___setstate, __pyx_k_SendMessageOperation___setstate, sizeof(__pyx_k_SendMessageOperation___setstate), 0, 0, 1, 1},
    {&__pyx_n_s_SendMessageOperation_type, __pyx_k_SendMessageOperation_type, sizeof(__pyx_k_SendMessageOperation_type), 0, 0, 1, 1},
    {&__pyx_n_s_SendStatusFromServerOperation, __pyx_k_SendStatusFromServerOperation, sizeof(__pyx_k_SendStatusFromServerOperation), 0, 0, 1, 1},
    {&__pyx_n_s_SendStatusFromServerOperation_2, __pyx_k_SendStatusFromServerOperation_2, sizeof(__pyx_k_SendStatusFromServerOperation_2), 0, 0, 1, 1},
    {&__pyx_n_s_SendStatusFromServerOperation_3, __pyx_k_SendStatusFromServerOperation_3, sizeof(__pyx_k_SendStatusFromServerOperation_3), 0, 0, 1, 1},
    {&__pyx_n_s_SendStatusFromServerOperation_ty, __pyx_k_SendStatusFromServerOperation_ty, sizeof(__pyx_k_SendStatusFromServerOperation_ty), 0, 0, 1, 1},
    {&__pyx_kp_s_Send_initial_metadata_failed_alr, __pyx_k_Send_initial_metadata_failed_alr, sizeof(__pyx_k_Send_initial_metadata_failed_alr), 0, 0, 1, 0},
    {&__pyx_n_s_Server, __pyx_k_Server, sizeof(__pyx_k_Server), 0, 0, 1, 1},
    {&__pyx_n_s_ServerCertificateConfig, __pyx_k_ServerCertificateConfig, sizeof(__pyx_k_ServerCertificateConfig), 0, 0, 1, 1},
    {&__pyx_n_s_ServerCertificateConfig___reduce, __pyx_k_ServerCertificateConfig___reduce, sizeof(__pyx_k_ServerCertificateConfig___reduce), 0, 0, 1, 1},
    {&__pyx_n_s_ServerCertificateConfig___setsta, __pyx_k_ServerCertificateConfig___setsta, sizeof(__pyx_k_ServerCertificateConfig___setsta), 0, 0, 1, 1},
    {&__pyx_n_s_ServerCertificateConfiguration, __pyx_k_ServerCertificateConfiguration, sizeof(__pyx_k_ServerCertificateConfiguration), 0, 0, 1, 1},
    {&__pyx_n_s_ServerCredentials, __pyx_k_ServerCredentials, sizeof(__pyx_k_ServerCredentials), 0, 0, 1, 1},
    {&__pyx_n_s_ServerCredentials___reduce_cytho, __pyx_k_ServerCredentials___reduce_cytho, sizeof(__pyx_k_ServerCredentials___reduce_cytho), 0, 0, 1, 1},
    {&__pyx_n_s_ServerCredentials___setstate_cyt, __pyx_k_ServerCredentials___setstate_cyt, sizeof(__pyx_k_ServerCredentials___setstate_cyt), 0, 0, 1, 1},
    {&__pyx_n_s_ServerShutdownEvent, __pyx_k_ServerShutdownEvent, sizeof(__pyx_k_ServerShutdownEvent), 0, 0, 1, 1},
    {&__pyx_n_s_ServerShutdownEvent___reduce_cyt, __pyx_k_ServerShutdownEvent___reduce_cyt, sizeof(__pyx_k_ServerShutdownEvent___reduce_cyt), 0, 0, 1, 1},
    {&__pyx_n_s_ServerShutdownEvent___setstate_c, __pyx_k_ServerShutdownEvent___setstate_c, sizeof(__pyx_k_ServerShutdownEvent___setstate_c), 0, 0, 1, 1},
    {&__pyx_n_s_ServerShutdownTag, __pyx_k_ServerShutdownTag, sizeof(__pyx_k_ServerShutdownTag), 0, 0, 1, 1},
    {&__pyx_n_s_ServerShutdownTag___reduce_cyth, __pyx_k_ServerShutdownTag___reduce_cyth, sizeof(__pyx_k_ServerShutdownTag___reduce_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_ServerShutdownTag___setstate_cy, __pyx_k_ServerShutdownTag___setstate_cy, sizeof(__pyx_k_ServerShutdownTag___setstate_cy), 0, 0, 1, 1},
    {&__pyx_n_s_ServerStoppedError, __pyx_k_ServerStoppedError, sizeof(__pyx_k_ServerStoppedError), 0, 0, 1, 1},
    {&__pyx_n_s_Server___reduce_cython, __pyx_k_Server___reduce_cython, sizeof(__pyx_k_Server___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Server___setstate_cython, __pyx_k_Server___setstate_cython, sizeof(__pyx_k_Server___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Server_add_http2_port, __pyx_k_Server_add_http2_port, sizeof(__pyx_k_Server_add_http2_port), 0, 0, 1, 1},
    {&__pyx_kp_s_Server_already_stopped, __pyx_k_Server_already_stopped, sizeof(__pyx_k_Server_already_stopped), 0, 0, 1, 0},
    {&__pyx_n_s_Server_cancel_all_calls, __pyx_k_Server_cancel_all_calls, sizeof(__pyx_k_Server_cancel_all_calls), 0, 0, 1, 1},
    {&__pyx_n_s_Server_destroy, __pyx_k_Server_destroy, sizeof(__pyx_k_Server_destroy), 0, 0, 1, 1},
    {&__pyx_kp_s_Server_not_in_ready_state, __pyx_k_Server_not_in_ready_state, sizeof(__pyx_k_Server_not_in_ready_state), 0, 0, 1, 0},
    {&__pyx_n_s_Server_register_completion_queue, __pyx_k_Server_register_completion_queue, sizeof(__pyx_k_Server_register_completion_queue), 0, 0, 1, 1},
    {&__pyx_n_s_Server_register_method, __pyx_k_Server_register_method, sizeof(__pyx_k_Server_register_method), 0, 0, 1, 1},
    {&__pyx_n_s_Server_request_call, __pyx_k_Server_request_call, sizeof(__pyx_k_Server_request_call), 0, 0, 1, 1},
    {&__pyx_n_s_Server_request_registered_call, __pyx_k_Server_request_registered_call, sizeof(__pyx_k_Server_request_registered_call), 0, 0, 1, 1},
    {&__pyx_n_s_Server_shutdown, __pyx_k_Server_shutdown, sizeof(__pyx_k_Server_shutdown), 0, 0, 1, 1},
    {&__pyx_kp_s_Server_shutdown_failed_no_comple, __pyx_k_Server_shutdown_failed_no_comple, sizeof(__pyx_k_Server_shutdown_failed_no_comple), 0, 0, 1, 0},
    {&__pyx_n_s_Server_start, __pyx_k_Server_start, sizeof(__pyx_k_Server_start), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext, __pyx_k_ServicerContext, sizeof(__pyx_k_ServicerContext), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext___reduce_cython, __pyx_k_ServicerContext___reduce_cython, sizeof(__pyx_k_ServicerContext___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext___setstate_cyth, __pyx_k_ServicerContext___setstate_cyth, sizeof(__pyx_k_ServicerContext___setstate_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_abort, __pyx_k_ServicerContext_abort, sizeof(__pyx_k_ServicerContext_abort), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_abort_with_stat, __pyx_k_ServicerContext_abort_with_stat, sizeof(__pyx_k_ServicerContext_abort_with_stat), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_add_done_callba, __pyx_k_ServicerContext_add_done_callba, sizeof(__pyx_k_ServicerContext_add_done_callba), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_auth_context, __pyx_k_ServicerContext_auth_context, sizeof(__pyx_k_ServicerContext_auth_context), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_cancelled, __pyx_k_ServicerContext_cancelled, sizeof(__pyx_k_ServicerContext_cancelled), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_code, __pyx_k_ServicerContext_code, sizeof(__pyx_k_ServicerContext_code), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_details, __pyx_k_ServicerContext_details, sizeof(__pyx_k_ServicerContext_details), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_disable_next_me, __pyx_k_ServicerContext_disable_next_me, sizeof(__pyx_k_ServicerContext_disable_next_me), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_done, __pyx_k_ServicerContext_done, sizeof(__pyx_k_ServicerContext_done), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_invocation_meta, __pyx_k_ServicerContext_invocation_meta, sizeof(__pyx_k_ServicerContext_invocation_meta), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_peer, __pyx_k_ServicerContext_peer, sizeof(__pyx_k_ServicerContext_peer), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_peer_identities, __pyx_k_ServicerContext_peer_identities, sizeof(__pyx_k_ServicerContext_peer_identities), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_peer_identity_k, __pyx_k_ServicerContext_peer_identity_k, sizeof(__pyx_k_ServicerContext_peer_identity_k), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_read, __pyx_k_ServicerContext_read, sizeof(__pyx_k_ServicerContext_read), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_send_initial_me, __pyx_k_ServicerContext_send_initial_me, sizeof(__pyx_k_ServicerContext_send_initial_me), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_set_code, __pyx_k_ServicerContext_set_code, sizeof(__pyx_k_ServicerContext_set_code), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_set_compression, __pyx_k_ServicerContext_set_compression, sizeof(__pyx_k_ServicerContext_set_compression), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_set_details, __pyx_k_ServicerContext_set_details, sizeof(__pyx_k_ServicerContext_set_details), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_set_trailing_me, __pyx_k_ServicerContext_set_trailing_me, sizeof(__pyx_k_ServicerContext_set_trailing_me), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_time_remaining, __pyx_k_ServicerContext_time_remaining, sizeof(__pyx_k_ServicerContext_time_remaining), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_trailing_metada, __pyx_k_ServicerContext_trailing_metada, sizeof(__pyx_k_ServicerContext_trailing_metada), 0, 0, 1, 1},
    {&__pyx_n_s_ServicerContext_write, __pyx_k_ServicerContext_write, sizeof(__pyx_k_ServicerContext_write), 0, 0, 1, 1},
    {&__pyx_n_s_SslPemKeyCertPair, __pyx_k_SslPemKeyCertPair, sizeof(__pyx_k_SslPemKeyCertPair), 0, 0, 1, 1},
    {&__pyx_n_s_SslPemKeyCertPair___reduce_cytho, __pyx_k_SslPemKeyCertPair___reduce_cytho, sizeof(__pyx_k_SslPemKeyCertPair___reduce_cytho), 0, 0, 1, 1},
    {&__pyx_n_s_SslPemKeyCertPair___setstate_cyt, __pyx_k_SslPemKeyCertPair___setstate_cyt, sizeof(__pyx_k_SslPemKeyCertPair___setstate_cyt), 0, 0, 1, 1},
    {&__pyx_n_s_StatusCode, __pyx_k_StatusCode, sizeof(__pyx_k_StatusCode), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext, __pyx_k_SyncServicerContext, sizeof(__pyx_k_SyncServicerContext), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext___reduce_cy, __pyx_k_SyncServicerContext___reduce_cy, sizeof(__pyx_k_SyncServicerContext___reduce_cy), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext___setstate, __pyx_k_SyncServicerContext___setstate, sizeof(__pyx_k_SyncServicerContext___setstate), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext_abort, __pyx_k_SyncServicerContext_abort, sizeof(__pyx_k_SyncServicerContext_abort), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext_add_callbac, __pyx_k_SyncServicerContext_add_callbac, sizeof(__pyx_k_SyncServicerContext_add_callbac), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext_auth_contex, __pyx_k_SyncServicerContext_auth_contex, sizeof(__pyx_k_SyncServicerContext_auth_contex), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext_disable_nex, __pyx_k_SyncServicerContext_disable_nex, sizeof(__pyx_k_SyncServicerContext_disable_nex), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext_invocation, __pyx_k_SyncServicerContext_invocation, sizeof(__pyx_k_SyncServicerContext_invocation), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext_peer, __pyx_k_SyncServicerContext_peer, sizeof(__pyx_k_SyncServicerContext_peer), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext_peer_identi, __pyx_k_SyncServicerContext_peer_identi, sizeof(__pyx_k_SyncServicerContext_peer_identi), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext_peer_identi_2, __pyx_k_SyncServicerContext_peer_identi_2, sizeof(__pyx_k_SyncServicerContext_peer_identi_2), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext_send_initia, __pyx_k_SyncServicerContext_send_initia, sizeof(__pyx_k_SyncServicerContext_send_initia), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext_set_code, __pyx_k_SyncServicerContext_set_code, sizeof(__pyx_k_SyncServicerContext_set_code), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext_set_compres, __pyx_k_SyncServicerContext_set_compres, sizeof(__pyx_k_SyncServicerContext_set_compres), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext_set_details, __pyx_k_SyncServicerContext_set_details, sizeof(__pyx_k_SyncServicerContext_set_details), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext_set_trailin, __pyx_k_SyncServicerContext_set_trailin, sizeof(__pyx_k_SyncServicerContext_set_trailin), 0, 0, 1, 1},
    {&__pyx_n_s_SyncServicerContext_time_remain, __pyx_k_SyncServicerContext_time_remain, sizeof(__pyx_k_SyncServicerContext_time_remain), 0, 0, 1, 1},
    {&__pyx_n_s_SystemExit, __pyx_k_SystemExit, sizeof(__pyx_k_SystemExit), 0, 0, 1, 1},
    {&__pyx_n_s_TRUE, __pyx_k_TRUE, sizeof(__pyx_k_TRUE), 0, 0, 1, 1},
    {&__pyx_n_s_TRUE_VALUES, __pyx_k_TRUE_VALUES, sizeof(__pyx_k_TRUE_VALUES), 0, 0, 1, 1},
    {&__pyx_n_s_TYPE_METADATA_STRING, __pyx_k_TYPE_METADATA_STRING, sizeof(__pyx_k_TYPE_METADATA_STRING), 0, 0, 1, 1},
    {&__pyx_n_s_Tag, __pyx_k_Tag, sizeof(__pyx_k_Tag), 0, 0, 1, 1},
    {&__pyx_n_s_Tag___reduce_cython, __pyx_k_Tag___reduce_cython, sizeof(__pyx_k_Tag___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Tag___setstate_cython, __pyx_k_Tag___setstate_cython, sizeof(__pyx_k_Tag___setstate_cython), 0, 0, 1, 1},
    {&__pyx_kp_s_The_base_class_for_exceptions_ge, __pyx_k_The_base_class_for_exceptions_ge, sizeof(__pyx_k_The_base_class_for_exceptions_ge), 0, 0, 1, 0},
    {&__pyx_n_s_Thread, __pyx_k_Thread, sizeof(__pyx_k_Thread), 0, 0, 1, 1},
    {&__pyx_kp_s_Timed_out, __pyx_k_Timed_out, sizeof(__pyx_k_Timed_out), 0, 0, 1, 0},
    {&__pyx_n_s_TimeoutError, __pyx_k_TimeoutError, sizeof(__pyx_k_TimeoutError), 0, 0, 1, 1},
    {&__pyx_n_s_True, __pyx_k_True, sizeof(__pyx_k_True), 0, 0, 1, 1},
    {&__pyx_kp_s_Tuple_Tuple_str_Union_str_bytes, __pyx_k_Tuple_Tuple_str_Union_str_bytes, sizeof(__pyx_k_Tuple_Tuple_str_Union_str_bytes), 0, 0, 1, 0},
    {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
    {&__pyx_n_s_UNKNOWN_CANCELLATION_DETAILS, __pyx_k_UNKNOWN_CANCELLATION_DETAILS, sizeof(__pyx_k_UNKNOWN_CANCELLATION_DETAILS), 0, 0, 1, 1},
    {&__pyx_kp_s_Unexpected_s_raised_by_servicer, __pyx_k_Unexpected_s_raised_by_servicer, sizeof(__pyx_k_Unexpected_s_raised_by_servicer), 0, 0, 1, 0},
    {&__pyx_kp_s_Unexpected_s_s, __pyx_k_Unexpected_s_s, sizeof(__pyx_k_Unexpected_s_s), 0, 0, 1, 0},
    {&__pyx_n_s_UnicodeDecodeError, __pyx_k_UnicodeDecodeError, sizeof(__pyx_k_UnicodeDecodeError), 0, 0, 1, 1},
    {&__pyx_n_s_Unknown, __pyx_k_Unknown, sizeof(__pyx_k_Unknown), 0, 0, 1, 1},
    {&__pyx_kp_s_Unsupported_engine_type_s, __pyx_k_Unsupported_engine_type_s, sizeof(__pyx_k_Unsupported_engine_type_s), 0, 0, 1, 0},
    {&__pyx_n_s_UsageError, __pyx_k_UsageError, sizeof(__pyx_k_UsageError), 0, 0, 1, 1},
    {&__pyx_kp_s_Using_s_as_I_O_engine, __pyx_k_Using_s_as_I_O_engine, sizeof(__pyx_k_Using_s_as_I_O_engine), 0, 0, 1, 0},
    {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
    {&__pyx_n_s_WatchConnectivityFailed, __pyx_k_WatchConnectivityFailed, sizeof(__pyx_k_WatchConnectivityFailed), 0, 0, 1, 1},
    {&__pyx_n_s_WriteFlag, __pyx_k_WriteFlag, sizeof(__pyx_k_WriteFlag), 0, 0, 1, 1},
    {&__pyx_n_s_XDSChannelCredentials, __pyx_k_XDSChannelCredentials, sizeof(__pyx_k_XDSChannelCredentials), 0, 0, 1, 1},
    {&__pyx_n_s_XDSChannelCredentials___reduce_c, __pyx_k_XDSChannelCredentials___reduce_c, sizeof(__pyx_k_XDSChannelCredentials___reduce_c), 0, 0, 1, 1},
    {&__pyx_n_s_XDSChannelCredentials___setstate, __pyx_k_XDSChannelCredentials___setstate, sizeof(__pyx_k_XDSChannelCredentials___setstate), 0, 0, 1, 1},
    {&__pyx_n_s_YES, __pyx_k_YES, sizeof(__pyx_k_YES), 0, 0, 1, 1},
    {&__pyx_n_s_Yes, __pyx_k_Yes, sizeof(__pyx_k_Yes), 0, 0, 1, 1},
    {&__pyx_n_s__107, __pyx_k__107, sizeof(__pyx_k__107), 0, 0, 1, 1},
    {&__pyx_n_s__38, __pyx_k__38, sizeof(__pyx_k__38), 0, 0, 1, 1},
    {&__pyx_kp_u__49, __pyx_k__49, sizeof(__pyx_k__49), 0, 1, 0, 0},
    {&__pyx_n_s__57, __pyx_k__57, sizeof(__pyx_k__57), 0, 0, 1, 1},
    {&__pyx_kp_u__58, __pyx_k__58, sizeof(__pyx_k__58), 0, 1, 0, 0},
    {&__pyx_kp_u__69, __pyx_k__69, sizeof(__pyx_k__69), 0, 1, 0, 0},
    {&__pyx_kp_b__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 0, 0, 0},
    {&__pyx_kp_s__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 0, 1, 0},
    {&__pyx_kp_u__70, __pyx_k__70, sizeof(__pyx_k__70), 0, 1, 0, 0},
    {&__pyx_kp_u__71, __pyx_k__71, sizeof(__pyx_k__71), 0, 1, 0, 0},
    {&__pyx_n_s_abort, __pyx_k_abort, sizeof(__pyx_k_abort), 0, 0, 1, 1},
    {&__pyx_n_s_abort_with_status, __pyx_k_abort_with_status, sizeof(__pyx_k_abort_with_status), 0, 0, 1, 1},
    {&__pyx_n_s_aborted, __pyx_k_aborted, sizeof(__pyx_k_aborted), 0, 0, 1, 1},
    {&__pyx_n_s_active_thread_count, __pyx_k_active_thread_count, sizeof(__pyx_k_active_thread_count), 0, 0, 1, 1},
    {&__pyx_n_s_actual_code, __pyx_k_actual_code, sizeof(__pyx_k_actual_code), 0, 0, 1, 1},
    {&__pyx_n_s_add, __pyx_k_add, sizeof(__pyx_k_add), 0, 0, 1, 1},
    {&__pyx_n_s_add_callback, __pyx_k_add_callback, sizeof(__pyx_k_add_callback), 0, 0, 1, 1},
    {&__pyx_n_s_add_callback_handler_locals_han, __pyx_k_add_callback_handler_locals_han, sizeof(__pyx_k_add_callback_handler_locals_han), 0, 0, 1, 1},
    {&__pyx_n_s_add_done_callback, __pyx_k_add_done_callback, sizeof(__pyx_k_add_done_callback), 0, 0, 1, 1},
    {&__pyx_n_s_add_generic_rpc_handlers, __pyx_k_add_generic_rpc_handlers, sizeof(__pyx_k_add_generic_rpc_handlers), 0, 0, 1, 1},
    {&__pyx_n_s_add_http2_port, __pyx_k_add_http2_port, sizeof(__pyx_k_add_http2_port), 0, 0, 1, 1},
    {&__pyx_n_s_add_insecure_port, __pyx_k_add_insecure_port, sizeof(__pyx_k_add_insecure_port), 0, 0, 1, 1},
    {&__pyx_n_s_add_reader, __pyx_k_add_reader, sizeof(__pyx_k_add_reader), 0, 0, 1, 1},
    {&__pyx_n_s_add_secure_port, __pyx_k_add_secure_port, sizeof(__pyx_k_add_secure_port), 0, 0, 1, 1},
    {&__pyx_n_s_address, __pyx_k_address, sizeof(__pyx_k_address), 0, 0, 1, 1},
    {&__pyx_n_s_address_c_string, __pyx_k_address_c_string, sizeof(__pyx_k_address_c_string), 0, 0, 1, 1},
    {&__pyx_n_s_aenter, __pyx_k_aenter, sizeof(__pyx_k_aenter), 0, 0, 1, 1},
    {&__pyx_n_s_aexit, __pyx_k_aexit, sizeof(__pyx_k_aexit), 0, 0, 1, 1},
    {&__pyx_n_s_after_in_child, __pyx_k_after_in_child, sizeof(__pyx_k_after_in_child), 0, 0, 1, 1},
    {&__pyx_n_s_after_in_parent, __pyx_k_after_in_parent, sizeof(__pyx_k_after_in_parent), 0, 0, 1, 1},
    {&__pyx_n_s_agen, __pyx_k_agen, sizeof(__pyx_k_agen), 0, 0, 1, 1},
    {&__pyx_n_s_aiter, __pyx_k_aiter, sizeof(__pyx_k_aiter), 0, 0, 1, 1},
    {&__pyx_n_s_algorithm, __pyx_k_algorithm, sizeof(__pyx_k_algorithm), 0, 0, 1, 1},
    {&__pyx_n_s_already_accepted, __pyx_k_already_accepted, sizeof(__pyx_k_already_accepted), 0, 0, 1, 1},
    {&__pyx_n_s_already_exists, __pyx_k_already_exists, sizeof(__pyx_k_already_exists), 0, 0, 1, 1},
    {&__pyx_n_s_already_finished, __pyx_k_already_finished, sizeof(__pyx_k_already_finished), 0, 0, 1, 1},
    {&__pyx_n_s_already_invoked, __pyx_k_already_invoked, sizeof(__pyx_k_already_invoked), 0, 0, 1, 1},
    {&__pyx_n_s_anext, __pyx_k_anext, sizeof(__pyx_k_anext), 0, 0, 1, 1},
    {&__pyx_n_s_append, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1},
    {&__pyx_n_s_apply, __pyx_k_apply, sizeof(__pyx_k_apply), 0, 0, 1, 1},
    {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
    {&__pyx_n_s_arguments, __pyx_k_arguments, sizeof(__pyx_k_arguments), 0, 0, 1, 1},
    {&__pyx_n_s_ascii, __pyx_k_ascii, sizeof(__pyx_k_ascii), 0, 0, 1, 1},
    {&__pyx_n_s_async_callback_func, __pyx_k_async_callback_func, sizeof(__pyx_k_async_callback_func), 0, 0, 1, 1},
    {&__pyx_n_s_async_generator_to_generator, __pyx_k_async_generator_to_generator, sizeof(__pyx_k_async_generator_to_generator), 0, 0, 1, 1},
    {&__pyx_n_s_async_message_receiver, __pyx_k_async_message_receiver, sizeof(__pyx_k_async_message_receiver), 0, 0, 1, 1},
    {&__pyx_n_s_async_response_generator, __pyx_k_async_response_generator, sizeof(__pyx_k_async_response_generator), 0, 0, 1, 1},
    {&__pyx_n_s_asyncio, __pyx_k_asyncio, sizeof(__pyx_k_asyncio), 0, 0, 1, 1},
    {&__pyx_n_s_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1},
    {&__pyx_n_s_asyncio_tasks, __pyx_k_asyncio_tasks, sizeof(__pyx_k_asyncio_tasks), 0, 0, 1, 1},
    {&__pyx_n_s_atexit, __pyx_k_atexit, sizeof(__pyx_k_atexit), 0, 0, 1, 1},
    {&__pyx_n_s_auth_context, __pyx_k_auth_context, sizeof(__pyx_k_auth_context), 0, 0, 1, 1},
    {&__pyx_n_s_await, __pyx_k_await, sizeof(__pyx_k_await), 0, 0, 1, 1},
    {&__pyx_n_s_await_zero_threads, __pyx_k_await_zero_threads, sizeof(__pyx_k_await_zero_threads), 0, 0, 1, 1},
    {&__pyx_n_s_backup_queue, __pyx_k_backup_queue, sizeof(__pyx_k_backup_queue), 0, 0, 1, 1},
    {&__pyx_n_s_batch_error, __pyx_k_batch_error, sizeof(__pyx_k_batch_error), 0, 0, 1, 1},
    {&__pyx_n_s_batch_operation_tag, __pyx_k_batch_operation_tag, sizeof(__pyx_k_batch_operation_tag), 0, 0, 1, 1},
    {&__pyx_n_s_batch_operations, __pyx_k_batch_operations, sizeof(__pyx_k_batch_operations), 0, 0, 1, 1},
    {&__pyx_n_s_before, __pyx_k_before, sizeof(__pyx_k_before), 0, 0, 1, 1},
    {&__pyx_kp_b_bin, __pyx_k_bin, sizeof(__pyx_k_bin), 0, 0, 0, 0},
    {&__pyx_n_s_bind_loop, __pyx_k_bind_loop, sizeof(__pyx_k_bind_loop), 0, 0, 1, 1},
    {&__pyx_n_s_block_if_fork_in_progress, __pyx_k_block_if_fork_in_progress, sizeof(__pyx_k_block_if_fork_in_progress), 0, 0, 1, 1},
    {&__pyx_n_s_bool, __pyx_k_bool, sizeof(__pyx_k_bool), 0, 0, 1, 1},
    {&__pyx_n_s_buffer_hint, __pyx_k_buffer_hint, sizeof(__pyx_k_buffer_hint), 0, 0, 1, 1},
    {&__pyx_n_s_build_census_context, __pyx_k_build_census_context, sizeof(__pyx_k_build_census_context), 0, 0, 1, 1},
    {&__pyx_n_s_bytes_ctx, __pyx_k_bytes_ctx, sizeof(__pyx_k_bytes_ctx), 0, 0, 1, 1},
    {&__pyx_n_s_c_call_credentials, __pyx_k_c_call_credentials, sizeof(__pyx_k_c_call_credentials), 0, 0, 1, 1},
    {&__pyx_n_s_c_call_error, __pyx_k_c_call_error, sizeof(__pyx_k_c_call_error), 0, 0, 1, 1},
    {&__pyx_n_s_c_cert_config, __pyx_k_c_cert_config, sizeof(__pyx_k_c_cert_config), 0, 0, 1, 1},
    {&__pyx_n_s_c_deadline, __pyx_k_c_deadline, sizeof(__pyx_k_c_deadline), 0, 0, 1, 1},
    {&__pyx_n_s_c_details, __pyx_k_c_details, sizeof(__pyx_k_c_details), 0, 0, 1, 1},
    {&__pyx_n_s_c_error_details, __pyx_k_c_error_details, sizeof(__pyx_k_c_error_details), 0, 0, 1, 1},
    {&__pyx_n_s_c_event, __pyx_k_c_event, sizeof(__pyx_k_c_event), 0, 0, 1, 1},
    {&__pyx_n_s_c_key, __pyx_k_c_key, sizeof(__pyx_k_c_key), 0, 0, 1, 1},
    {&__pyx_n_s_c_options, __pyx_k_c_options, sizeof(__pyx_k_c_options), 0, 0, 1, 1},
    {&__pyx_n_s_c_peer, __pyx_k_c_peer, sizeof(__pyx_k_c_peer), 0, 0, 1, 1},
    {&__pyx_n_s_c_pem_root_certs, __pyx_k_c_pem_root_certs, sizeof(__pyx_k_c_pem_root_certs), 0, 0, 1, 1},
    {&__pyx_n_s_c_returned_str, __pyx_k_c_returned_str, sizeof(__pyx_k_c_returned_str), 0, 0, 1, 1},
    {&__pyx_n_s_c_target, __pyx_k_c_target, sizeof(__pyx_k_c_target), 0, 0, 1, 1},
    {&__pyx_n_s_call, __pyx_k_call, sizeof(__pyx_k_call), 0, 0, 1, 1},
    {&__pyx_n_s_call_credentials, __pyx_k_call_credentials, sizeof(__pyx_k_call_credentials), 0, 0, 1, 1},
    {&__pyx_n_s_call_credentialses, __pyx_k_call_credentialses, sizeof(__pyx_k_call_credentialses), 0, 0, 1, 1},
    {&__pyx_n_s_call_creds, __pyx_k_call_creds, sizeof(__pyx_k_call_creds), 0, 0, 1, 1},
    {&__pyx_n_s_call_details, __pyx_k_call_details, sizeof(__pyx_k_call_details), 0, 0, 1, 1},
    {&__pyx_n_s_call_error, __pyx_k_call_error, sizeof(__pyx_k_call_error), 0, 0, 1, 1},
    {&__pyx_n_s_call_handle, __pyx_k_call_handle, sizeof(__pyx_k_call_handle), 0, 0, 1, 1},
    {&__pyx_n_s_call_queue, __pyx_k_call_queue, sizeof(__pyx_k_call_queue), 0, 0, 1, 1},
    {&__pyx_n_s_call_soon_threadsafe, __pyx_k_call_soon_threadsafe, sizeof(__pyx_k_call_soon_threadsafe), 0, 0, 1, 1},
    {&__pyx_n_s_call_state, __pyx_k_call_state, sizeof(__pyx_k_call_state), 0, 0, 1, 1},
    {&__pyx_n_s_callback, __pyx_k_callback, sizeof(__pyx_k_callback), 0, 0, 1, 1},
    {&__pyx_n_s_callback_func, __pyx_k_callback_func, sizeof(__pyx_k_callback_func), 0, 0, 1, 1},
    {&__pyx_n_s_callback_wrapper, __pyx_k_callback_wrapper, sizeof(__pyx_k_callback_wrapper), 0, 0, 1, 1},
    {&__pyx_n_s_cancel, __pyx_k_cancel, sizeof(__pyx_k_cancel), 0, 0, 1, 1},
    {&__pyx_n_s_cancel_all_calls, __pyx_k_cancel_all_calls, sizeof(__pyx_k_cancel_all_calls), 0, 0, 1, 1},
    {&__pyx_n_s_cancelled, __pyx_k_cancelled, sizeof(__pyx_k_cancelled), 0, 0, 1, 1},
    {&__pyx_kp_s_cannot_register_completion_queue, __pyx_k_cannot_register_completion_queue, sizeof(__pyx_k_cannot_register_completion_queue), 0, 0, 1, 0},
    {&__pyx_n_s_capacity, __pyx_k_capacity, sizeof(__pyx_k_capacity), 0, 0, 1, 1},
    {&__pyx_n_s_capsule, __pyx_k_capsule, sizeof(__pyx_k_capsule), 0, 0, 1, 1},
    {&__pyx_n_s_capsule_ptr, __pyx_k_capsule_ptr, sizeof(__pyx_k_capsule_ptr), 0, 0, 1, 1},
    {&__pyx_n_s_catch_warnings, __pyx_k_catch_warnings, sizeof(__pyx_k_catch_warnings), 0, 0, 1, 1},
    {&__pyx_n_s_cb, __pyx_k_cb, sizeof(__pyx_k_cb), 0, 0, 1, 1},
    {&__pyx_n_s_cb_func, __pyx_k_cb_func, sizeof(__pyx_k_cb_func), 0, 0, 1, 1},
    {&__pyx_n_s_census_ctx, __pyx_k_census_ctx, sizeof(__pyx_k_census_ctx), 0, 0, 1, 1},
    {&__pyx_n_s_cert_config, __pyx_k_cert_config, sizeof(__pyx_k_cert_config), 0, 0, 1, 1},
    {&__pyx_n_s_cert_config_fetcher, __pyx_k_cert_config_fetcher, sizeof(__pyx_k_cert_config_fetcher), 0, 0, 1, 1},
    {&__pyx_kp_s_cert_config_fetcher_must_be_call, __pyx_k_cert_config_fetcher_must_be_call, sizeof(__pyx_k_cert_config_fetcher_must_be_call), 0, 0, 1, 0},
    {&__pyx_n_s_certificate_chain, __pyx_k_certificate_chain, sizeof(__pyx_k_certificate_chain), 0, 0, 1, 1},
    {&__pyx_n_s_certificate_configuration, __pyx_k_certificate_configuration, sizeof(__pyx_k_certificate_configuration), 0, 0, 1, 1},
    {&__pyx_n_s_cfunc_to_py, __pyx_k_cfunc_to_py, sizeof(__pyx_k_cfunc_to_py), 0, 0, 1, 1},
    {&__pyx_n_s_channel, __pyx_k_channel, sizeof(__pyx_k_channel), 0, 0, 1, 1},
    {&__pyx_n_s_channel_credentials, __pyx_k_channel_credentials, sizeof(__pyx_k_channel_credentials), 0, 0, 1, 1},
    {&__pyx_n_s_channel_credentials_alts, __pyx_k_channel_credentials_alts, sizeof(__pyx_k_channel_credentials_alts), 0, 0, 1, 1},
    {&__pyx_n_s_channel_credentials_compute_engi, __pyx_k_channel_credentials_compute_engi, sizeof(__pyx_k_channel_credentials_compute_engi), 0, 0, 1, 1},
    {&__pyx_n_s_channel_credentials_insecure, __pyx_k_channel_credentials_insecure, sizeof(__pyx_k_channel_credentials_insecure), 0, 0, 1, 1},
    {&__pyx_n_s_channel_credentials_local, __pyx_k_channel_credentials_local, sizeof(__pyx_k_channel_credentials_local), 0, 0, 1, 1},
    {&__pyx_n_s_channel_id, __pyx_k_channel_id, sizeof(__pyx_k_channel_id), 0, 0, 1, 1},
    {&__pyx_n_s_channel_state, __pyx_k_channel_state, sizeof(__pyx_k_channel_state), 0, 0, 1, 1},
    {&__pyx_n_s_channels, __pyx_k_channels, sizeof(__pyx_k_channels), 0, 0, 1, 1},
    {&__pyx_n_s_channelz_get_channel, __pyx_k_channelz_get_channel, sizeof(__pyx_k_channelz_get_channel), 0, 0, 1, 1},
    {&__pyx_n_s_channelz_get_server, __pyx_k_channelz_get_server, sizeof(__pyx_k_channelz_get_server), 0, 0, 1, 1},
    {&__pyx_n_s_channelz_get_server_sockets, __pyx_k_channelz_get_server_sockets, sizeof(__pyx_k_channelz_get_server_sockets), 0, 0, 1, 1},
    {&__pyx_n_s_channelz_get_servers, __pyx_k_channelz_get_servers, sizeof(__pyx_k_channelz_get_servers), 0, 0, 1, 1},
    {&__pyx_n_s_channelz_get_socket, __pyx_k_channelz_get_socket, sizeof(__pyx_k_channelz_get_socket), 0, 0, 1, 1},
    {&__pyx_n_s_channelz_get_subchannel, __pyx_k_channelz_get_subchannel, sizeof(__pyx_k_channelz_get_subchannel), 0, 0, 1, 1},
    {&__pyx_n_s_channelz_get_top_channels, __pyx_k_channelz_get_top_channels, sizeof(__pyx_k_channelz_get_top_channels), 0, 0, 1, 1},
    {&__pyx_n_s_check_before_request_call, __pyx_k_check_before_request_call, sizeof(__pyx_k_check_before_request_call), 0, 0, 1, 1},
    {&__pyx_n_s_check_connectivity_state, __pyx_k_check_connectivity_state, sizeof(__pyx_k_check_connectivity_state), 0, 0, 1, 1},
    {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1},
    {&__pyx_n_s_class_getitem, __pyx_k_class_getitem, sizeof(__pyx_k_class_getitem), 0, 0, 1, 1},
    {&__pyx_n_s_clear, __pyx_k_clear, sizeof(__pyx_k_clear), 0, 0, 1, 1},
    {&__pyx_n_s_clear_server_call_tracer_factory, __pyx_k_clear_server_call_tracer_factory, sizeof(__pyx_k_clear_server_call_tracer_factory), 0, 0, 1, 1},
    {&__pyx_n_s_client_config_in_slice, __pyx_k_client_config_in_slice, sizeof(__pyx_k_client_config_in_slice), 0, 0, 1, 1},
    {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
    {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1},
    {&__pyx_n_s_close_on_fork, __pyx_k_close_on_fork, sizeof(__pyx_k_close_on_fork), 0, 0, 1, 1},
    {&__pyx_n_s_close_on_fork_2, __pyx_k_close_on_fork_2, sizeof(__pyx_k_close_on_fork_2), 0, 0, 1, 1},
    {&__pyx_n_s_closed, __pyx_k_closed, sizeof(__pyx_k_closed), 0, 0, 1, 1},
    {&__pyx_n_s_closing, __pyx_k_closing, sizeof(__pyx_k_closing), 0, 0, 1, 1},
    {&__pyx_n_s_code, __pyx_k_code, sizeof(__pyx_k_code), 0, 0, 1, 1},
    {&__pyx_n_s_codecs, __pyx_k_codecs, sizeof(__pyx_k_codecs), 0, 0, 1, 1},
    {&__pyx_n_s_collections, __pyx_k_collections, sizeof(__pyx_k_collections), 0, 0, 1, 1},
    {&__pyx_n_s_common, __pyx_k_common, sizeof(__pyx_k_common), 0, 0, 1, 1},
    {&__pyx_n_s_completion_type, __pyx_k_completion_type, sizeof(__pyx_k_completion_type), 0, 0, 1, 1},
    {&__pyx_n_s_compression, __pyx_k_compression, sizeof(__pyx_k_compression), 0, 0, 1, 1},
    {&__pyx_n_s_compression_algorithm_name, __pyx_k_compression_algorithm_name, sizeof(__pyx_k_compression_algorithm_name), 0, 0, 1, 1},
    {&__pyx_n_s_concurrency_exceeded, __pyx_k_concurrency_exceeded, sizeof(__pyx_k_concurrency_exceeded), 0, 0, 1, 1},
    {&__pyx_n_s_condition, __pyx_k_condition, sizeof(__pyx_k_condition), 0, 0, 1, 1},
    {&__pyx_n_s_connecting, __pyx_k_connecting, sizeof(__pyx_k_connecting), 0, 0, 1, 1},
    {&__pyx_n_s_context, __pyx_k_context, sizeof(__pyx_k_context), 0, 0, 1, 1},
    {&__pyx_n_s_context_loop, __pyx_k_context_loop, sizeof(__pyx_k_context_loop), 0, 0, 1, 1},
    {&__pyx_n_s_contextvars, __pyx_k_contextvars, sizeof(__pyx_k_contextvars), 0, 0, 1, 1},
    {&__pyx_n_s_contextvars_supported, __pyx_k_contextvars_supported, sizeof(__pyx_k_contextvars_supported), 0, 0, 1, 1},
    {&__pyx_n_s_continuation, __pyx_k_continuation, sizeof(__pyx_k_continuation), 0, 0, 1, 1},
    {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1},
    {&__pyx_n_s_copy_context, __pyx_k_copy_context, sizeof(__pyx_k_copy_context), 0, 0, 1, 1},
    {&__pyx_n_s_core_function_name, __pyx_k_core_function_name, sizeof(__pyx_k_core_function_name), 0, 0, 1, 1},
    {&__pyx_n_s_coro, __pyx_k_coro, sizeof(__pyx_k_coro), 0, 0, 1, 1},
    {&__pyx_n_s_create_client_call_tracer, __pyx_k_create_client_call_tracer, sizeof(__pyx_k_create_client_call_tracer), 0, 0, 1, 1},
    {&__pyx_n_s_create_future, __pyx_k_create_future, sizeof(__pyx_k_create_future), 0, 0, 1, 1},
    {&__pyx_n_s_create_server_call_tracer_factor, __pyx_k_create_server_call_tracer_factor, sizeof(__pyx_k_create_server_call_tracer_factor), 0, 0, 1, 1},
    {&__pyx_n_s_create_task, __pyx_k_create_task, sizeof(__pyx_k_create_task), 0, 0, 1, 1},
    {&__pyx_n_s_credentials, __pyx_k_credentials, sizeof(__pyx_k_credentials), 0, 0, 1, 1},
    {&__pyx_n_s_credentials_2, __pyx_k_credentials_2, sizeof(__pyx_k_credentials_2), 0, 0, 1, 1},
    {&__pyx_kp_s_credentials_roots_pem, __pyx_k_credentials_roots_pem, sizeof(__pyx_k_credentials_roots_pem), 0, 0, 1, 0},
    {&__pyx_n_s_creds, __pyx_k_creds, sizeof(__pyx_k_creds), 0, 0, 1, 1},
    {&__pyx_n_s_ctx, __pyx_k_ctx, sizeof(__pyx_k_ctx), 0, 0, 1, 1},
    {&__pyx_n_s_custom_io_manager, __pyx_k_custom_io_manager, sizeof(__pyx_k_custom_io_manager), 0, 0, 1, 1},
    {&__pyx_n_s_custom_op_on_c_call, __pyx_k_custom_op_on_c_call, sizeof(__pyx_k_custom_op_on_c_call), 0, 0, 1, 1},
    {&__pyx_kp_s_cygrpc, __pyx_k_cygrpc, sizeof(__pyx_k_cygrpc), 0, 0, 1, 0},
    {&__pyx_n_s_cython_call_credentials, __pyx_k_cython_call_credentials, sizeof(__pyx_k_cython_call_credentials), 0, 0, 1, 1},
    {&__pyx_n_s_daemon, __pyx_k_daemon, sizeof(__pyx_k_daemon), 0, 0, 1, 1},
    {&__pyx_n_s_daemonic, __pyx_k_daemonic, sizeof(__pyx_k_daemonic), 0, 0, 1, 1},
    {&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1},
    {&__pyx_n_s_data_loss, __pyx_k_data_loss, sizeof(__pyx_k_data_loss), 0, 0, 1, 1},
    {&__pyx_n_s_deadline, __pyx_k_deadline, sizeof(__pyx_k_deadline), 0, 0, 1, 1},
    {&__pyx_n_s_deadline_exceeded, __pyx_k_deadline_exceeded, sizeof(__pyx_k_deadline_exceeded), 0, 0, 1, 1},
    {&__pyx_kp_s_dealloc___called_on_running_se, __pyx_k_dealloc___called_on_running_se, sizeof(__pyx_k_dealloc___called_on_running_se), 0, 0, 1, 0},
    {&__pyx_n_s_debug, __pyx_k_debug, sizeof(__pyx_k_debug), 0, 0, 1, 1},
    {&__pyx_n_s_debug_error_string, __pyx_k_debug_error_string, sizeof(__pyx_k_debug_error_string), 0, 0, 1, 1},
    {&__pyx_n_s_decode, __pyx_k_decode, sizeof(__pyx_k_decode), 0, 0, 1, 1},
    {&__pyx_n_s_decrease_active_rpcs_count, __pyx_k_decrease_active_rpcs_count, sizeof(__pyx_k_decrease_active_rpcs_count), 0, 0, 1, 1},
    {&__pyx_n_s_decrease_once_finished, __pyx_k_decrease_once_finished, sizeof(__pyx_k_decrease_once_finished), 0, 0, 1, 1},
    {&__pyx_n_s_decrement, __pyx_k_decrement, sizeof(__pyx_k_decrement), 0, 0, 1, 1},
    {&__pyx_n_s_default_authority, __pyx_k_default_authority, sizeof(__pyx_k_default_authority), 0, 0, 1, 1},
    {&__pyx_n_s_default_vtable, __pyx_k_default_vtable, sizeof(__pyx_k_default_vtable), 0, 0, 1, 1},
    {&__pyx_n_s_deflate, __pyx_k_deflate, sizeof(__pyx_k_deflate), 0, 0, 1, 1},
    {&__pyx_n_s_destroy, __pyx_k_destroy, sizeof(__pyx_k_destroy), 0, 0, 1, 1},
    {&__pyx_n_s_details, __pyx_k_details, sizeof(__pyx_k_details), 0, 0, 1, 1},
    {&__pyx_n_s_details_bytes, __pyx_k_details_bytes, sizeof(__pyx_k_details_bytes), 0, 0, 1, 1},
    {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
    {&__pyx_n_s_dict_2, __pyx_k_dict_2, sizeof(__pyx_k_dict_2), 0, 0, 1, 1},
    {&__pyx_kp_u_disable, __pyx_k_disable, sizeof(__pyx_k_disable), 0, 1, 0, 0},
    {&__pyx_n_s_disable_algorithm, __pyx_k_disable_algorithm, sizeof(__pyx_k_disable_algorithm), 0, 0, 1, 1},
    {&__pyx_n_s_disable_next_message_compression, __pyx_k_disable_next_message_compression, sizeof(__pyx_k_disable_next_message_compression), 0, 0, 1, 1},
    {&__pyx_n_s_discard, __pyx_k_discard, sizeof(__pyx_k_discard), 0, 0, 1, 1},
    {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1},
    {&__pyx_n_s_done, __pyx_k_done, sizeof(__pyx_k_done), 0, 0, 1, 1},
    {&__pyx_n_s_dump_xds_configs, __pyx_k_dump_xds_configs, sizeof(__pyx_k_dump_xds_configs), 0, 0, 1, 1},
    {&__pyx_n_s_e, __pyx_k_e, sizeof(__pyx_k_e), 0, 0, 1, 1},
    {&__pyx_kp_u_enable, __pyx_k_enable, sizeof(__pyx_k_enable), 0, 1, 0, 0},
    {&__pyx_n_s_enable_algorithm, __pyx_k_enable_algorithm, sizeof(__pyx_k_enable_algorithm), 0, 0, 1, 1},
    {&__pyx_n_s_enable_census, __pyx_k_enable_census, sizeof(__pyx_k_enable_census), 0, 0, 1, 1},
    {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1},
    {&__pyx_n_s_end_time, __pyx_k_end_time, sizeof(__pyx_k_end_time), 0, 0, 1, 1},
    {&__pyx_n_s_endswith, __pyx_k_endswith, sizeof(__pyx_k_endswith), 0, 0, 1, 1},
    {&__pyx_n_s_enter, __pyx_k_enter, sizeof(__pyx_k_enter), 0, 0, 1, 1},
    {&__pyx_n_s_enter_user_request_generator, __pyx_k_enter_user_request_generator, sizeof(__pyx_k_enter_user_request_generator), 0, 0, 1, 1},
    {&__pyx_n_s_enum, __pyx_k_enum, sizeof(__pyx_k_enum), 0, 0, 1, 1},
    {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1},
    {&__pyx_n_s_environ, __pyx_k_environ, sizeof(__pyx_k_environ), 0, 0, 1, 1},
    {&__pyx_n_s_errno, __pyx_k_errno, sizeof(__pyx_k_errno), 0, 0, 1, 1},
    {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1},
    {&__pyx_n_s_error_code, __pyx_k_error_code, sizeof(__pyx_k_error_code), 0, 0, 1, 1},
    {&__pyx_n_s_error_details, __pyx_k_error_details, sizeof(__pyx_k_error_details), 0, 0, 1, 1},
    {&__pyx_n_s_error_str, __pyx_k_error_str, sizeof(__pyx_k_error_str), 0, 0, 1, 1},
    {&__pyx_n_s_error_string, __pyx_k_error_string, sizeof(__pyx_k_error_string), 0, 0, 1, 1},
    {&__pyx_n_s_event, __pyx_k_event, sizeof(__pyx_k_event), 0, 0, 1, 1},
    {&__pyx_n_s_exc_info, __pyx_k_exc_info, sizeof(__pyx_k_exc_info), 0, 0, 1, 1},
    {&__pyx_n_s_exception, __pyx_k_exception, sizeof(__pyx_k_exception), 0, 0, 1, 1},
    {&__pyx_n_s_exception_type, __pyx_k_exception_type, sizeof(__pyx_k_exception_type), 0, 0, 1, 1},
    {&__pyx_n_s_execute_batch, __pyx_k_execute_batch, sizeof(__pyx_k_execute_batch), 0, 0, 1, 1},
    {&__pyx_n_s_exit, __pyx_k_exit, sizeof(__pyx_k_exit), 0, 0, 1, 1},
    {&__pyx_n_s_exit_2, __pyx_k_exit_2, sizeof(__pyx_k_exit_2), 0, 0, 1, 1},
    {&__pyx_kp_s_expected_certificate_to_be_bytes, __pyx_k_expected_certificate_to_be_bytes, sizeof(__pyx_k_expected_certificate_to_be_bytes), 0, 0, 1, 0},
    {&__pyx_kp_s_expected_pem_key_cert_pairs_to_b, __pyx_k_expected_pem_key_cert_pairs_to_b, sizeof(__pyx_k_expected_pem_key_cert_pairs_to_b), 0, 0, 1, 0},
    {&__pyx_kp_s_expected_registered_completion_q, __pyx_k_expected_registered_completion_q, sizeof(__pyx_k_expected_registered_completion_q), 0, 0, 1, 0},
    {&__pyx_n_s_failed_precondition, __pyx_k_failed_precondition, sizeof(__pyx_k_failed_precondition), 0, 0, 1, 1},
    {&__pyx_n_s_failure_handler, __pyx_k_failure_handler, sizeof(__pyx_k_failure_handler), 0, 0, 1, 1},
    {&__pyx_n_s_fallback_credentials, __pyx_k_fallback_credentials, sizeof(__pyx_k_fallback_credentials), 0, 0, 1, 1},
    {&__pyx_n_s_fileno, __pyx_k_fileno, sizeof(__pyx_k_fileno), 0, 0, 1, 1},
    {&__pyx_n_s_find_method_handler, __pyx_k_find_method_handler, sizeof(__pyx_k_find_method_handler), 0, 0, 1, 1},
    {&__pyx_n_s_find_method_handler_locals_quer, __pyx_k_find_method_handler_locals_quer, sizeof(__pyx_k_find_method_handler_locals_quer), 0, 0, 1, 1},
    {&__pyx_n_s_finish_handler_with_stream_resp, __pyx_k_finish_handler_with_stream_resp, sizeof(__pyx_k_finish_handler_with_stream_resp), 0, 0, 1, 1},
    {&__pyx_n_s_finish_handler_with_unary_respo, __pyx_k_finish_handler_with_unary_respo, sizeof(__pyx_k_finish_handler_with_unary_respo), 0, 0, 1, 1},
    {&__pyx_n_s_finish_ops, __pyx_k_finish_ops, sizeof(__pyx_k_finish_ops), 0, 0, 1, 1},
    {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1},
    {&__pyx_n_s_fn, __pyx_k_fn, sizeof(__pyx_k_fn), 0, 0, 1, 1},
    {&__pyx_n_s_force_client_auth, __pyx_k_force_client_auth, sizeof(__pyx_k_force_client_auth), 0, 0, 1, 1},
    {&__pyx_n_s_fork_epoch, __pyx_k_fork_epoch, sizeof(__pyx_k_fork_epoch), 0, 0, 1, 1},
    {&__pyx_n_s_fork_handler_failed, __pyx_k_fork_handler_failed, sizeof(__pyx_k_fork_handler_failed), 0, 0, 1, 1},
    {&__pyx_n_s_fork_handler_registered, __pyx_k_fork_handler_registered, sizeof(__pyx_k_fork_handler_registered), 0, 0, 1, 1},
    {&__pyx_n_s_fork_handler_registered_lock, __pyx_k_fork_handler_registered_lock, sizeof(__pyx_k_fork_handler_registered_lock), 0, 0, 1, 1},
    {&__pyx_n_s_fork_handlers_and_grpc_init, __pyx_k_fork_handlers_and_grpc_init, sizeof(__pyx_k_fork_handlers_and_grpc_init), 0, 0, 1, 1},
    {&__pyx_n_s_fork_in_progress, __pyx_k_fork_in_progress, sizeof(__pyx_k_fork_in_progress), 0, 0, 1, 1},
    {&__pyx_n_s_fork_in_progress_condition, __pyx_k_fork_in_progress_condition, sizeof(__pyx_k_fork_in_progress_condition), 0, 0, 1, 1},
    {&__pyx_n_s_fork_register_channel, __pyx_k_fork_register_channel, sizeof(__pyx_k_fork_register_channel), 0, 0, 1, 1},
    {&__pyx_n_s_fork_state, __pyx_k_fork_state, sizeof(__pyx_k_fork_state), 0, 0, 1, 1},
    {&__pyx_n_s_fork_unregister_channel, __pyx_k_fork_unregister_channel, sizeof(__pyx_k_fork_unregister_channel), 0, 0, 1, 1},
    {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1},
    {&__pyx_n_s_format_exception, __pyx_k_format_exception, sizeof(__pyx_k_format_exception), 0, 0, 1, 1},
    {&__pyx_n_s_fully_qualified_method, __pyx_k_fully_qualified_method, sizeof(__pyx_k_fully_qualified_method), 0, 0, 1, 1},
    {&__pyx_n_s_functools, __pyx_k_functools, sizeof(__pyx_k_functools), 0, 0, 1, 1},
    {&__pyx_n_s_future, __pyx_k_future, sizeof(__pyx_k_future), 0, 0, 1, 1},
    {&__pyx_n_s_g_gevent_activated, __pyx_k_g_gevent_activated, sizeof(__pyx_k_g_gevent_activated), 0, 0, 1, 1},
    {&__pyx_n_s_g_gevent_pool, __pyx_k_g_gevent_pool, sizeof(__pyx_k_g_gevent_pool), 0, 0, 1, 1},
    {&__pyx_n_s_g_gevent_threadpool, __pyx_k_g_gevent_threadpool, sizeof(__pyx_k_g_gevent_threadpool), 0, 0, 1, 1},
    {&__pyx_n_s_g_interrupt_check_period_ms, __pyx_k_g_interrupt_check_period_ms, sizeof(__pyx_k_g_interrupt_check_period_ms), 0, 0, 1, 1},
    {&__pyx_kp_u_gc, __pyx_k_gc, sizeof(__pyx_k_gc), 0, 1, 0, 0},
    {&__pyx_n_s_gen, __pyx_k_gen, sizeof(__pyx_k_gen), 0, 0, 1, 1},
    {&__pyx_n_s_generator_to_async_generator, __pyx_k_generator_to_async_generator, sizeof(__pyx_k_generator_to_async_generator), 0, 0, 1, 1},
    {&__pyx_n_s_generator_to_async_generator_loc, __pyx_k_generator_to_async_generator_loc, sizeof(__pyx_k_generator_to_async_generator_loc), 0, 0, 1, 1},
    {&__pyx_n_s_generic_handler, __pyx_k_generic_handler, sizeof(__pyx_k_generic_handler), 0, 0, 1, 1},
    {&__pyx_n_s_generic_handlers, __pyx_k_generic_handlers, sizeof(__pyx_k_generic_handlers), 0, 0, 1, 1},
    {&__pyx_n_s_generic_rpc_handlers, __pyx_k_generic_rpc_handlers, sizeof(__pyx_k_generic_rpc_handlers), 0, 0, 1, 1},
    {&__pyx_n_s_genexpr, __pyx_k_genexpr, sizeof(__pyx_k_genexpr), 0, 0, 1, 1},
    {&__pyx_n_s_get, __pyx_k_get, sizeof(__pyx_k_get), 0, 0, 1, 1},
    {&__pyx_n_s_getLogger, __pyx_k_getLogger, sizeof(__pyx_k_getLogger), 0, 0, 1, 1},
    {&__pyx_n_s_get_data, __pyx_k_get_data, sizeof(__pyx_k_get_data), 0, 0, 1, 1},
    {&__pyx_n_s_get_deadline_from_context, __pyx_k_get_deadline_from_context, sizeof(__pyx_k_get_deadline_from_context), 0, 0, 1, 1},
    {&__pyx_n_s_get_event_loop, __pyx_k_get_event_loop, sizeof(__pyx_k_get_event_loop), 0, 0, 1, 1},
    {&__pyx_n_s_get_event_loop_policy, __pyx_k_get_event_loop_policy, sizeof(__pyx_k_get_event_loop_policy), 0, 0, 1, 1},
    {&__pyx_n_s_get_fork_epoch, __pyx_k_get_fork_epoch, sizeof(__pyx_k_get_fork_epoch), 0, 0, 1, 1},
    {&__pyx_n_s_get_hub, __pyx_k_get_hub, sizeof(__pyx_k_get_hub), 0, 0, 1, 1},
    {&__pyx_n_s_get_metadata_locals_callback, __pyx_k_get_metadata_locals_callback, sizeof(__pyx_k_get_metadata_locals_callback), 0, 0, 1, 1},
    {&__pyx_n_s_get_plugin, __pyx_k_get_plugin, sizeof(__pyx_k_get_plugin), 0, 0, 1, 1},
    {&__pyx_n_s_get_registered_call_handle, __pyx_k_get_registered_call_handle, sizeof(__pyx_k_get_registered_call_handle), 0, 0, 1, 1},
    {&__pyx_n_s_get_running_loop, __pyx_k_get_running_loop, sizeof(__pyx_k_get_running_loop), 0, 0, 1, 1},
    {&__pyx_n_s_get_server_call_tracer_factory_a, __pyx_k_get_server_call_tracer_factory_a, sizeof(__pyx_k_get_server_call_tracer_factory_a), 0, 0, 1, 1},
    {&__pyx_n_s_get_working_loop, __pyx_k_get_working_loop, sizeof(__pyx_k_get_working_loop), 0, 0, 1, 1},
    {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1},
    {&__pyx_n_s_gevent, __pyx_k_gevent, sizeof(__pyx_k_gevent), 0, 0, 1, 1},
    {&__pyx_n_s_gevent_decrement_channel_count, __pyx_k_gevent_decrement_channel_count, sizeof(__pyx_k_gevent_decrement_channel_count), 0, 0, 1, 1},
    {&__pyx_n_s_gevent_hub, __pyx_k_gevent_hub, sizeof(__pyx_k_gevent_hub), 0, 0, 1, 1},
    {&__pyx_n_s_gevent_increment_channel_count, __pyx_k_gevent_increment_channel_count, sizeof(__pyx_k_gevent_increment_channel_count), 0, 0, 1, 1},
    {&__pyx_n_s_gevent_pool, __pyx_k_gevent_pool, sizeof(__pyx_k_gevent_pool), 0, 0, 1, 1},
    {&__pyx_n_s_grace, __pyx_k_grace, sizeof(__pyx_k_grace), 0, 0, 1, 1},
    {&__pyx_n_s_grpc, __pyx_k_grpc, sizeof(__pyx_k_grpc), 0, 0, 1, 1},
    {&__pyx_n_s_grpc__cython_cygrpc, __pyx_k_grpc__cython_cygrpc, sizeof(__pyx_k_grpc__cython_cygrpc), 0, 0, 1, 1},
    {&__pyx_kp_s_grpc_aio_EOF, __pyx_k_grpc_aio_EOF, sizeof(__pyx_k_grpc_aio_EOF), 0, 0, 1, 0},
    {&__pyx_n_s_grpc_call_error_string, __pyx_k_grpc_call_error_string, sizeof(__pyx_k_grpc_call_error_string), 0, 0, 1, 1},
    {&__pyx_n_s_grpc_call_wrapper, __pyx_k_grpc_call_wrapper, sizeof(__pyx_k_grpc_call_wrapper), 0, 0, 1, 1},
    {&__pyx_n_s_grpc_completion_queue_shutdown, __pyx_k_grpc_completion_queue_shutdown, sizeof(__pyx_k_grpc_completion_queue_shutdown), 0, 0, 1, 1},
    {&__pyx_kp_s_grpc_python__cygrpc__GrpcArgWrap, __pyx_k_grpc_python__cygrpc__GrpcArgWrap, sizeof(__pyx_k_grpc_python__cygrpc__GrpcArgWrap), 0, 0, 1, 0},
    {&__pyx_n_s_grpc_server_request_call, __pyx_k_grpc_server_request_call, sizeof(__pyx_k_grpc_server_request_call), 0, 0, 1, 1},
    {&__pyx_n_s_grpc_server_shutdown_and_notify, __pyx_k_grpc_server_shutdown_and_notify, sizeof(__pyx_k_grpc_server_shutdown_and_notify), 0, 0, 1, 1},
    {&__pyx_n_s_grpc_shutdown_wrapper, __pyx_k_grpc_shutdown_wrapper, sizeof(__pyx_k_grpc_shutdown_wrapper), 0, 0, 1, 1},
    {&__pyx_n_s_gzip, __pyx_k_gzip, sizeof(__pyx_k_gzip), 0, 0, 1, 1},
    {&__pyx_n_s_handle_callback_wrapper, __pyx_k_handle_callback_wrapper, sizeof(__pyx_k_handle_callback_wrapper), 0, 0, 1, 1},
    {&__pyx_n_s_handle_callbacks, __pyx_k_handle_callbacks, sizeof(__pyx_k_handle_callbacks), 0, 0, 1, 1},
    {&__pyx_n_s_handle_cancellation_from_core, __pyx_k_handle_cancellation_from_core, sizeof(__pyx_k_handle_cancellation_from_core), 0, 0, 1, 1},
    {&__pyx_n_s_handle_events, __pyx_k_handle_events, sizeof(__pyx_k_handle_events), 0, 0, 1, 1},
    {&__pyx_n_s_handle_exceptions, __pyx_k_handle_exceptions, sizeof(__pyx_k_handle_exceptions), 0, 0, 1, 1},
    {&__pyx_n_s_handle_rpc, __pyx_k_handle_rpc, sizeof(__pyx_k_handle_rpc), 0, 0, 1, 1},
    {&__pyx_n_s_handle_status_once_received, __pyx_k_handle_status_once_received, sizeof(__pyx_k_handle_status_once_received), 0, 0, 1, 1},
    {&__pyx_n_s_handle_stream_stream_rpc, __pyx_k_handle_stream_stream_rpc, sizeof(__pyx_k_handle_stream_stream_rpc), 0, 0, 1, 1},
    {&__pyx_n_s_handle_stream_unary_rpc, __pyx_k_handle_stream_unary_rpc, sizeof(__pyx_k_handle_stream_unary_rpc), 0, 0, 1, 1},
    {&__pyx_n_s_handle_unary_stream_rpc, __pyx_k_handle_unary_stream_rpc, sizeof(__pyx_k_handle_unary_stream_rpc), 0, 0, 1, 1},
    {&__pyx_n_s_handle_unary_unary_rpc, __pyx_k_handle_unary_unary_rpc, sizeof(__pyx_k_handle_unary_unary_rpc), 0, 0, 1, 1},
    {&__pyx_n_s_handler, __pyx_k_handler, sizeof(__pyx_k_handler), 0, 0, 1, 1},
    {&__pyx_n_s_handler_call_details, __pyx_k_handler_call_details, sizeof(__pyx_k_handler_call_details), 0, 0, 1, 1},
    {&__pyx_n_s_hex_codec, __pyx_k_hex_codec, sizeof(__pyx_k_hex_codec), 0, 0, 1, 1},
    {&__pyx_n_s_high, __pyx_k_high, sizeof(__pyx_k_high), 0, 0, 1, 1},
    {&__pyx_n_s_host, __pyx_k_host, sizeof(__pyx_k_host), 0, 0, 1, 1},
    {&__pyx_n_s_http2_initial_sequence_number, __pyx_k_http2_initial_sequence_number, sizeof(__pyx_k_http2_initial_sequence_number), 0, 0, 1, 1},
    {&__pyx_n_s_hub, __pyx_k_hub, sizeof(__pyx_k_hub), 0, 0, 1, 1},
    {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1},
    {&__pyx_n_s_identities, __pyx_k_identities, sizeof(__pyx_k_identities), 0, 0, 1, 1},
    {&__pyx_n_s_identity, __pyx_k_identity, sizeof(__pyx_k_identity), 0, 0, 1, 1},
    {&__pyx_n_s_identity_key, __pyx_k_identity_key, sizeof(__pyx_k_identity_key), 0, 0, 1, 1},
    {&__pyx_n_s_idle, __pyx_k_idle, sizeof(__pyx_k_idle), 0, 0, 1, 1},
    {&__pyx_kp_s_if_error_code_is_specified_so_mu, __pyx_k_if_error_code_is_specified_so_mu, sizeof(__pyx_k_if_error_code_is_specified_so_mu), 0, 0, 1, 0},
    {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
    {&__pyx_n_s_inbound_ops, __pyx_k_inbound_ops, sizeof(__pyx_k_inbound_ops), 0, 0, 1, 1},
    {&__pyx_n_s_increment, __pyx_k_increment, sizeof(__pyx_k_increment), 0, 0, 1, 1},
    {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1},
    {&__pyx_n_s_init_grpc_aio, __pyx_k_init_grpc_aio, sizeof(__pyx_k_init_grpc_aio), 0, 0, 1, 1},
    {&__pyx_n_s_init_grpc_gevent, __pyx_k_init_grpc_gevent, sizeof(__pyx_k_init_grpc_gevent), 0, 0, 1, 1},
    {&__pyx_n_s_init_subclass, __pyx_k_init_subclass, sizeof(__pyx_k_init_subclass), 0, 0, 1, 1},
    {&__pyx_n_s_initial_cert_config, __pyx_k_initial_cert_config, sizeof(__pyx_k_initial_cert_config), 0, 0, 1, 1},
    {&__pyx_kp_s_initial_cert_config_must_be_a_gr, __pyx_k_initial_cert_config_must_be_a_gr, sizeof(__pyx_k_initial_cert_config_must_be_a_gr), 0, 0, 1, 0},
    {&__pyx_n_s_initial_metadata, __pyx_k_initial_metadata, sizeof(__pyx_k_initial_metadata), 0, 0, 1, 1},
    {&__pyx_n_s_initial_metadata_op, __pyx_k_initial_metadata_op, sizeof(__pyx_k_initial_metadata_op), 0, 0, 1, 1},
    {&__pyx_n_s_initializing, __pyx_k_initializing, sizeof(__pyx_k_initializing), 0, 0, 1, 1},
    {&__pyx_n_s_initiate_stream_stream, __pyx_k_initiate_stream_stream, sizeof(__pyx_k_initiate_stream_stream), 0, 0, 1, 1},
    {&__pyx_n_s_initiate_unary_stream, __pyx_k_initiate_unary_stream, sizeof(__pyx_k_initiate_unary_stream), 0, 0, 1, 1},
    {&__pyx_n_s_insecure_server_credentials, __pyx_k_insecure_server_credentials, sizeof(__pyx_k_insecure_server_credentials), 0, 0, 1, 1},
    {&__pyx_n_s_inspect, __pyx_k_inspect, sizeof(__pyx_k_inspect), 0, 0, 1, 1},
    {&__pyx_n_s_install_context_from_request_cal, __pyx_k_install_context_from_request_cal, sizeof(__pyx_k_install_context_from_request_cal), 0, 0, 1, 1},
    {&__pyx_n_s_install_context_from_request_cal_2, __pyx_k_install_context_from_request_cal_2, sizeof(__pyx_k_install_context_from_request_cal_2), 0, 0, 1, 1},
    {&__pyx_n_s_int, __pyx_k_int, sizeof(__pyx_k_int), 0, 0, 1, 1},
    {&__pyx_n_s_integrated_call, __pyx_k_integrated_call, sizeof(__pyx_k_integrated_call), 0, 0, 1, 1},
    {&__pyx_n_s_integrated_call_locals_on_succe, __pyx_k_integrated_call_locals_on_succe, sizeof(__pyx_k_integrated_call_locals_on_succe), 0, 0, 1, 1},
    {&__pyx_n_s_intercept_service, __pyx_k_intercept_service, sizeof(__pyx_k_intercept_service), 0, 0, 1, 1},
    {&__pyx_n_s_interceptor, __pyx_k_interceptor, sizeof(__pyx_k_interceptor), 0, 0, 1, 1},
    {&__pyx_n_s_interceptors, __pyx_k_interceptors, sizeof(__pyx_k_interceptors), 0, 0, 1, 1},
    {&__pyx_n_s_internal, __pyx_k_internal, sizeof(__pyx_k_internal), 0, 0, 1, 1},
    {&__pyx_kp_s_internal_error_user_data_must_be, __pyx_k_internal_error_user_data_must_be, sizeof(__pyx_k_internal_error_user_data_must_be), 0, 0, 1, 0},
    {&__pyx_n_s_internal_poll, __pyx_k_internal_poll, sizeof(__pyx_k_internal_poll), 0, 0, 1, 1},
    {&__pyx_n_s_invalid_argument, __pyx_k_invalid_argument, sizeof(__pyx_k_invalid_argument), 0, 0, 1, 1},
    {&__pyx_kp_s_invalid_call_object_cannot_be_us, __pyx_k_invalid_call_object_cannot_be_us, sizeof(__pyx_k_invalid_call_object_cannot_be_us), 0, 0, 1, 0},
    {&__pyx_n_s_invalid_flags, __pyx_k_invalid_flags, sizeof(__pyx_k_invalid_flags), 0, 0, 1, 1},
    {&__pyx_n_s_invalid_metadata, __pyx_k_invalid_metadata, sizeof(__pyx_k_invalid_metadata), 0, 0, 1, 1},
    {&__pyx_n_s_invocation_metadata, __pyx_k_invocation_metadata, sizeof(__pyx_k_invocation_metadata), 0, 0, 1, 1},
    {&__pyx_n_s_is_algorithm_enabled, __pyx_k_is_algorithm_enabled, sizeof(__pyx_k_is_algorithm_enabled), 0, 0, 1, 1},
    {&__pyx_n_s_is_async_handler, __pyx_k_is_async_handler, sizeof(__pyx_k_is_async_handler), 0, 0, 1, 1},
    {&__pyx_n_s_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1},
    {&__pyx_n_s_is_fork_support_enabled, __pyx_k_is_fork_support_enabled, sizeof(__pyx_k_is_fork_support_enabled), 0, 0, 1, 1},
    {&__pyx_n_s_is_locally_cancelled, __pyx_k_is_locally_cancelled, sizeof(__pyx_k_is_locally_cancelled), 0, 0, 1, 1},
    {&__pyx_n_s_is_ok, __pyx_k_is_ok, sizeof(__pyx_k_is_ok), 0, 0, 1, 1},
    {&__pyx_n_s_is_running, __pyx_k_is_running, sizeof(__pyx_k_is_running), 0, 0, 1, 1},
    {&__pyx_n_s_is_sampled, __pyx_k_is_sampled, sizeof(__pyx_k_is_sampled), 0, 0, 1, 1},
    {&__pyx_n_s_is_valid, __pyx_k_is_valid, sizeof(__pyx_k_is_valid), 0, 0, 1, 1},
    {&__pyx_n_s_isasyncgenfunction, __pyx_k_isasyncgenfunction, sizeof(__pyx_k_isasyncgenfunction), 0, 0, 1, 1},
    {&__pyx_n_s_isawaitable, __pyx_k_isawaitable, sizeof(__pyx_k_isawaitable), 0, 0, 1, 1},
    {&__pyx_n_s_iscoroutinefunction, __pyx_k_iscoroutinefunction, sizeof(__pyx_k_iscoroutinefunction), 0, 0, 1, 1},
    {&__pyx_kp_u_isenabled, __pyx_k_isenabled, sizeof(__pyx_k_isenabled), 0, 1, 0, 0},
    {&__pyx_n_s_item, __pyx_k_item, sizeof(__pyx_k_item), 0, 0, 1, 1},
    {&__pyx_n_s_iter, __pyx_k_iter, sizeof(__pyx_k_iter), 0, 0, 1, 1},
    {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1},
    {&__pyx_n_s_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 0, 1, 1},
    {&__pyx_n_s_keys, __pyx_k_keys, sizeof(__pyx_k_keys), 0, 0, 1, 1},
    {&__pyx_n_s_last_observed_state, __pyx_k_last_observed_state, sizeof(__pyx_k_last_observed_state), 0, 0, 1, 1},
    {&__pyx_n_s_latent_event_arg, __pyx_k_latent_event_arg, sizeof(__pyx_k_latent_event_arg), 0, 0, 1, 1},
    {&__pyx_n_s_len, __pyx_k_len, sizeof(__pyx_k_len), 0, 0, 1, 1},
    {&__pyx_n_s_lk, __pyx_k_lk, sizeof(__pyx_k_lk), 0, 0, 1, 1},
    {&__pyx_n_s_local_connect_type, __pyx_k_local_connect_type, sizeof(__pyx_k_local_connect_type), 0, 0, 1, 1},
    {&__pyx_n_s_local_tcp, __pyx_k_local_tcp, sizeof(__pyx_k_local_tcp), 0, 0, 1, 1},
    {&__pyx_n_s_logging, __pyx_k_logging, sizeof(__pyx_k_logging), 0, 0, 1, 1},
    {&__pyx_n_s_loop, __pyx_k_loop, sizeof(__pyx_k_loop), 0, 0, 1, 1},
    {&__pyx_n_s_low, __pyx_k_low, sizeof(__pyx_k_low), 0, 0, 1, 1},
    {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1},
    {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
    {&__pyx_n_s_managed_target, __pyx_k_managed_target, sizeof(__pyx_k_managed_target), 0, 0, 1, 1},
    {&__pyx_n_s_max_concurrent_streams, __pyx_k_max_concurrent_streams, sizeof(__pyx_k_max_concurrent_streams), 0, 0, 1, 1},
    {&__pyx_n_s_max_receive_message_length, __pyx_k_max_receive_message_length, sizeof(__pyx_k_max_receive_message_length), 0, 0, 1, 1},
    {&__pyx_n_s_max_results, __pyx_k_max_results, sizeof(__pyx_k_max_results), 0, 0, 1, 1},
    {&__pyx_n_s_max_send_message_length, __pyx_k_max_send_message_length, sizeof(__pyx_k_max_send_message_length), 0, 0, 1, 1},
    {&__pyx_n_s_maximum_concurrent_rpcs, __pyx_k_maximum_concurrent_rpcs, sizeof(__pyx_k_maximum_concurrent_rpcs), 0, 0, 1, 1},
    {&__pyx_kp_s_maximum_concurrent_rpcs_should_b, __pyx_k_maximum_concurrent_rpcs_should_b, sizeof(__pyx_k_maximum_concurrent_rpcs_should_b), 0, 0, 1, 0},
    {&__pyx_n_s_maxsize, __pyx_k_maxsize, sizeof(__pyx_k_maxsize), 0, 0, 1, 1},
    {&__pyx_n_s_maybe_save_server_trace_context, __pyx_k_maybe_save_server_trace_context, sizeof(__pyx_k_maybe_save_server_trace_context), 0, 0, 1, 1},
    {&__pyx_n_s_medium, __pyx_k_medium, sizeof(__pyx_k_medium), 0, 0, 1, 1},
    {&__pyx_n_s_members, __pyx_k_members, sizeof(__pyx_k_members), 0, 0, 1, 1},
    {&__pyx_n_s_message, __pyx_k_message, sizeof(__pyx_k_message), 0, 0, 1, 1},
    {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1},
    {&__pyx_n_s_metadata, __pyx_k_metadata, sizeof(__pyx_k_metadata), 0, 0, 1, 1},
    {&__pyx_n_s_metadata_locals_genexpr, __pyx_k_metadata_locals_genexpr, sizeof(__pyx_k_metadata_locals_genexpr), 0, 0, 1, 1},
    {&__pyx_n_s_metadata_plugin, __pyx_k_metadata_plugin, sizeof(__pyx_k_metadata_plugin), 0, 0, 1, 1},
    {&__pyx_n_s_metadata_sent_observer, __pyx_k_metadata_sent_observer, sizeof(__pyx_k_metadata_sent_observer), 0, 0, 1, 1},
    {&__pyx_kp_s_metadata_was_invalid_s, __pyx_k_metadata_was_invalid_s, sizeof(__pyx_k_metadata_was_invalid_s), 0, 0, 1, 0},
    {&__pyx_n_s_method, __pyx_k_method, sizeof(__pyx_k_method), 0, 0, 1, 1},
    {&__pyx_n_s_method_bytes, __pyx_k_method_bytes, sizeof(__pyx_k_method_bytes), 0, 0, 1, 1},
    {&__pyx_n_s_method_handler, __pyx_k_method_handler, sizeof(__pyx_k_method_handler), 0, 0, 1, 1},
    {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1},
    {&__pyx_n_s_mro_entries, __pyx_k_mro_entries, sizeof(__pyx_k_mro_entries), 0, 0, 1, 1},
    {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
    {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1},
    {&__pyx_n_s_namedtuple, __pyx_k_namedtuple, sizeof(__pyx_k_namedtuple), 0, 0, 1, 1},
    {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1},
    {&__pyx_n_s_new_event_loop, __pyx_k_new_event_loop, sizeof(__pyx_k_new_event_loop), 0, 0, 1, 1},
    {&__pyx_n_s_next_call_event, __pyx_k_next_call_event, sizeof(__pyx_k_next_call_event), 0, 0, 1, 1},
    {&__pyx_n_s_next_call_event_locals_on_succes, __pyx_k_next_call_event_locals_on_succes, sizeof(__pyx_k_next_call_event_locals_on_succes), 0, 0, 1, 1},
    {&__pyx_n_s_next_event, __pyx_k_next_event, sizeof(__pyx_k_next_event), 0, 0, 1, 1},
    {&__pyx_n_s_next_event_locals_on_failure, __pyx_k_next_event_locals_on_failure, sizeof(__pyx_k_next_event_locals_on_failure), 0, 0, 1, 1},
    {&__pyx_n_s_next_event_locals_on_success, __pyx_k_next_event_locals_on_success, sizeof(__pyx_k_next_event_locals_on_success), 0, 0, 1, 1},
    {&__pyx_n_s_no_compress, __pyx_k_no_compress, sizeof(__pyx_k_no_compress), 0, 0, 1, 1},
    {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0},
    {&__pyx_n_s_none, __pyx_k_none, sizeof(__pyx_k_none), 0, 0, 1, 1},
    {&__pyx_n_s_not_found, __pyx_k_not_found, sizeof(__pyx_k_not_found), 0, 0, 1, 1},
    {&__pyx_n_s_not_invoked, __pyx_k_not_invoked, sizeof(__pyx_k_not_invoked), 0, 0, 1, 1},
    {&__pyx_n_s_not_on_client, __pyx_k_not_on_client, sizeof(__pyx_k_not_on_client), 0, 0, 1, 1},
    {&__pyx_n_s_not_on_server, __pyx_k_not_on_server, sizeof(__pyx_k_not_on_server), 0, 0, 1, 1},
    {&__pyx_n_s_notify_all, __pyx_k_notify_all, sizeof(__pyx_k_notify_all), 0, 0, 1, 1},
    {&__pyx_n_s_num_active_threads, __pyx_k_num_active_threads, sizeof(__pyx_k_num_active_threads), 0, 0, 1, 1},
    {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1},
    {&__pyx_kp_s_object_2, __pyx_k_object_2, sizeof(__pyx_k_object_2), 0, 0, 1, 0},
    {&__pyx_n_s_observability, __pyx_k_observability, sizeof(__pyx_k_observability), 0, 0, 1, 1},
    {&__pyx_n_s_observability_enabled, __pyx_k_observability_enabled, sizeof(__pyx_k_observability_enabled), 0, 0, 1, 1},
    {&__pyx_n_s_observability_plugin, __pyx_k_observability_plugin, sizeof(__pyx_k_observability_plugin), 0, 0, 1, 1},
    {&__pyx_kp_s_of_RPC_that_terminated_with_sta, __pyx_k_of_RPC_that_terminated_with_sta, sizeof(__pyx_k_of_RPC_that_terminated_with_sta), 0, 0, 1, 0},
    {&__pyx_kp_s_of_RPC_that_terminated_with_sta_2, __pyx_k_of_RPC_that_terminated_with_sta_2, sizeof(__pyx_k_of_RPC_that_terminated_with_sta_2), 0, 0, 1, 0},
    {&__pyx_n_s_ok, __pyx_k_ok, sizeof(__pyx_k_ok), 0, 0, 1, 1},
    {&__pyx_n_s_on_failure, __pyx_k_on_failure, sizeof(__pyx_k_on_failure), 0, 0, 1, 1},
    {&__pyx_n_s_on_success, __pyx_k_on_success, sizeof(__pyx_k_on_success), 0, 0, 1, 1},
    {&__pyx_n_s_op, __pyx_k_op, sizeof(__pyx_k_op), 0, 0, 1, 1},
    {&__pyx_n_s_operate, __pyx_k_operate, sizeof(__pyx_k_operate), 0, 0, 1, 1},
    {&__pyx_n_s_operation_complete, __pyx_k_operation_complete, sizeof(__pyx_k_operation_complete), 0, 0, 1, 1},
    {&__pyx_n_s_operations, __pyx_k_operations, sizeof(__pyx_k_operations), 0, 0, 1, 1},
    {&__pyx_n_s_operationses_and_tags, __pyx_k_operationses_and_tags, sizeof(__pyx_k_operationses_and_tags), 0, 0, 1, 1},
    {&__pyx_n_s_ops, __pyx_k_ops, sizeof(__pyx_k_ops), 0, 0, 1, 1},
    {&__pyx_n_s_options, __pyx_k_options, sizeof(__pyx_k_options), 0, 0, 1, 1},
    {&__pyx_n_s_os, __pyx_k_os, sizeof(__pyx_k_os), 0, 0, 1, 1},
    {&__pyx_n_s_out_of_range, __pyx_k_out_of_range, sizeof(__pyx_k_out_of_range), 0, 0, 1, 1},
    {&__pyx_n_s_outbound_initial_metadata, __pyx_k_outbound_initial_metadata, sizeof(__pyx_k_outbound_initial_metadata), 0, 0, 1, 1},
    {&__pyx_n_s_outbound_ops, __pyx_k_outbound_ops, sizeof(__pyx_k_outbound_ops), 0, 0, 1, 1},
    {&__pyx_n_s_partial, __pyx_k_partial, sizeof(__pyx_k_partial), 0, 0, 1, 1},
    {&__pyx_n_s_peer, __pyx_k_peer, sizeof(__pyx_k_peer), 0, 0, 1, 1},
    {&__pyx_n_s_peer_identities, __pyx_k_peer_identities, sizeof(__pyx_k_peer_identities), 0, 0, 1, 1},
    {&__pyx_n_s_peer_identity_key, __pyx_k_peer_identity_key, sizeof(__pyx_k_peer_identity_key), 0, 0, 1, 1},
    {&__pyx_n_s_pem_key_cert_pairs, __pyx_k_pem_key_cert_pairs, sizeof(__pyx_k_pem_key_cert_pairs), 0, 0, 1, 1},
    {&__pyx_n_s_pem_root_certificates, __pyx_k_pem_root_certificates, sizeof(__pyx_k_pem_root_certificates), 0, 0, 1, 1},
    {&__pyx_n_s_pem_root_certs, __pyx_k_pem_root_certs, sizeof(__pyx_k_pem_root_certs), 0, 0, 1, 1},
    {&__pyx_n_s_permission_denied, __pyx_k_permission_denied, sizeof(__pyx_k_permission_denied), 0, 0, 1, 1},
    {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1},
    {&__pyx_n_s_pkgutil, __pyx_k_pkgutil, sizeof(__pyx_k_pkgutil), 0, 0, 1, 1},
    {&__pyx_n_s_plugin, __pyx_k_plugin, sizeof(__pyx_k_plugin), 0, 0, 1, 1},
    {&__pyx_n_s_poll, __pyx_k_poll, sizeof(__pyx_k_poll), 0, 0, 1, 1},
    {&__pyx_n_s_poll_wrapper, __pyx_k_poll_wrapper, sizeof(__pyx_k_poll_wrapper), 0, 0, 1, 1},
    {&__pyx_n_s_poller, __pyx_k_poller, sizeof(__pyx_k_poller), 0, 0, 1, 1},
    {&__pyx_n_s_pool, __pyx_k_pool, sizeof(__pyx_k_pool), 0, 0, 1, 1},
    {&__pyx_n_s_pop, __pyx_k_pop, sizeof(__pyx_k_pop), 0, 0, 1, 1},
    {&__pyx_n_s_postfork_state_to_reset, __pyx_k_postfork_state_to_reset, sizeof(__pyx_k_postfork_state_to_reset), 0, 0, 1, 1},
    {&__pyx_n_s_postfork_states_to_reset, __pyx_k_postfork_states_to_reset, sizeof(__pyx_k_postfork_states_to_reset), 0, 0, 1, 1},
    {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1},
    {&__pyx_n_s_primary_user_agent_string, __pyx_k_primary_user_agent_string, sizeof(__pyx_k_primary_user_agent_string), 0, 0, 1, 1},
    {&__pyx_n_s_print_exc, __pyx_k_print_exc, sizeof(__pyx_k_print_exc), 0, 0, 1, 1},
    {&__pyx_n_s_private_key, __pyx_k_private_key, sizeof(__pyx_k_private_key), 0, 0, 1, 1},
    {&__pyx_n_s_properties, __pyx_k_properties, sizeof(__pyx_k_properties), 0, 0, 1, 1},
    {&__pyx_n_s_property, __pyx_k_property, sizeof(__pyx_k_property), 0, 0, 1, 1},
    {&__pyx_n_s_put, __pyx_k_put, sizeof(__pyx_k_put), 0, 0, 1, 1},
    {&__pyx_n_s_py_auth_context, __pyx_k_py_auth_context, sizeof(__pyx_k_py_auth_context), 0, 0, 1, 1},
    {&__pyx_n_s_python_call_credentials, __pyx_k_python_call_credentials, sizeof(__pyx_k_python_call_credentials), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_capi, __pyx_k_pyx_capi, sizeof(__pyx_k_pyx_capi), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_AioServer, __pyx_k_pyx_unpickle_AioServer, sizeof(__pyx_k_pyx_unpickle_AioServer), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_CensusContext, __pyx_k_pyx_unpickle_CensusContext, sizeof(__pyx_k_pyx_unpickle_CensusContext), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_ChannelCredential, __pyx_k_pyx_unpickle_ChannelCredential, sizeof(__pyx_k_pyx_unpickle_ChannelCredential), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_InsecureChannelCr, __pyx_k_pyx_unpickle_InsecureChannelCr, sizeof(__pyx_k_pyx_unpickle_InsecureChannelCr), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle__Tag, __pyx_k_pyx_unpickle__Tag, sizeof(__pyx_k_pyx_unpickle__Tag), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
    {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1},
    {&__pyx_n_s_query_call, __pyx_k_query_call, sizeof(__pyx_k_query_call), 0, 0, 1, 1},
    {&__pyx_n_s_query_handler, __pyx_k_query_handler, sizeof(__pyx_k_query_handler), 0, 0, 1, 1},
    {&__pyx_n_s_query_handlers, __pyx_k_query_handlers, sizeof(__pyx_k_query_handlers), 0, 0, 1, 1},
    {&__pyx_n_s_queue, __pyx_k_queue, sizeof(__pyx_k_queue), 0, 0, 1, 1},
    {&__pyx_n_s_queue_deadline, __pyx_k_queue_deadline, sizeof(__pyx_k_queue_deadline), 0, 0, 1, 1},
    {&__pyx_kp_s_queue_must_be_live, __pyx_k_queue_must_be_live, sizeof(__pyx_k_queue_must_be_live), 0, 0, 1, 0},
    {&__pyx_kp_s_queue_must_be_shutting_down_to_b, __pyx_k_queue_must_be_shutting_down_to_b, sizeof(__pyx_k_queue_must_be_shutting_down_to_b), 0, 0, 1, 0},
    {&__pyx_n_s_queue_shutdown, __pyx_k_queue_shutdown, sizeof(__pyx_k_queue_shutdown), 0, 0, 1, 1},
    {&__pyx_n_s_queue_timeout, __pyx_k_queue_timeout, sizeof(__pyx_k_queue_timeout), 0, 0, 1, 1},
    {&__pyx_n_s_raise_if_not_valid_trailing_meta, __pyx_k_raise_if_not_valid_trailing_meta, sizeof(__pyx_k_raise_if_not_valid_trailing_meta), 0, 0, 1, 1},
    {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
    {&__pyx_n_s_raw_message, __pyx_k_raw_message, sizeof(__pyx_k_raw_message), 0, 0, 1, 1},
    {&__pyx_n_s_read, __pyx_k_read, sizeof(__pyx_k_read), 0, 0, 1, 1},
    {&__pyx_n_s_read_socket, __pyx_k_read_socket, sizeof(__pyx_k_read_socket), 0, 0, 1, 1},
    {&__pyx_n_s_ready, __pyx_k_ready, sizeof(__pyx_k_ready), 0, 0, 1, 1},
    {&__pyx_n_s_receive_close_on_server, __pyx_k_receive_close_on_server, sizeof(__pyx_k_receive_close_on_server), 0, 0, 1, 1},
    {&__pyx_n_s_receive_initial_metadata, __pyx_k_receive_initial_metadata, sizeof(__pyx_k_receive_initial_metadata), 0, 0, 1, 1},
    {&__pyx_n_s_receive_initial_metadata_2, __pyx_k_receive_initial_metadata_2, sizeof(__pyx_k_receive_initial_metadata_2), 0, 0, 1, 1},
    {&__pyx_n_s_receive_initial_metadata_op, __pyx_k_receive_initial_metadata_op, sizeof(__pyx_k_receive_initial_metadata_op), 0, 0, 1, 1},
    {&__pyx_n_s_receive_message, __pyx_k_receive_message, sizeof(__pyx_k_receive_message), 0, 0, 1, 1},
    {&__pyx_n_s_receive_message_2, __pyx_k_receive_message_2, sizeof(__pyx_k_receive_message_2), 0, 0, 1, 1},
    {&__pyx_n_s_receive_message_op, __pyx_k_receive_message_op, sizeof(__pyx_k_receive_message_op), 0, 0, 1, 1},
    {&__pyx_n_s_receive_op, __pyx_k_receive_op, sizeof(__pyx_k_receive_op), 0, 0, 1, 1},
    {&__pyx_n_s_receive_serialized_message, __pyx_k_receive_serialized_message, sizeof(__pyx_k_receive_serialized_message), 0, 0, 1, 1},
    {&__pyx_n_s_receive_status_on_client, __pyx_k_receive_status_on_client, sizeof(__pyx_k_receive_status_on_client), 0, 0, 1, 1},
    {&__pyx_n_s_receive_status_on_client_op, __pyx_k_receive_status_on_client_op, sizeof(__pyx_k_receive_status_on_client_op), 0, 0, 1, 1},
    {&__pyx_n_s_received_message, __pyx_k_received_message, sizeof(__pyx_k_received_message), 0, 0, 1, 1},
    {&__pyx_n_s_recv, __pyx_k_recv, sizeof(__pyx_k_recv), 0, 0, 1, 1},
    {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1},
    {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1},
    {&__pyx_n_s_register, __pyx_k_register, sizeof(__pyx_k_register), 0, 0, 1, 1},
    {&__pyx_n_s_register_at_fork, __pyx_k_register_at_fork, sizeof(__pyx_k_register_at_fork), 0, 0, 1, 1},
    {&__pyx_n_s_register_completion_queue, __pyx_k_register_completion_queue, sizeof(__pyx_k_register_completion_queue), 0, 0, 1, 1},
    {&__pyx_n_s_register_method, __pyx_k_register_method, sizeof(__pyx_k_register_method), 0, 0, 1, 1},
    {&__pyx_n_s_registered_call_handle, __pyx_k_registered_call_handle, sizeof(__pyx_k_registered_call_handle), 0, 0, 1, 1},
    {&__pyx_n_s_registered_method, __pyx_k_registered_method, sizeof(__pyx_k_registered_method), 0, 0, 1, 1},
    {&__pyx_n_s_remove_reader, __pyx_k_remove_reader, sizeof(__pyx_k_remove_reader), 0, 0, 1, 1},
    {&__pyx_n_s_repr, __pyx_k_repr, sizeof(__pyx_k_repr), 0, 0, 1, 1},
    {&__pyx_n_s_repr_2, __pyx_k_repr_2, sizeof(__pyx_k_repr_2), 0, 0, 1, 1},
    {&__pyx_n_s_request, __pyx_k_request, sizeof(__pyx_k_request), 0, 0, 1, 1},
    {&__pyx_n_s_request_call, __pyx_k_request_call, sizeof(__pyx_k_request_call), 0, 0, 1, 1},
    {&__pyx_n_s_request_call_2, __pyx_k_request_call_2, sizeof(__pyx_k_request_call_2), 0, 0, 1, 1},
    {&__pyx_n_s_request_call_tag, __pyx_k_request_call_tag, sizeof(__pyx_k_request_call_tag), 0, 0, 1, 1},
    {&__pyx_n_s_request_deserializer, __pyx_k_request_deserializer, sizeof(__pyx_k_request_deserializer), 0, 0, 1, 1},
    {&__pyx_n_s_request_iterator, __pyx_k_request_iterator, sizeof(__pyx_k_request_iterator), 0, 0, 1, 1},
    {&__pyx_n_s_request_message, __pyx_k_request_message, sizeof(__pyx_k_request_message), 0, 0, 1, 1},
    {&__pyx_n_s_request_raw, __pyx_k_request_raw, sizeof(__pyx_k_request_raw), 0, 0, 1, 1},
    {&__pyx_n_s_request_registered_call, __pyx_k_request_registered_call, sizeof(__pyx_k_request_registered_call), 0, 0, 1, 1},
    {&__pyx_n_s_request_streaming, __pyx_k_request_streaming, sizeof(__pyx_k_request_streaming), 0, 0, 1, 1},
    {&__pyx_n_s_reset_grpc_config_vars, __pyx_k_reset_grpc_config_vars, sizeof(__pyx_k_reset_grpc_config_vars), 0, 0, 1, 1},
    {&__pyx_n_s_reset_postfork_child, __pyx_k_reset_postfork_child, sizeof(__pyx_k_reset_postfork_child), 0, 0, 1, 1},
    {&__pyx_n_s_resource_exhausted, __pyx_k_resource_exhausted, sizeof(__pyx_k_resource_exhausted), 0, 0, 1, 1},
    {&__pyx_n_s_response, __pyx_k_response, sizeof(__pyx_k_response), 0, 0, 1, 1},
    {&__pyx_n_s_response_message, __pyx_k_response_message, sizeof(__pyx_k_response_message), 0, 0, 1, 1},
    {&__pyx_n_s_response_raw, __pyx_k_response_raw, sizeof(__pyx_k_response_raw), 0, 0, 1, 1},
    {&__pyx_n_s_response_serializer, __pyx_k_response_serializer, sizeof(__pyx_k_response_serializer), 0, 0, 1, 1},
    {&__pyx_n_s_response_streaming, __pyx_k_response_streaming, sizeof(__pyx_k_response_streaming), 0, 0, 1, 1},
    {&__pyx_n_s_result, __pyx_k_result, sizeof(__pyx_k_result), 0, 0, 1, 1},
    {&__pyx_n_s_retain_self, __pyx_k_retain_self, sizeof(__pyx_k_retain_self), 0, 0, 1, 1},
    {&__pyx_n_s_return, __pyx_k_return, sizeof(__pyx_k_return), 0, 0, 1, 1},
    {&__pyx_n_s_return_from_user_request_generat, __pyx_k_return_from_user_request_generat, sizeof(__pyx_k_return_from_user_request_generat), 0, 0, 1, 1},
    {&__pyx_n_s_rpc_coro, __pyx_k_rpc_coro, sizeof(__pyx_k_rpc_coro), 0, 0, 1, 1},
    {&__pyx_n_s_rpc_state, __pyx_k_rpc_state, sizeof(__pyx_k_rpc_state), 0, 0, 1, 1},
    {&__pyx_n_s_rpc_task, __pyx_k_rpc_task, sizeof(__pyx_k_rpc_task), 0, 0, 1, 1},
    {&__pyx_n_s_rpc_tasks, __pyx_k_rpc_tasks, sizeof(__pyx_k_rpc_tasks), 0, 0, 1, 1},
    {&__pyx_n_s_run, __pyx_k_run, sizeof(__pyx_k_run), 0, 0, 1, 1},
    {&__pyx_n_s_run_2, __pyx_k_run_2, sizeof(__pyx_k_run_2), 0, 0, 1, 1},
    {&__pyx_n_s_run_coroutine_threadsafe, __pyx_k_run_coroutine_threadsafe, sizeof(__pyx_k_run_coroutine_threadsafe), 0, 0, 1, 1},
    {&__pyx_n_s_run_in_executor, __pyx_k_run_in_executor, sizeof(__pyx_k_run_in_executor), 0, 0, 1, 1},
    {&__pyx_n_s_run_interceptor, __pyx_k_run_interceptor, sizeof(__pyx_k_run_interceptor), 0, 0, 1, 1},
    {&__pyx_n_s_run_spawn_greenlets, __pyx_k_run_spawn_greenlets, sizeof(__pyx_k_run_spawn_greenlets), 0, 0, 1, 1},
    {&__pyx_n_s_run_with_context, __pyx_k_run_with_context, sizeof(__pyx_k_run_with_context), 0, 0, 1, 1},
    {&__pyx_n_s_run_with_context_locals__run, __pyx_k_run_with_context_locals__run, sizeof(__pyx_k_run_with_context_locals__run), 0, 0, 1, 1},
    {&__pyx_n_s_runtime_error, __pyx_k_runtime_error, sizeof(__pyx_k_runtime_error), 0, 0, 1, 1},
    {&__pyx_n_s_save_registered_method, __pyx_k_save_registered_method, sizeof(__pyx_k_save_registered_method), 0, 0, 1, 1},
    {&__pyx_n_s_save_trace_context, __pyx_k_save_trace_context, sizeof(__pyx_k_save_trace_context), 0, 0, 1, 1},
    {&__pyx_n_s_schedule_coro_threadsafe, __pyx_k_schedule_coro_threadsafe, sizeof(__pyx_k_schedule_coro_threadsafe), 0, 0, 1, 1},
    {&__pyx_n_s_schedule_rpc_coro, __pyx_k_schedule_rpc_coro, sizeof(__pyx_k_schedule_rpc_coro), 0, 0, 1, 1},
    {&__pyx_n_s_secondary_user_agent_string, __pyx_k_secondary_user_agent_string, sizeof(__pyx_k_secondary_user_agent_string), 0, 0, 1, 1},
    {&__pyx_n_s_segregated_call, __pyx_k_segregated_call, sizeof(__pyx_k_segregated_call), 0, 0, 1, 1},
    {&__pyx_n_s_segregated_call_locals_on_succe, __pyx_k_segregated_call_locals_on_succe, sizeof(__pyx_k_segregated_call_locals_on_succe), 0, 0, 1, 1},
    {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1},
    {&__pyx_kp_s_self__cq_cannot_be_converted_to, __pyx_k_self__cq_cannot_be_converted_to, sizeof(__pyx_k_self__cq_cannot_be_converted_to), 0, 0, 1, 0},
    {&__pyx_kp_s_self_arg_cannot_be_converted_to, __pyx_k_self_arg_cannot_be_converted_to, sizeof(__pyx_k_self_arg_cannot_be_converted_to), 0, 0, 1, 0},
    {&__pyx_kp_s_self_c_argument_cannot_be_conver, __pyx_k_self_c_argument_cannot_be_conver, sizeof(__pyx_k_self_c_argument_cannot_be_conver), 0, 0, 1, 0},
    {&__pyx_kp_s_self_c_credentials_cannot_be_con, __pyx_k_self_c_credentials_cannot_be_con, sizeof(__pyx_k_self_c_credentials_cannot_be_con), 0, 0, 1, 0},
    {&__pyx_kp_s_self_c_op_cannot_be_converted_to, __pyx_k_self_c_op_cannot_be_converted_to, sizeof(__pyx_k_self_c_op_cannot_be_converted_to), 0, 0, 1, 0},
    {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1},
    {&__pyx_n_s_send_close_from_client, __pyx_k_send_close_from_client, sizeof(__pyx_k_send_close_from_client), 0, 0, 1, 1},
    {&__pyx_n_s_send_close_op, __pyx_k_send_close_op, sizeof(__pyx_k_send_close_op), 0, 0, 1, 1},
    {&__pyx_n_s_send_error_status_from_server, __pyx_k_send_error_status_from_server, sizeof(__pyx_k_send_error_status_from_server), 0, 0, 1, 1},
    {&__pyx_n_s_send_initial_metadata, __pyx_k_send_initial_metadata, sizeof(__pyx_k_send_initial_metadata), 0, 0, 1, 1},
    {&__pyx_n_s_send_initial_metadata_2, __pyx_k_send_initial_metadata_2, sizeof(__pyx_k_send_initial_metadata_2), 0, 0, 1, 1},
    {&__pyx_n_s_send_initial_metadata_op, __pyx_k_send_initial_metadata_op, sizeof(__pyx_k_send_initial_metadata_op), 0, 0, 1, 1},
    {&__pyx_n_s_send_message, __pyx_k_send_message, sizeof(__pyx_k_send_message), 0, 0, 1, 1},
    {&__pyx_n_s_send_message_2, __pyx_k_send_message_2, sizeof(__pyx_k_send_message_2), 0, 0, 1, 1},
    {&__pyx_n_s_send_message_op, __pyx_k_send_message_op, sizeof(__pyx_k_send_message_op), 0, 0, 1, 1},
    {&__pyx_n_s_send_receive_close, __pyx_k_send_receive_close, sizeof(__pyx_k_send_receive_close), 0, 0, 1, 1},
    {&__pyx_n_s_send_serialized_message, __pyx_k_send_serialized_message, sizeof(__pyx_k_send_serialized_message), 0, 0, 1, 1},
    {&__pyx_n_s_send_status_from_server, __pyx_k_send_status_from_server, sizeof(__pyx_k_send_status_from_server), 0, 0, 1, 1},
    {&__pyx_n_s_server, __pyx_k_server, sizeof(__pyx_k_server), 0, 0, 1, 1},
    {&__pyx_n_s_server_call_tracer, __pyx_k_server_call_tracer, sizeof(__pyx_k_server_call_tracer), 0, 0, 1, 1},
    {&__pyx_n_s_server_certificate_config_ssl, __pyx_k_server_certificate_config_ssl, sizeof(__pyx_k_server_certificate_config_ssl), 0, 0, 1, 1},
    {&__pyx_n_s_server_credentials, __pyx_k_server_credentials, sizeof(__pyx_k_server_credentials), 0, 0, 1, 1},
    {&__pyx_n_s_server_credentials_alts, __pyx_k_server_credentials_alts, sizeof(__pyx_k_server_credentials_alts), 0, 0, 1, 1},
    {&__pyx_n_s_server_credentials_local, __pyx_k_server_credentials_local, sizeof(__pyx_k_server_credentials_local), 0, 0, 1, 1},
    {&__pyx_n_s_server_credentials_ssl, __pyx_k_server_credentials_ssl, sizeof(__pyx_k_server_credentials_ssl), 0, 0, 1, 1},
    {&__pyx_n_s_server_credentials_ssl_dynamic_c, __pyx_k_server_credentials_ssl_dynamic_c, sizeof(__pyx_k_server_credentials_ssl_dynamic_c), 0, 0, 1, 1},
    {&__pyx_n_s_server_id, __pyx_k_server_id, sizeof(__pyx_k_server_id), 0, 0, 1, 1},
    {&__pyx_n_s_server_main_loop, __pyx_k_server_main_loop, sizeof(__pyx_k_server_main_loop), 0, 0, 1, 1},
    {&__pyx_kp_s_server_must_be_started_and_not_s, __pyx_k_server_must_be_started_and_not_s, sizeof(__pyx_k_server_must_be_started_and_not_s), 0, 0, 1, 0},
    {&__pyx_n_s_server_queue, __pyx_k_server_queue, sizeof(__pyx_k_server_queue), 0, 0, 1, 1},
    {&__pyx_kp_s_server_queue_must_be_a_registere, __pyx_k_server_queue_must_be_a_registere, sizeof(__pyx_k_server_queue_must_be_a_registere), 0, 0, 1, 0},
    {&__pyx_n_s_server_started, __pyx_k_server_started, sizeof(__pyx_k_server_started), 0, 0, 1, 1},
    {&__pyx_n_s_service, __pyx_k_service, sizeof(__pyx_k_service), 0, 0, 1, 1},
    {&__pyx_n_s_service_accounts, __pyx_k_service_accounts, sizeof(__pyx_k_service_accounts), 0, 0, 1, 1},
    {&__pyx_n_s_servicer_context, __pyx_k_servicer_context, sizeof(__pyx_k_servicer_context), 0, 0, 1, 1},
    {&__pyx_n_s_serving_task_crash_handler, __pyx_k_serving_task_crash_handler, sizeof(__pyx_k_serving_task_crash_handler), 0, 0, 1, 1},
    {&__pyx_n_s_setDaemon, __pyx_k_setDaemon, sizeof(__pyx_k_setDaemon), 0, 0, 1, 1},
    {&__pyx_n_s_set_async_callback_func, __pyx_k_set_async_callback_func, sizeof(__pyx_k_set_async_callback_func), 0, 0, 1, 1},
    {&__pyx_n_s_set_census_context_on_call, __pyx_k_set_census_context_on_call, sizeof(__pyx_k_set_census_context_on_call), 0, 0, 1, 1},
    {&__pyx_n_s_set_code, __pyx_k_set_code, sizeof(__pyx_k_set_code), 0, 0, 1, 1},
    {&__pyx_n_s_set_compression, __pyx_k_set_compression, sizeof(__pyx_k_set_compression), 0, 0, 1, 1},
    {&__pyx_n_s_set_credentials, __pyx_k_set_credentials, sizeof(__pyx_k_set_credentials), 0, 0, 1, 1},
    {&__pyx_n_s_set_details, __pyx_k_set_details, sizeof(__pyx_k_set_details), 0, 0, 1, 1},
    {&__pyx_n_s_set_exception, __pyx_k_set_exception, sizeof(__pyx_k_set_exception), 0, 0, 1, 1},
    {&__pyx_n_s_set_instrumentation_context_on_c, __pyx_k_set_instrumentation_context_on_c, sizeof(__pyx_k_set_instrumentation_context_on_c), 0, 0, 1, 1},
    {&__pyx_n_s_set_internal_error, __pyx_k_set_internal_error, sizeof(__pyx_k_set_internal_error), 0, 0, 1, 1},
    {&__pyx_n_s_set_name, __pyx_k_set_name, sizeof(__pyx_k_set_name), 0, 0, 1, 1},
    {&__pyx_n_s_set_result, __pyx_k_set_result, sizeof(__pyx_k_set_result), 0, 0, 1, 1},
    {&__pyx_n_s_set_trailing_metadata, __pyx_k_set_trailing_metadata, sizeof(__pyx_k_set_trailing_metadata), 0, 0, 1, 1},
    {&__pyx_n_s_setblocking, __pyx_k_setblocking, sizeof(__pyx_k_setblocking), 0, 0, 1, 1},
    {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1},
    {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_shield, __pyx_k_shield, sizeof(__pyx_k_shield), 0, 0, 1, 1},
    {&__pyx_n_s_shutdown, __pyx_k_shutdown, sizeof(__pyx_k_shutdown), 0, 0, 1, 1},
    {&__pyx_n_s_shutdown_await_next_greenlet, __pyx_k_shutdown_await_next_greenlet, sizeof(__pyx_k_shutdown_await_next_greenlet), 0, 0, 1, 1},
    {&__pyx_n_s_shutdown_cq, __pyx_k_shutdown_cq, sizeof(__pyx_k_shutdown_cq), 0, 0, 1, 1},
    {&__pyx_n_s_shutdown_grpc_aio, __pyx_k_shutdown_grpc_aio, sizeof(__pyx_k_shutdown_grpc_aio), 0, 0, 1, 1},
    {&__pyx_n_s_shutting_down_server, __pyx_k_shutting_down_server, sizeof(__pyx_k_shutting_down_server), 0, 0, 1, 1},
    {&__pyx_n_s_simplefilter, __pyx_k_simplefilter, sizeof(__pyx_k_simplefilter), 0, 0, 1, 1},
    {&__pyx_n_s_sleep, __pyx_k_sleep, sizeof(__pyx_k_sleep), 0, 0, 1, 1},
    {&__pyx_n_s_socket, __pyx_k_socket, sizeof(__pyx_k_socket), 0, 0, 1, 1},
    {&__pyx_n_s_socket_id, __pyx_k_socket_id, sizeof(__pyx_k_socket_id), 0, 0, 1, 1},
    {&__pyx_n_s_socketpair, __pyx_k_socketpair, sizeof(__pyx_k_socketpair), 0, 0, 1, 1},
    {&__pyx_n_s_span_id, __pyx_k_span_id, sizeof(__pyx_k_span_id), 0, 0, 1, 1},
    {&__pyx_n_s_spawn, __pyx_k_spawn, sizeof(__pyx_k_spawn), 0, 0, 1, 1},
    {&__pyx_n_s_spawn_callback_async, __pyx_k_spawn_callback_async, sizeof(__pyx_k_spawn_callback_async), 0, 0, 1, 1},
    {&__pyx_n_s_spawn_callback_in_thread, __pyx_k_spawn_callback_in_thread, sizeof(__pyx_k_spawn_callback_in_thread), 0, 0, 1, 1},
    {&__pyx_n_s_spawn_greenlets, __pyx_k_spawn_greenlets, sizeof(__pyx_k_spawn_greenlets), 0, 0, 1, 1},
    {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_k_src_python_grpcio_grpc__cython, sizeof(__pyx_k_src_python_grpcio_grpc__cython), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_10, __pyx_k_src_python_grpcio_grpc__cython_10, sizeof(__pyx_k_src_python_grpcio_grpc__cython_10), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_k_src_python_grpcio_grpc__cython_11, sizeof(__pyx_k_src_python_grpcio_grpc__cython_11), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_12, __pyx_k_src_python_grpcio_grpc__cython_12, sizeof(__pyx_k_src_python_grpcio_grpc__cython_12), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_13, __pyx_k_src_python_grpcio_grpc__cython_13, sizeof(__pyx_k_src_python_grpcio_grpc__cython_13), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_14, __pyx_k_src_python_grpcio_grpc__cython_14, sizeof(__pyx_k_src_python_grpcio_grpc__cython_14), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_15, __pyx_k_src_python_grpcio_grpc__cython_15, sizeof(__pyx_k_src_python_grpcio_grpc__cython_15), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_16, __pyx_k_src_python_grpcio_grpc__cython_16, sizeof(__pyx_k_src_python_grpcio_grpc__cython_16), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_17, __pyx_k_src_python_grpcio_grpc__cython_17, sizeof(__pyx_k_src_python_grpcio_grpc__cython_17), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_18, __pyx_k_src_python_grpcio_grpc__cython_18, sizeof(__pyx_k_src_python_grpcio_grpc__cython_18), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_19, __pyx_k_src_python_grpcio_grpc__cython_19, sizeof(__pyx_k_src_python_grpcio_grpc__cython_19), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_k_src_python_grpcio_grpc__cython_2, sizeof(__pyx_k_src_python_grpcio_grpc__cython_2), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_20, __pyx_k_src_python_grpcio_grpc__cython_20, sizeof(__pyx_k_src_python_grpcio_grpc__cython_20), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_21, __pyx_k_src_python_grpcio_grpc__cython_21, sizeof(__pyx_k_src_python_grpcio_grpc__cython_21), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_k_src_python_grpcio_grpc__cython_22, sizeof(__pyx_k_src_python_grpcio_grpc__cython_22), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_23, __pyx_k_src_python_grpcio_grpc__cython_23, sizeof(__pyx_k_src_python_grpcio_grpc__cython_23), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_3, __pyx_k_src_python_grpcio_grpc__cython_3, sizeof(__pyx_k_src_python_grpcio_grpc__cython_3), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_k_src_python_grpcio_grpc__cython_4, sizeof(__pyx_k_src_python_grpcio_grpc__cython_4), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_5, __pyx_k_src_python_grpcio_grpc__cython_5, sizeof(__pyx_k_src_python_grpcio_grpc__cython_5), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_k_src_python_grpcio_grpc__cython_6, sizeof(__pyx_k_src_python_grpcio_grpc__cython_6), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_7, __pyx_k_src_python_grpcio_grpc__cython_7, sizeof(__pyx_k_src_python_grpcio_grpc__cython_7), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_8, __pyx_k_src_python_grpcio_grpc__cython_8, sizeof(__pyx_k_src_python_grpcio_grpc__cython_8), 0, 0, 1, 0},
    {&__pyx_kp_s_src_python_grpcio_grpc__cython_9, __pyx_k_src_python_grpcio_grpc__cython_9, sizeof(__pyx_k_src_python_grpcio_grpc__cython_9), 0, 0, 1, 0},
    {&__pyx_n_s_ssl_session_cache, __pyx_k_ssl_session_cache, sizeof(__pyx_k_ssl_session_cache), 0, 0, 1, 1},
    {&__pyx_n_s_ssl_target_name_override, __pyx_k_ssl_target_name_override, sizeof(__pyx_k_ssl_target_name_override), 0, 0, 1, 1},
    {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1},
    {&__pyx_n_s_start_batch, __pyx_k_start_batch, sizeof(__pyx_k_start_batch), 0, 0, 1, 1},
    {&__pyx_n_s_start_channel_id, __pyx_k_start_channel_id, sizeof(__pyx_k_start_channel_id), 0, 0, 1, 1},
    {&__pyx_n_s_start_client_batch, __pyx_k_start_client_batch, sizeof(__pyx_k_start_client_batch), 0, 0, 1, 1},
    {&__pyx_n_s_start_server_batch, __pyx_k_start_server_batch, sizeof(__pyx_k_start_server_batch), 0, 0, 1, 1},
    {&__pyx_n_s_start_server_id, __pyx_k_start_server_id, sizeof(__pyx_k_start_server_id), 0, 0, 1, 1},
    {&__pyx_n_s_start_shutting_down, __pyx_k_start_shutting_down, sizeof(__pyx_k_start_shutting_down), 0, 0, 1, 1},
    {&__pyx_n_s_start_socket_id, __pyx_k_start_socket_id, sizeof(__pyx_k_start_socket_id), 0, 0, 1, 1},
    {&__pyx_n_s_started_tag, __pyx_k_started_tag, sizeof(__pyx_k_started_tag), 0, 0, 1, 1},
    {&__pyx_n_s_started_tags, __pyx_k_started_tags, sizeof(__pyx_k_started_tags), 0, 0, 1, 1},
    {&__pyx_n_s_state, __pyx_k_state, sizeof(__pyx_k_state), 0, 0, 1, 1},
    {&__pyx_n_s_status, __pyx_k_status, sizeof(__pyx_k_status), 0, 0, 1, 1},
    {&__pyx_n_s_status_code, __pyx_k_status_code, sizeof(__pyx_k_status_code), 0, 0, 1, 1},
    {&__pyx_n_s_status_task, __pyx_k_status_task, sizeof(__pyx_k_status_task), 0, 0, 1, 1},
    {&__pyx_n_s_stored_ctx, __pyx_k_stored_ctx, sizeof(__pyx_k_stored_ctx), 0, 0, 1, 1},
    {&__pyx_n_s_str, __pyx_k_str, sizeof(__pyx_k_str), 0, 0, 1, 1},
    {&__pyx_n_s_str_2, __pyx_k_str_2, sizeof(__pyx_k_str_2), 0, 0, 1, 1},
    {&__pyx_n_s_stream_handler, __pyx_k_stream_handler, sizeof(__pyx_k_stream_handler), 0, 0, 1, 1},
    {&__pyx_n_s_stream_stream, __pyx_k_stream_stream, sizeof(__pyx_k_stream_stream), 0, 0, 1, 1},
    {&__pyx_n_s_stream_unary, __pyx_k_stream_unary, sizeof(__pyx_k_stream_unary), 0, 0, 1, 1},
    {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0},
    {&__pyx_n_s_subchannel_id, __pyx_k_subchannel_id, sizeof(__pyx_k_subchannel_id), 0, 0, 1, 1},
    {&__pyx_n_s_success, __pyx_k_success, sizeof(__pyx_k_success), 0, 0, 1, 1},
    {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1},
    {&__pyx_n_s_sync_servicer_context, __pyx_k_sync_servicer_context, sizeof(__pyx_k_sync_servicer_context), 0, 0, 1, 1},
    {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1},
    {&__pyx_n_s_t, __pyx_k_t, sizeof(__pyx_k_t), 0, 0, 1, 1},
    {&__pyx_n_s_tag, __pyx_k_tag, sizeof(__pyx_k_tag), 0, 0, 1, 1},
    {&__pyx_n_s_target, __pyx_k_target, sizeof(__pyx_k_target), 0, 0, 1, 1},
    {&__pyx_n_s_task, __pyx_k_task, sizeof(__pyx_k_task), 0, 0, 1, 1},
    {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
    {&__pyx_kp_s_the_server_has_already_started, __pyx_k_the_server_has_already_started, sizeof(__pyx_k_the_server_has_already_started), 0, 0, 1, 0},
    {&__pyx_kp_s_the_server_hasn_t_started_yet, __pyx_k_the_server_hasn_t_started_yet, sizeof(__pyx_k_the_server_hasn_t_started_yet), 0, 0, 1, 0},
    {&__pyx_kp_s_the_server_must_be_shutting_down, __pyx_k_the_server_must_be_shutting_down, sizeof(__pyx_k_the_server_must_be_shutting_down), 0, 0, 1, 0},
    {&__pyx_n_s_thread, __pyx_k_thread, sizeof(__pyx_k_thread), 0, 0, 1, 1},
    {&__pyx_n_s_thread_pool, __pyx_k_thread_pool, sizeof(__pyx_k_thread_pool), 0, 0, 1, 1},
    {&__pyx_n_s_threading, __pyx_k_threading, sizeof(__pyx_k_threading), 0, 0, 1, 1},
    {&__pyx_n_s_threadpool, __pyx_k_threadpool, sizeof(__pyx_k_threadpool), 0, 0, 1, 1},
    {&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1},
    {&__pyx_n_s_time, __pyx_k_time, sizeof(__pyx_k_time), 0, 0, 1, 1},
    {&__pyx_n_s_time_remaining, __pyx_k_time_remaining, sizeof(__pyx_k_time_remaining), 0, 0, 1, 1},
    {&__pyx_n_s_timeout, __pyx_k_timeout, sizeof(__pyx_k_timeout), 0, 0, 1, 1},
    {&__pyx_n_s_timeout_secs, __pyx_k_timeout_secs, sizeof(__pyx_k_timeout_secs), 0, 0, 1, 1},
    {&__pyx_n_s_to_call, __pyx_k_to_call, sizeof(__pyx_k_to_call), 0, 0, 1, 1},
    {&__pyx_n_s_to_channel_arg, __pyx_k_to_channel_arg, sizeof(__pyx_k_to_channel_arg), 0, 0, 1, 1},
    {&__pyx_n_s_too_many_operations, __pyx_k_too_many_operations, sizeof(__pyx_k_too_many_operations), 0, 0, 1, 1},
    {&__pyx_n_s_trace_id, __pyx_k_trace_id, sizeof(__pyx_k_trace_id), 0, 0, 1, 1},
    {&__pyx_n_s_traceback, __pyx_k_traceback, sizeof(__pyx_k_traceback), 0, 0, 1, 1},
    {&__pyx_n_s_tracing_enabled, __pyx_k_tracing_enabled, sizeof(__pyx_k_tracing_enabled), 0, 0, 1, 1},
    {&__pyx_n_s_trailing_metadata, __pyx_k_trailing_metadata, sizeof(__pyx_k_trailing_metadata), 0, 0, 1, 1},
    {&__pyx_n_s_transient_failure, __pyx_k_transient_failure, sizeof(__pyx_k_transient_failure), 0, 0, 1, 1},
    {&__pyx_n_s_true, __pyx_k_true, sizeof(__pyx_k_true), 0, 0, 1, 1},
    {&__pyx_n_s_try_to_connect, __pyx_k_try_to_connect, sizeof(__pyx_k_try_to_connect), 0, 0, 1, 1},
    {&__pyx_n_s_type, __pyx_k_type, sizeof(__pyx_k_type), 0, 0, 1, 1},
    {&__pyx_n_s_typing, __pyx_k_typing, sizeof(__pyx_k_typing), 0, 0, 1, 1},
    {&__pyx_n_s_uds, __pyx_k_uds, sizeof(__pyx_k_uds), 0, 0, 1, 1},
    {&__pyx_n_s_unary_handler, __pyx_k_unary_handler, sizeof(__pyx_k_unary_handler), 0, 0, 1, 1},
    {&__pyx_n_s_unary_stream, __pyx_k_unary_stream, sizeof(__pyx_k_unary_stream), 0, 0, 1, 1},
    {&__pyx_n_s_unary_unary, __pyx_k_unary_unary, sizeof(__pyx_k_unary_unary), 0, 0, 1, 1},
    {&__pyx_n_s_unauthenticated, __pyx_k_unauthenticated, sizeof(__pyx_k_unauthenticated), 0, 0, 1, 1},
    {&__pyx_n_s_unavailable, __pyx_k_unavailable, sizeof(__pyx_k_unavailable), 0, 0, 1, 1},
    {&__pyx_n_s_unimplemented, __pyx_k_unimplemented, sizeof(__pyx_k_unimplemented), 0, 0, 1, 1},
    {&__pyx_n_s_uninstall_context, __pyx_k_uninstall_context, sizeof(__pyx_k_uninstall_context), 0, 0, 1, 1},
    {&__pyx_n_s_unknown, __pyx_k_unknown, sizeof(__pyx_k_unknown), 0, 0, 1, 1},
    {&__pyx_n_s_unused_future, __pyx_k_unused_future, sizeof(__pyx_k_unused_future), 0, 0, 1, 1},
    {&__pyx_n_s_unused_task, __pyx_k_unused_task, sizeof(__pyx_k_unused_task), 0, 0, 1, 1},
    {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
    {&__pyx_n_s_upper, __pyx_k_upper, sizeof(__pyx_k_upper), 0, 0, 1, 1},
    {&__pyx_n_s_use_setstate, __pyx_k_use_setstate, sizeof(__pyx_k_use_setstate), 0, 0, 1, 1},
    {&__pyx_n_s_used_mask, __pyx_k_used_mask, sizeof(__pyx_k_used_mask), 0, 0, 1, 1},
    {&__pyx_n_s_user_tag, __pyx_k_user_tag, sizeof(__pyx_k_user_tag), 0, 0, 1, 1},
    {&__pyx_n_s_utf8, __pyx_k_utf8, sizeof(__pyx_k_utf8), 0, 0, 1, 1},
    {&__pyx_kp_s_utf_8, __pyx_k_utf_8, sizeof(__pyx_k_utf_8), 0, 0, 1, 0},
    {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},
    {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1},
    {&__pyx_n_s_wait, __pyx_k_wait, sizeof(__pyx_k_wait), 0, 0, 1, 1},
    {&__pyx_n_s_wait_for, __pyx_k_wait_for, sizeof(__pyx_k_wait_for), 0, 0, 1, 1},
    {&__pyx_n_s_wait_for_ready, __pyx_k_wait_for_ready, sizeof(__pyx_k_wait_for_ready), 0, 0, 1, 1},
    {&__pyx_n_s_wait_for_ready_explicitly_set, __pyx_k_wait_for_ready_explicitly_set, sizeof(__pyx_k_wait_for_ready_explicitly_set), 0, 0, 1, 1},
    {&__pyx_n_s_wait_for_termination, __pyx_k_wait_for_termination, sizeof(__pyx_k_wait_for_termination), 0, 0, 1, 1},
    {&__pyx_n_s_wait_time, __pyx_k_wait_time, sizeof(__pyx_k_wait_time), 0, 0, 1, 1},
    {&__pyx_n_s_warning, __pyx_k_warning, sizeof(__pyx_k_warning), 0, 0, 1, 1},
    {&__pyx_n_s_warnings, __pyx_k_warnings, sizeof(__pyx_k_warnings), 0, 0, 1, 1},
    {&__pyx_n_s_watch_connectivity_state, __pyx_k_watch_connectivity_state, sizeof(__pyx_k_watch_connectivity_state), 0, 0, 1, 1},
    {&__pyx_n_s_wrap, __pyx_k_wrap, sizeof(__pyx_k_wrap), 0, 0, 1, 1},
    {&__pyx_n_s_wrapper, __pyx_k_wrapper, sizeof(__pyx_k_wrapper), 0, 0, 1, 1},
    {&__pyx_n_s_write, __pyx_k_write, sizeof(__pyx_k_write), 0, 0, 1, 1},
    {&__pyx_n_s_write_flag, __pyx_k_write_flag, sizeof(__pyx_k_write_flag), 0, 0, 1, 1},
    {&__pyx_n_s_xds, __pyx_k_xds, sizeof(__pyx_k_xds), 0, 0, 1, 1},
    {&__pyx_n_s_xds_server_credentials, __pyx_k_xds_server_credentials, sizeof(__pyx_k_xds_server_credentials), 0, 0, 1, 1},
    {&__pyx_n_s_yes, __pyx_k_yes, sizeof(__pyx_k_yes), 0, 0, 1, 1},
    {&__pyx_n_s_yield_to_queue, __pyx_k_yield_to_queue, sizeof(__pyx_k_yield_to_queue), 0, 0, 1, 1},
    {0, 0, 0, 0, 0, 0, 0}
  };
  return __Pyx_InitStrings(__pyx_string_tab);
}
/* #### Code section: cached_builtins ### */
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
  __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(0, 28, __pyx_L1_error)
  __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(1, 106, __pyx_L1_error)
  __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(2, 24, __pyx_L1_error)
  __pyx_builtin_UnicodeDecodeError = __Pyx_GetBuiltinName(__pyx_n_s_UnicodeDecodeError); if (!__pyx_builtin_UnicodeDecodeError) __PYX_ERR(2, 49, __pyx_L1_error)
  __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(3, 74, __pyx_L1_error)
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(4, 26, __pyx_L1_error)
  __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s_NotImplementedError); if (!__pyx_builtin_NotImplementedError) __PYX_ERR(5, 34, __pyx_L1_error)
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(5, 252, __pyx_L1_error)
  __pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_n_s_KeyError); if (!__pyx_builtin_KeyError) __PYX_ERR(6, 31, __pyx_L1_error)
  __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(6, 31, __pyx_L1_error)
  __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(6, 113, __pyx_L1_error)
  __pyx_builtin_DeprecationWarning = __Pyx_GetBuiltinName(__pyx_n_s_DeprecationWarning); if (!__pyx_builtin_DeprecationWarning) __PYX_ERR(6, 188, __pyx_L1_error)
  __pyx_builtin_AssertionError = __Pyx_GetBuiltinName(__pyx_n_s_AssertionError); if (!__pyx_builtin_AssertionError) __PYX_ERR(7, 108, __pyx_L1_error)
  __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(8, 58, __pyx_L1_error)
  __pyx_builtin_KeyboardInterrupt = __Pyx_GetBuiltinName(__pyx_n_s_KeyboardInterrupt); if (!__pyx_builtin_KeyboardInterrupt) __PYX_ERR(9, 701, __pyx_L1_error)
  __pyx_builtin_SystemExit = __Pyx_GetBuiltinName(__pyx_n_s_SystemExit); if (!__pyx_builtin_SystemExit) __PYX_ERR(9, 701, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: cached_constants ### */

static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(object (*f)(_LatentEventArg) ):
 *     def wrap(_LatentEventArg latent_event_arg):             # <<<<<<<<<<<<<<
 *         """wrap(latent_event_arg: '_LatentEventArg')"""
 *         return f(latent_event_arg)
 */
  __pyx_tuple_ = PyTuple_Pack(1, __pyx_n_s_latent_event_arg); if (unlikely(!__pyx_tuple_)) __PYX_ERR(10, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple_);
  __Pyx_GIVEREF(__pyx_tuple_);
  __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple_, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_wrap, 67, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(10, 67, __pyx_L1_error)
  __pyx_codeobj__3 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_wrap, 67, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__3)) __PYX_ERR(10, 67, __pyx_L1_error)
  __pyx_tuple__4 = PyTuple_Pack(2, __pyx_n_s_cb, __pyx_n_s_args); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(10, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__4);
  __Pyx_GIVEREF(__pyx_tuple__4);
  __pyx_codeobj__5 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__4, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_wrap, 67, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__5)) __PYX_ERR(10, 67, __pyx_L1_error)
  __pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_wrap, 67, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__6)) __PYX_ERR(10, 67, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":26
 *   def _start_batch(self, operations, tag, retain_self):
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")             # <<<<<<<<<<<<<<
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(
 *         tag, operations, self if retain_self else None)
 */
  __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_invalid_call_object_cannot_be_us); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(4, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__8);
  __Pyx_GIVEREF(__pyx_tuple__8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":53
 *       raise ValueError("invalid call object cannot be used from Python")
 *     if (details is None) != (error_code == GRPC_STATUS__DO_NOT_USE):
 *       raise ValueError("if error_code is specified, so must details "             # <<<<<<<<<<<<<<
 *                        "(and vice-versa)")
 *     cdef grpc_call_error result
 */
  __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_if_error_code_is_specified_so_mu); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(4, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__10);
  __Pyx_GIVEREF(__pyx_tuple__10);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":81
 * 
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:
 *     with _observability.get_plugin() as plugin:             # <<<<<<<<<<<<<<
 *       if plugin and plugin.observability_enabled:
 *         plugin.save_registered_method(method_name)
 */
  __pyx_tuple__11 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(12, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__11);
  __Pyx_GIVEREF(__pyx_tuple__11);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":340
 *   call_state = _CallState()
 * 
 *   def on_success(started_tags):             # <<<<<<<<<<<<<<
 *     for started_tag in started_tags:
 *       state.integrated_call_states[started_tag] = call_state
 */
  __pyx_tuple__12 = PyTuple_Pack(2, __pyx_n_s_started_tags, __pyx_n_s_started_tag); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(12, 340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__12);
  __Pyx_GIVEREF(__pyx_tuple__12);
  __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__12, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_on_success, 340, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(12, 340, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":380
 * 
 *   def next_event(self):
 *     def on_success(tag):             # <<<<<<<<<<<<<<
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 */
  __pyx_tuple__14 = PyTuple_Pack(1, __pyx_n_s_tag); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(12, 380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__14);
  __Pyx_GIVEREF(__pyx_tuple__14);
  __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__14, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_on_success, 380, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(12, 380, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":383
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 *     def on_failure():             # <<<<<<<<<<<<<<
 *       self._call_state.due.clear()
 *       self._call_state.delete_call()
 */
  __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_on_failure, 383, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(12, 383, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":400
 *   cdef grpc_completion_queue *c_completion_queue
 * 
 *   def on_success(started_tags):             # <<<<<<<<<<<<<<
 *     state.segregated_call_states.add(call_state)
 * 
 */
  __pyx_tuple__17 = PyTuple_Pack(1, __pyx_n_s_started_tags); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(12, 400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__17);
  __Pyx_GIVEREF(__pyx_tuple__17);
  __pyx_codeobj__18 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_on_success, 400, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__18)) __PYX_ERR(12, 400, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":407
 *       c_completion_queue = (grpc_completion_queue_create_for_next(NULL))
 *     else:
 *       raise ValueError('Cannot invoke RPC on closed channel!')             # <<<<<<<<<<<<<<
 * 
 *   try:
 */
  __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_Cannot_invoke_RPC_on_closed_chan); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(12, 407, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__19);
  __Pyx_GIVEREF(__pyx_tuple__19);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":530
 * 
 *   def next_call_event(self):
 *     def on_success(tag):             # <<<<<<<<<<<<<<
 *       if tag is not None:
 *         _process_integrated_call_tag(self._state, tag)
 */
  __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__14, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_on_success, 530, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(12, 530, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":47
 *   cdef size_t metadata_count
 *   cdef grpc_metadata *c_metadata
 *   def callback(metadata, grpc_status_code status, bytes error_details):             # <<<<<<<<<<<<<<
 *     cdef char* c_error_details = NULL
 *     if error_details is not None:
 */
  __pyx_tuple__21 = PyTuple_Pack(4, __pyx_n_s_metadata, __pyx_n_s_status, __pyx_n_s_error_details, __pyx_n_s_c_error_details); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(5, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__21);
  __Pyx_GIVEREF(__pyx_tuple__21);
  __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_callback, 47, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(5, 47, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":244
 *   for pair in pem_key_cert_pairs:
 *     if not isinstance(pair, SslPemKeyCertPair):
 *       raise TypeError("expected pem_key_cert_pairs to be sequence of "             # <<<<<<<<<<<<<<
 *                       "SslPemKeyCertPair")
 *   cdef size_t c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 */
  __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_expected_pem_key_cert_pairs_to_b); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(5, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__23);
  __Pyx_GIVEREF(__pyx_tuple__23);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":300
 *                                                bint force_client_auth):
 *   if not isinstance(initial_cert_config, grpc.ServerCertificateConfiguration):
 *     raise TypeError(             # <<<<<<<<<<<<<<
 *         'initial_cert_config must be a grpc.ServerCertificateConfiguration')
 *   if not callable(cert_config_fetcher):
 */
  __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_initial_cert_config_must_be_a_gr); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(5, 300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__24);
  __Pyx_GIVEREF(__pyx_tuple__24);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":303
 *         'initial_cert_config must be a grpc.ServerCertificateConfiguration')
 *   if not callable(cert_config_fetcher):
 *     raise TypeError('cert_config_fetcher must be callable')             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.initial_cert_config = initial_cert_config
 */
  __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_s_cert_config_fetcher_must_be_call); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(5, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__25);
  __Pyx_GIVEREF(__pyx_tuple__25);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":323
 *   cdef ServerCertificateConfig cert_config = None
 *   if not user_data:
 *     raise ValueError('internal error: user_data must be specified')             # <<<<<<<<<<<<<<
 *   credentials = <ServerCredentials>user_data
 *   if not credentials.initial_cert_config_fetched:
 */
  __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_internal_error_user_data_must_be); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(5, 323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__26);
  __Pyx_GIVEREF(__pyx_tuple__26);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":437
 *     self._call_creds = call_creds.c()
 *     if self._call_creds == NULL:
 *       raise ValueError("Call credentials may not be NULL.")             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 */
  __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_s_Call_credentials_may_not_be_NULL); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(5, 437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__27);
  __Pyx_GIVEREF(__pyx_tuple__27);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":122
 *   def clear(self):
 *     if not self.is_shutting_down:
 *       raise ValueError('queue must be shutting down to be cleared')             # <<<<<<<<<<<<<<
 *     while self.poll().type != GRPC_QUEUE_SHUTDOWN:
 *       pass
 */
  __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_s_queue_must_be_shutting_down_to_b); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(15, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__28);
  __Pyx_GIVEREF(__pyx_tuple__28);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":63
 *       CompletionQueue server_queue not None, tag):
 *     if not self.is_started or self.is_shutting_down:
 *       raise ValueError("server must be started and not shutting down")             # <<<<<<<<<<<<<<
 *     if server_queue not in self.registered_completion_queues:
 *       raise ValueError("server_queue must be a registered completion queue")
 */
  __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_s_server_must_be_started_and_not_s); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(23, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__29);
  __Pyx_GIVEREF(__pyx_tuple__29);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":65
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:
 *       raise ValueError("server_queue must be a registered completion queue")             # <<<<<<<<<<<<<<
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 *     return self._c_request_unregistered_call(request_call_tag, call_queue, server_queue)
 */
  __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_s_server_queue_must_be_a_registere); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(23, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__30);
  __Pyx_GIVEREF(__pyx_tuple__30);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":127
 *       self, CompletionQueue queue not None):
 *     if self.is_started:
 *       raise ValueError("cannot register completion queues after start")             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_server_register_completion_queue(
 */
  __pyx_tuple__31 = PyTuple_Pack(1, __pyx_kp_s_cannot_register_completion_queue); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(23, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__31);
  __Pyx_GIVEREF(__pyx_tuple__31);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":150
 *     """
 *     if self.is_started:
 *       raise ValueError("the server has already started")             # <<<<<<<<<<<<<<
 *     if backup_queue:
 *       self.backup_shutdown_queue = CompletionQueue(shutdown_cq=True)
 */
  __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_s_the_server_has_already_started); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(23, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__32);
  __Pyx_GIVEREF(__pyx_tuple__32);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":191
 *   def shutdown(self, CompletionQueue queue not None, tag):
 *     if queue.is_shutting_down:
 *       raise ValueError("queue must be live")             # <<<<<<<<<<<<<<
 *     elif not self.is_started:
 *       raise ValueError("the server hasn't started yet")
 */
  __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_s_queue_must_be_live); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(23, 191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__33);
  __Pyx_GIVEREF(__pyx_tuple__33);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":193
 *       raise ValueError("queue must be live")
 *     elif not self.is_started:
 *       raise ValueError("the server hasn't started yet")             # <<<<<<<<<<<<<<
 *     elif self.is_shutting_down:
 *       return
 */
  __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_s_the_server_hasn_t_started_yet); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(23, 193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__34);
  __Pyx_GIVEREF(__pyx_tuple__34);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":197
 *       return
 *     elif queue not in self.registered_completion_queues:
 *       raise ValueError("expected registered completion queue")             # <<<<<<<<<<<<<<
 *     else:
 *       self._c_shutdown(queue, tag)
 */
  __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_s_expected_registered_completion_q); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(23, 197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__35);
  __Pyx_GIVEREF(__pyx_tuple__35);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":17
 * 
 * cdef object _custom_op_on_c_call(int op, grpc_call *call):
 *   raise NotImplementedError("No custom hooks are implemented")             # <<<<<<<<<<<<<<
 * 
 * def install_context_from_request_call_event(RequestCallEvent event):
 */
  __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_s_No_custom_hooks_are_implemented); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(26, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__36);
  __Pyx_GIVEREF(__pyx_tuple__36);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":99
 *       break
 *     fn = to_call[0]
 *     args = to_call[1:]             # <<<<<<<<<<<<<<
 *     fn(*args)
 * 
 */
  __pyx_slice__37 = PySlice_New(__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_slice__37)) __PYX_ERR(28, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_slice__37);
  __Pyx_GIVEREF(__pyx_slice__37);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":123
 * 
 *   import gevent
 *   import gevent.pool             # <<<<<<<<<<<<<<
 * 
 *   gevent_hub = gevent.hub
 */
  __pyx_tuple__39 = PyTuple_Pack(2, __pyx_n_s_gevent, __pyx_n_s_pool); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(28, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__39);
  __Pyx_GIVEREF(__pyx_tuple__39);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":52
 *     def _run_with_context(target):
 *         ctx = contextvars.copy_context()
 *         def _run(*args):             # <<<<<<<<<<<<<<
 *             ctx.run(target, *args)
 *         return _run
 */
  __pyx_tuple__40 = PyTuple_Pack(1, __pyx_n_s_args); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(29, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__40);
  __Pyx_GIVEREF(__pyx_tuple__40);
  __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_3, __pyx_n_s_run_2, 52, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(29, 52, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":57
 * else:
 *     def _run_with_context(target):
 *         def _run(*args):             # <<<<<<<<<<<<<<
 *             target(*args)
 *         return _run
 */
  __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_3, __pyx_n_s_run_2, 57, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(29, 57, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":109
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):             # <<<<<<<<<<<<<<
 *                 try:
 *                     target(*args)
 */
  __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_managed_target, 109, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(1, 109, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":153
 *     queue = asyncio.Queue(maxsize=1)
 * 
 *     def yield_to_queue():             # <<<<<<<<<<<<<<
 *         try:
 *             for item in gen:
 */
  __pyx_tuple__46 = PyTuple_Pack(1, __pyx_n_s_item); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(6, 153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__46);
  __Pyx_GIVEREF(__pyx_tuple__46);
  __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_5, __pyx_n_s_yield_to_queue, 153, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(6, 153, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":188
 *             with warnings.catch_warnings():
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 *                 warnings.simplefilter("error", DeprecationWarning)             # <<<<<<<<<<<<<<
 *                 try:
 *                     return asyncio.get_event_loop_policy().get_event_loop()
 */
  __pyx_tuple__48 = PyTuple_Pack(2, __pyx_n_s_error, __pyx_builtin_DeprecationWarning); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(6, 188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__48);
  __Pyx_GIVEREF(__pyx_tuple__48);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":108
 *             if event.type == GRPC_QUEUE_TIMEOUT:
 *                 with gil:
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")             # <<<<<<<<<<<<<<
 *             elif event.type == GRPC_QUEUE_SHUTDOWN:
 *                 self._shutdown = True
 */
  __pyx_tuple__50 = PyTuple_Pack(1, __pyx_kp_s_Core_should_not_return_GRPC_QUEU); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(7, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__50);
  __Pyx_GIVEREF(__pyx_tuple__50);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":231
 *     def set_compression(self, object compression):
 *         if self._rpc_state.metadata_sent:
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')             # <<<<<<<<<<<<<<
 *         else:
 *             self._rpc_state.compression_algorithm = compression
 */
  __pyx_tuple__79 = PyTuple_Pack(1, __pyx_kp_s_Compression_setting_must_be_spec); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(9, 231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__79);
  __Pyx_GIVEREF(__pyx_tuple__79);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":372
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):             # <<<<<<<<<<<<<<
 *         for generic_handler in generic_handlers:
 *             method_handler = generic_handler.service(handler_call_details)
 */
  __pyx_tuple__83 = PyTuple_Pack(3, __pyx_n_s_handler_call_details, __pyx_n_s_generic_handler, __pyx_n_s_method_handler); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(9, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__83);
  __Pyx_GIVEREF(__pyx_tuple__83);
  __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_query_handlers, 372, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(9, 372, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":744
 * cdef _add_callback_handler(object rpc_task, RPCState rpc_state):
 * 
 *     def handle_callbacks(object unused_task):             # <<<<<<<<<<<<<<
 *         try:
 *             for callback in rpc_state.callbacks:
 */
  __pyx_tuple__93 = PyTuple_Pack(2, __pyx_n_s_unused_task, __pyx_n_s_callback); if (unlikely(!__pyx_tuple__93)) __PYX_ERR(9, 744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__93);
  __Pyx_GIVEREF(__pyx_tuple__93);
  __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_handle_callbacks, 744, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(9, 744, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":874
 *     def __cinit__(self, int maximum_concurrent_rpcs):
 *         if maximum_concurrent_rpcs <= 0:
 *             raise ValueError("maximum_concurrent_rpcs should be a postive integer")             # <<<<<<<<<<<<<<
 *         self._maximum_concurrent_rpcs = maximum_concurrent_rpcs
 *         self._active_rpcs = 0
 */
  __pyx_tuple__98 = PyTuple_Pack(1, __pyx_kp_s_maximum_concurrent_rpcs_should_b); if (unlikely(!__pyx_tuple__98)) __PYX_ERR(9, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__98);
  __Pyx_GIVEREF(__pyx_tuple__98);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  __pyx_tuple__105 = PyTuple_Pack(3, __pyx_int_238750788, __pyx_int_228825662, __pyx_int_222419149); if (unlikely(!__pyx_tuple__105)) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__105);
  __Pyx_GIVEREF(__pyx_tuple__105);
  __pyx_tuple__106 = PyTuple_Pack(3, __pyx_int_171651213, __pyx_int_118587260, __pyx_int_171381981); if (unlikely(!__pyx_tuple__106)) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__106);
  __Pyx_GIVEREF(__pyx_tuple__106);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_tuple__108 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__108)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__108);
  __Pyx_GIVEREF(__pyx_tuple__108);
  __pyx_codeobj__109 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__109)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 */
  __pyx_tuple__110 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__110)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__110);
  __Pyx_GIVEREF(__pyx_tuple__110);
  __pyx_codeobj__111 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__111)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 */
  __pyx_codeobj__113 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__113)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__115 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__115)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":24
 *     self.references = []
 * 
 *   def _start_batch(self, operations, tag, retain_self):             # <<<<<<<<<<<<<<
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
 */
  __pyx_tuple__116 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_operations, __pyx_n_s_tag, __pyx_n_s_retain_self, __pyx_n_s_batch_operation_tag, __pyx_n_s_error); if (unlikely(!__pyx_tuple__116)) __PYX_ERR(4, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__116);
  __Pyx_GIVEREF(__pyx_tuple__116);
  __pyx_codeobj__117 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__116, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_7, __pyx_n_s_start_batch, 24, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__117)) __PYX_ERR(4, 24, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":38
 *     return error
 * 
 *   def start_client_batch(self, operations, tag):             # <<<<<<<<<<<<<<
 *     # We don't reference this call in the operations tag because
 *     # it should be cancelled when it goes out of scope
 */
  __pyx_tuple__118 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_operations, __pyx_n_s_tag); if (unlikely(!__pyx_tuple__118)) __PYX_ERR(4, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__118);
  __Pyx_GIVEREF(__pyx_tuple__118);
  __pyx_codeobj__119 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__118, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_7, __pyx_n_s_start_client_batch, 38, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__119)) __PYX_ERR(4, 38, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":43
 *     return self._start_batch(operations, tag, False)
 * 
 *   def start_server_batch(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return self._start_batch(operations, tag, True)
 * 
 */
  __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__118, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_7, __pyx_n_s_start_server_batch, 43, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(4, 43, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":46
 *     return self._start_batch(operations, tag, True)
 * 
 *   def cancel(             # <<<<<<<<<<<<<<
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):
 */
  __pyx_tuple__121 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_error_code, __pyx_n_s_details, __pyx_n_s_result, __pyx_n_s_c_details); if (unlikely(!__pyx_tuple__121)) __PYX_ERR(4, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__121);
  __Pyx_GIVEREF(__pyx_tuple__121);
  __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__121, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_7, __pyx_n_s_cancel, 46, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(4, 46, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":69
 *       return result
 * 
 *   def set_credentials(self, CallCredentials call_credentials not None):             # <<<<<<<<<<<<<<
 *     cdef grpc_call_credentials *c_call_credentials = call_credentials.c()
 *     cdef grpc_call_error call_error = grpc_call_set_credentials(
 */
  __pyx_tuple__123 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_call_credentials, __pyx_n_s_c_call_credentials, __pyx_n_s_call_error); if (unlikely(!__pyx_tuple__123)) __PYX_ERR(4, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__123);
  __Pyx_GIVEREF(__pyx_tuple__123);
  __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__123, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_7, __pyx_n_s_set_credentials, 69, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(4, 69, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":76
 *     return call_error
 * 
 *   def peer(self):             # <<<<<<<<<<<<<<
 *     cdef char *peer = NULL
 *     with nogil:
 */
  __pyx_tuple__125 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_peer, __pyx_n_s_result); if (unlikely(!__pyx_tuple__125)) __PYX_ERR(4, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__125);
  __Pyx_GIVEREF(__pyx_tuple__125);
  __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__125, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_7, __pyx_n_s_peer, 76, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(4, 76, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":96
 *     return self.c_call != NULL
 * 
 *   def _custom_op_on_c_call(self, int op):             # <<<<<<<<<<<<<<
 *     return _custom_op_on_c_call(op, self.c_call)
 */
  __pyx_tuple__127 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_op); if (unlikely(!__pyx_tuple__127)) __PYX_ERR(4, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__127);
  __Pyx_GIVEREF(__pyx_tuple__127);
  __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__127, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_7, __pyx_n_s_custom_op_on_c_call, 96, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(4, 96, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__129 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__129)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__131 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__133 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__133)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__135 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__135)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__136 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__136)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":326
 *     self._call_state = call_state
 * 
 *   def operate(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return _operate_from_integrated_call(
 *         self._channel_state, self._call_state, operations, tag)
 */
  __pyx_codeobj__137 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__118, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_operate, 326, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__137)) __PYX_ERR(12, 326, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":330
 *         self._channel_state, self._call_state, operations, tag)
 * 
 *   def cancel(self, code, details):             # <<<<<<<<<<<<<<
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 */
  __pyx_tuple__138 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_code, __pyx_n_s_details); if (unlikely(!__pyx_tuple__138)) __PYX_ERR(12, 330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__138);
  __Pyx_GIVEREF(__pyx_tuple__138);
  __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_cancel, 330, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(12, 330, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__140 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":372
 *     self._call_state = call_state
 * 
 *   def operate(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return _operate_from_segregated_call(
 *         self._channel_state, self._call_state, operations, tag)
 */
  __pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__118, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_operate, 372, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(12, 372, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":376
 *         self._channel_state, self._call_state, operations, tag)
 * 
 *   def cancel(self, code, details):             # <<<<<<<<<<<<<<
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 */
  __pyx_codeobj__143 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_cancel, 376, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__143)) __PYX_ERR(12, 376, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":379
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 *   def next_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       _process_segregated_call_tag(
 */
  __pyx_tuple__144 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_on_success, __pyx_n_s_on_success, __pyx_n_s_on_failure, __pyx_n_s_on_failure); if (unlikely(!__pyx_tuple__144)) __PYX_ERR(12, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__144);
  __Pyx_GIVEREF(__pyx_tuple__144);
  __pyx_codeobj__145 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__144, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_next_event, 379, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__145)) __PYX_ERR(12, 379, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__147 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__147)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":513
 *     grpc_channel_credentials_release(c_channel_credentials)
 * 
 *   def target(self):             # <<<<<<<<<<<<<<
 *     cdef char *c_target
 *     with self._state.condition:
 */
  __pyx_tuple__148 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_c_target, __pyx_n_s_target); if (unlikely(!__pyx_tuple__148)) __PYX_ERR(12, 513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__148);
  __Pyx_GIVEREF(__pyx_tuple__148);
  __pyx_codeobj__149 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__148, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_target, 513, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__149)) __PYX_ERR(12, 513, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":521
 *       return target
 * 
 *   def integrated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
 */
  __pyx_tuple__150 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_flags, __pyx_n_s_method, __pyx_n_s_host, __pyx_n_s_deadline, __pyx_n_s_metadata, __pyx_n_s_credentials, __pyx_n_s_operationses_and_tags, __pyx_n_s_context, __pyx_n_s_registered_call_handle); if (unlikely(!__pyx_tuple__150)) __PYX_ERR(12, 521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__150);
  __Pyx_GIVEREF(__pyx_tuple__150);
  __pyx_codeobj__151 = (PyObject*)__Pyx_PyCode_New(10, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__150, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_integrated_call, 521, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__151)) __PYX_ERR(12, 521, __pyx_L1_error)
  __pyx_tuple__152 = PyTuple_Pack(2, Py_None, Py_None); if (unlikely(!__pyx_tuple__152)) __PYX_ERR(12, 521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__152);
  __Pyx_GIVEREF(__pyx_tuple__152);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":529
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def next_call_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       if tag is not None:
 */
  __pyx_tuple__153 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_on_success, __pyx_n_s_on_success, __pyx_n_s_queue_deadline); if (unlikely(!__pyx_tuple__153)) __PYX_ERR(12, 529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__153);
  __Pyx_GIVEREF(__pyx_tuple__153);
  __pyx_codeobj__154 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__153, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_next_call_event, 529, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__154)) __PYX_ERR(12, 529, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":543
 *                             on_success, None, queue_deadline)
 * 
 *   def segregated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
 */
  __pyx_codeobj__155 = (PyObject*)__Pyx_PyCode_New(10, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__150, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_segregated_call, 543, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__155)) __PYX_ERR(12, 543, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":551
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def check_connectivity_state(self, bint try_to_connect):             # <<<<<<<<<<<<<<
 *     with self._state.condition:
 *       if self._state.open:
 */
  __pyx_tuple__156 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_try_to_connect); if (unlikely(!__pyx_tuple__156)) __PYX_ERR(12, 551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__156);
  __Pyx_GIVEREF(__pyx_tuple__156);
  __pyx_codeobj__157 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__156, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_check_connectivity_state, 551, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__157)) __PYX_ERR(12, 551, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":559
 *         raise ValueError('Cannot invoke RPC: %s' % self._state.closed_reason)
 * 
 *   def watch_connectivity_state(             # <<<<<<<<<<<<<<
 *       self, grpc_connectivity_state last_observed_state, object deadline):
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)
 */
  __pyx_tuple__158 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_last_observed_state, __pyx_n_s_deadline); if (unlikely(!__pyx_tuple__158)) __PYX_ERR(12, 559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__158);
  __Pyx_GIVEREF(__pyx_tuple__158);
  __pyx_codeobj__159 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__158, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_watch_connectivity_state, 559, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__159)) __PYX_ERR(12, 559, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":563
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)
 * 
 *   def close(self, code, details):             # <<<<<<<<<<<<<<
 *     _close(self, code, details, False)
 * 
 */
  __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_close, 563, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(12, 563, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":566
 *     _close(self, code, details, False)
 * 
 *   def close_on_fork(self, code, details):             # <<<<<<<<<<<<<<
 *     _close(self, code, details, True)
 * 
 */
  __pyx_codeobj__161 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_close_on_fork_2, 566, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__161)) __PYX_ERR(12, 566, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":569
 *     _close(self, code, details, True)
 * 
 *   def get_registered_call_handle(self, method):             # <<<<<<<<<<<<<<
 *     """
 *     Get or registers a call handler for a method.
 */
  __pyx_tuple__162 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_method); if (unlikely(!__pyx_tuple__162)) __PYX_ERR(12, 569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__162);
  __Pyx_GIVEREF(__pyx_tuple__162);
  __pyx_codeobj__163 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__162, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython, __pyx_n_s_get_registered_call_handle, 569, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__163)) __PYX_ERR(12, 569, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__165 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__165)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":16
 * 
 * 
 * def channelz_get_top_channels(start_channel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_top_channels(
 *         start_channel_id,
 */
  __pyx_tuple__166 = PyTuple_Pack(2, __pyx_n_s_start_channel_id, __pyx_n_s_c_returned_str); if (unlikely(!__pyx_tuple__166)) __PYX_ERR(13, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__166);
  __Pyx_GIVEREF(__pyx_tuple__166);
  __pyx_codeobj__167 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_8, __pyx_n_s_channelz_get_top_channels, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__167)) __PYX_ERR(13, 16, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":25
 *     return c_returned_str
 * 
 * def channelz_get_servers(start_server_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)
 *     if c_returned_str == NULL:
 */
  __pyx_tuple__168 = PyTuple_Pack(2, __pyx_n_s_start_server_id, __pyx_n_s_c_returned_str); if (unlikely(!__pyx_tuple__168)) __PYX_ERR(13, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__168);
  __Pyx_GIVEREF(__pyx_tuple__168);
  __pyx_codeobj__169 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__168, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_8, __pyx_n_s_channelz_get_servers, 25, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__169)) __PYX_ERR(13, 25, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":32
 *     return c_returned_str
 * 
 * def channelz_get_server(server_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)
 *     if c_returned_str == NULL:
 */
  __pyx_tuple__170 = PyTuple_Pack(2, __pyx_n_s_server_id, __pyx_n_s_c_returned_str); if (unlikely(!__pyx_tuple__170)) __PYX_ERR(13, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__170);
  __Pyx_GIVEREF(__pyx_tuple__170);
  __pyx_codeobj__171 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__170, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_8, __pyx_n_s_channelz_get_server, 32, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__171)) __PYX_ERR(13, 32, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":39
 *     return c_returned_str
 * 
 * def channelz_get_server_sockets(server_id, start_socket_id, max_results):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_server_sockets(
 *         server_id,
 */
  __pyx_tuple__172 = PyTuple_Pack(4, __pyx_n_s_server_id, __pyx_n_s_start_socket_id, __pyx_n_s_max_results, __pyx_n_s_c_returned_str); if (unlikely(!__pyx_tuple__172)) __PYX_ERR(13, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__172);
  __Pyx_GIVEREF(__pyx_tuple__172);
  __pyx_codeobj__173 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__172, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_8, __pyx_n_s_channelz_get_server_sockets, 39, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__173)) __PYX_ERR(13, 39, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":52
 *     return c_returned_str
 * 
 * def channelz_get_channel(channel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)
 *     if c_returned_str == NULL:
 */
  __pyx_tuple__174 = PyTuple_Pack(2, __pyx_n_s_channel_id, __pyx_n_s_c_returned_str); if (unlikely(!__pyx_tuple__174)) __PYX_ERR(13, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__174);
  __Pyx_GIVEREF(__pyx_tuple__174);
  __pyx_codeobj__175 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__174, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_8, __pyx_n_s_channelz_get_channel, 52, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__175)) __PYX_ERR(13, 52, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":59
 *     return c_returned_str
 * 
 * def channelz_get_subchannel(subchannel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)
 *     if c_returned_str == NULL:
 */
  __pyx_tuple__176 = PyTuple_Pack(2, __pyx_n_s_subchannel_id, __pyx_n_s_c_returned_str); if (unlikely(!__pyx_tuple__176)) __PYX_ERR(13, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__176);
  __Pyx_GIVEREF(__pyx_tuple__176);
  __pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__176, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_8, __pyx_n_s_channelz_get_subchannel, 59, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__177)) __PYX_ERR(13, 59, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":66
 *     return c_returned_str
 * 
 * def channelz_get_socket(socket_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)
 *     if c_returned_str == NULL:
 */
  __pyx_tuple__178 = PyTuple_Pack(2, __pyx_n_s_socket_id, __pyx_n_s_c_returned_str); if (unlikely(!__pyx_tuple__178)) __PYX_ERR(13, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__178);
  __Pyx_GIVEREF(__pyx_tuple__178);
  __pyx_codeobj__179 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__178, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_8, __pyx_n_s_channelz_get_socket, 66, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__179)) __PYX_ERR(13, 66, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":16
 * 
 * 
 * def dump_xds_configs():             # <<<<<<<<<<<<<<
 *     cdef grpc_slice client_config_in_slice
 *     with nogil:
 */
  __pyx_tuple__180 = PyTuple_Pack(2, __pyx_n_s_client_config_in_slice, __pyx_n_s_result); if (unlikely(!__pyx_tuple__180)) __PYX_ERR(14, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__180);
  __Pyx_GIVEREF(__pyx_tuple__180);
  __pyx_codeobj__181 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__180, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_9, __pyx_n_s_dump_xds_configs, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__181)) __PYX_ERR(14, 16, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":16
 * 
 * 
 * def _spawn_callback_in_thread(cb_func, args):             # <<<<<<<<<<<<<<
 *   t = ForkManagedThread(target=cb_func, args=args)
 *   t.setDaemon(True)
 */
  __pyx_tuple__182 = PyTuple_Pack(3, __pyx_n_s_cb_func, __pyx_n_s_args, __pyx_n_s_t); if (unlikely(!__pyx_tuple__182)) __PYX_ERR(5, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__182);
  __Pyx_GIVEREF(__pyx_tuple__182);
  __pyx_codeobj__183 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__182, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_spawn_callback_in_thread, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__183)) __PYX_ERR(5, 16, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":23
 * async_callback_func = _spawn_callback_in_thread
 * 
 * def set_async_callback_func(callback_func):             # <<<<<<<<<<<<<<
 *   global async_callback_func
 *   async_callback_func = callback_func
 */
  __pyx_tuple__184 = PyTuple_Pack(1, __pyx_n_s_callback_func); if (unlikely(!__pyx_tuple__184)) __PYX_ERR(5, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__184);
  __Pyx_GIVEREF(__pyx_tuple__184);
  __pyx_codeobj__185 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__184, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_set_async_callback_func, 23, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__185)) __PYX_ERR(5, 23, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":27
 *   async_callback_func = callback_func
 * 
 * def _spawn_callback_async(callback, args):             # <<<<<<<<<<<<<<
 *   async_callback_func(callback, args)
 * 
 */
  __pyx_tuple__186 = PyTuple_Pack(2, __pyx_n_s_callback, __pyx_n_s_args); if (unlikely(!__pyx_tuple__186)) __PYX_ERR(5, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__186);
  __Pyx_GIVEREF(__pyx_tuple__186);
  __pyx_codeobj__187 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__186, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_spawn_callback_async, 27, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__187)) __PYX_ERR(5, 27, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__188 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__188)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 */
  __pyx_codeobj__189 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__189)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__191 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__191)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__193 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__193)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_tuple__194 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_state, __pyx_n_s_dict_2, __pyx_n_s_use_setstate); if (unlikely(!__pyx_tuple__194)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__194);
  __Pyx_GIVEREF(__pyx_tuple__194);
  __pyx_codeobj__195 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__194, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__195)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ChannelCredentials__set_state(self, __pyx_state)
 */
  __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(10, 16, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__197 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__197)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__199 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__199)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__201 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__201)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__203 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__203)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__204 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__204)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__205 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__205)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__206 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__206)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__207 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__207)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__208 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__208)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":257
 *   return c_ssl_pem_key_cert_pairs
 * 
 * def server_credentials_ssl(pem_root_certs, pem_key_cert_pairs,             # <<<<<<<<<<<<<<
 *                            bint force_client_auth):
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 */
  __pyx_tuple__209 = PyTuple_Pack(7, __pyx_n_s_pem_root_certs, __pyx_n_s_pem_key_cert_pairs, __pyx_n_s_force_client_auth, __pyx_n_s_credentials, __pyx_n_s_c_pem_root_certs, __pyx_n_s_c_cert_config, __pyx_n_s_c_options); if (unlikely(!__pyx_tuple__209)) __PYX_ERR(5, 257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__209);
  __Pyx_GIVEREF(__pyx_tuple__209);
  __pyx_codeobj__210 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__209, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_server_credentials_ssl, 257, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__210)) __PYX_ERR(5, 257, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":282
 *   return credentials
 * 
 * def server_certificate_config_ssl(pem_root_certs, pem_key_cert_pairs):             # <<<<<<<<<<<<<<
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 */
  __pyx_tuple__211 = PyTuple_Pack(3, __pyx_n_s_pem_root_certs, __pyx_n_s_pem_key_cert_pairs, __pyx_n_s_cert_config); if (unlikely(!__pyx_tuple__211)) __PYX_ERR(5, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__211);
  __Pyx_GIVEREF(__pyx_tuple__211);
  __pyx_codeobj__212 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__211, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_server_certificate_config_ssl, 282, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__212)) __PYX_ERR(5, 282, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":296
 *   return cert_config
 * 
 * def server_credentials_ssl_dynamic_cert_config(initial_cert_config,             # <<<<<<<<<<<<<<
 *                                                cert_config_fetcher,
 *                                                bint force_client_auth):
 */
  __pyx_tuple__213 = PyTuple_Pack(5, __pyx_n_s_initial_cert_config, __pyx_n_s_cert_config_fetcher, __pyx_n_s_force_client_auth, __pyx_n_s_credentials, __pyx_n_s_c_options); if (unlikely(!__pyx_tuple__213)) __PYX_ERR(5, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__213);
  __Pyx_GIVEREF(__pyx_tuple__213);
  __pyx_codeobj__214 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__213, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_server_credentials_ssl_dynamic_c, 296, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__214)) __PYX_ERR(5, 296, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__215 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__215)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__216 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__216)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":370
 *     return grpc_local_credentials_create(local_connect_type)
 * 
 * def channel_credentials_local(grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *   return LocalChannelCredentials(local_connect_type)
 * 
 */
  __pyx_tuple__217 = PyTuple_Pack(1, __pyx_n_s_local_connect_type); if (unlikely(!__pyx_tuple__217)) __PYX_ERR(5, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__217);
  __Pyx_GIVEREF(__pyx_tuple__217);
  __pyx_codeobj__218 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__217, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_channel_credentials_local, 370, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__218)) __PYX_ERR(5, 370, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__219 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__194, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__219)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_InsecureChannelCredentials__set_state(self, __pyx_state)
 */
  __pyx_codeobj__220 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__220)) __PYX_ERR(10, 16, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":378
 *     return grpc_insecure_credentials_create()
 * 
 * def channel_credentials_insecure():             # <<<<<<<<<<<<<<
 *   return InsecureChannelCredentials()
 * 
 */
  __pyx_codeobj__221 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_channel_credentials_insecure, 378, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__221)) __PYX_ERR(5, 378, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":381
 *   return InsecureChannelCredentials()
 * 
 * def server_credentials_local(grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_local_server_credentials_create(local_connect_type)
 */
  __pyx_tuple__222 = PyTuple_Pack(2, __pyx_n_s_local_connect_type, __pyx_n_s_credentials); if (unlikely(!__pyx_tuple__222)) __PYX_ERR(5, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__222);
  __Pyx_GIVEREF(__pyx_tuple__222);
  __pyx_codeobj__223 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__222, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_server_credentials_local, 381, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__223)) __PYX_ERR(5, 381, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":386
 *   return credentials
 * 
 * def xds_server_credentials(ServerCredentials fallback_credentials):             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_xds_server_credentials_create(fallback_credentials.c_credentials)
 */
  __pyx_tuple__224 = PyTuple_Pack(2, __pyx_n_s_fallback_credentials, __pyx_n_s_credentials); if (unlikely(!__pyx_tuple__224)) __PYX_ERR(5, 386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__224);
  __Pyx_GIVEREF(__pyx_tuple__224);
  __pyx_codeobj__225 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__224, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_xds_server_credentials, 386, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__225)) __PYX_ERR(5, 386, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":394
 *   return credentials
 * 
 * def insecure_server_credentials():             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_insecure_server_credentials_create()
 */
  __pyx_tuple__226 = PyTuple_Pack(1, __pyx_n_s_credentials); if (unlikely(!__pyx_tuple__226)) __PYX_ERR(5, 394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__226);
  __Pyx_GIVEREF(__pyx_tuple__226);
  __pyx_codeobj__227 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__226, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_insecure_server_credentials, 394, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__227)) __PYX_ERR(5, 394, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__228 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__228)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__229 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__229)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":416
 * 
 * 
 * def channel_credentials_alts(list service_accounts):             # <<<<<<<<<<<<<<
 *   return ALTSChannelCredentials(service_accounts)
 * 
 */
  __pyx_tuple__230 = PyTuple_Pack(1, __pyx_n_s_service_accounts); if (unlikely(!__pyx_tuple__230)) __PYX_ERR(5, 416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__230);
  __Pyx_GIVEREF(__pyx_tuple__230);
  __pyx_codeobj__231 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__230, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_channel_credentials_alts, 416, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__231)) __PYX_ERR(5, 416, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":420
 * 
 * 
 * def server_credentials_alts():             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   cdef grpc_alts_credentials_options* c_options = grpc_alts_credentials_server_options_create()
 */
  __pyx_tuple__232 = PyTuple_Pack(2, __pyx_n_s_credentials, __pyx_n_s_c_options); if (unlikely(!__pyx_tuple__232)) __PYX_ERR(5, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__232);
  __Pyx_GIVEREF(__pyx_tuple__232);
  __pyx_codeobj__233 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__232, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_server_credentials_alts, 420, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__233)) __PYX_ERR(5, 420, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__234 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__234)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__235 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__235)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":445
 * 
 * 
 * def channel_credentials_compute_engine(call_creds):             # <<<<<<<<<<<<<<
 *   return ComputeEngineChannelCredentials(call_creds)
 */
  __pyx_tuple__236 = PyTuple_Pack(1, __pyx_n_s_call_creds); if (unlikely(!__pyx_tuple__236)) __PYX_ERR(5, 445, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__236);
  __Pyx_GIVEREF(__pyx_tuple__236);
  __pyx_codeobj__237 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__236, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_2, __pyx_n_s_channel_credentials_compute_engi, 445, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__237)) __PYX_ERR(5, 445, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":103
 *     return event
 * 
 *   def _internal_poll(self, deadline):             # <<<<<<<<<<<<<<
 *     return self._interpret_event(_next(self.c_completion_queue, deadline))
 * 
 */
  __pyx_tuple__238 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_deadline); if (unlikely(!__pyx_tuple__238)) __PYX_ERR(15, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__238);
  __Pyx_GIVEREF(__pyx_tuple__238);
  __pyx_codeobj__239 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__238, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_10, __pyx_n_s_internal_poll, 103, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__239)) __PYX_ERR(15, 103, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":108
 *   # We name this 'poll' to avoid problems with CPython's expectations for
 *   # 'special' methods (like next and __next__).
 *   def poll(self, deadline=None):             # <<<<<<<<<<<<<<
 *     global g_gevent_activated
 *     if g_gevent_activated:
 */
  __pyx_codeobj__240 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__238, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_10, __pyx_n_s_poll, 108, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__240)) __PYX_ERR(15, 108, __pyx_L1_error)
  __pyx_tuple__241 = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_tuple__241)) __PYX_ERR(15, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__241);
  __Pyx_GIVEREF(__pyx_tuple__241);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":115
 *       return self._internal_poll(deadline)
 * 
 *   def shutdown(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_completion_queue_shutdown(self.c_completion_queue)
 */
  __pyx_codeobj__242 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_10, __pyx_n_s_shutdown, 115, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__242)) __PYX_ERR(15, 115, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":120
 *     self.is_shutting_down = True
 * 
 *   def clear(self):             # <<<<<<<<<<<<<<
 *     if not self.is_shutting_down:
 *       raise ValueError('queue must be shutting down to be cleared')
 */
  __pyx_codeobj__243 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_10, __pyx_n_s_clear, 120, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__243)) __PYX_ERR(15, 120, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__244 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__244)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__245 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__245)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__246 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__246)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__247 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__247)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__248 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__248)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__249 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__249)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__250 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__250)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__251 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__251)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__252 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__252)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__253 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__253)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":24
 * 
 * 
 * _Metadatum = collections.namedtuple('_Metadatum', ('key', 'value',))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_tuple__254 = PyTuple_Pack(2, __pyx_n_s_key, __pyx_n_s_value); if (unlikely(!__pyx_tuple__254)) __PYX_ERR(18, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__254);
  __Pyx_GIVEREF(__pyx_tuple__254);
  __pyx_tuple__255 = PyTuple_Pack(2, __pyx_n_s_Metadatum, __pyx_tuple__254); if (unlikely(!__pyx_tuple__255)) __PYX_ERR(18, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__255);
  __Pyx_GIVEREF(__pyx_tuple__255);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__256 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__256)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 */
  __pyx_codeobj__257 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__257)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":31
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_INITIAL_METADATA
 * 
 */
  __pyx_codeobj__258 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_type, 31, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__258)) __PYX_ERR(19, 31, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__259 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__259)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__260 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__260)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":58
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_MESSAGE
 * 
 */
  __pyx_codeobj__261 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_type, 58, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__261)) __PYX_ERR(19, 58, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__262 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__262)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__263 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__263)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":80
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_CLOSE_FROM_CLIENT
 * 
 */
  __pyx_codeobj__264 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_type, 80, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__264)) __PYX_ERR(19, 80, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__265 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__265)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__266 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__266)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":99
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_STATUS_FROM_SERVER
 * 
 */
  __pyx_codeobj__267 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_type, 99, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__267)) __PYX_ERR(19, 99, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__268 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__268)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__269 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__269)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":127
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_INITIAL_METADATA
 * 
 */
  __pyx_codeobj__270 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_type, 127, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__270)) __PYX_ERR(19, 127, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":141
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)
 * 
 *   def initial_metadata(self):             # <<<<<<<<<<<<<<
 *     return self._initial_metadata
 * 
 */
  __pyx_codeobj__271 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_initial_metadata, 141, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__271)) __PYX_ERR(19, 141, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__272 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__272)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__273 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__273)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":150
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_MESSAGE
 * 
 */
  __pyx_codeobj__274 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_type, 150, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__274)) __PYX_ERR(19, 150, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":183
 *       self._message = None
 * 
 *   def message(self):             # <<<<<<<<<<<<<<
 *     return self._message
 * 
 */
  __pyx_codeobj__275 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_message, 183, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__275)) __PYX_ERR(19, 183, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__276 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__276)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__277 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__277)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":192
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_STATUS_ON_CLIENT
 * 
 */
  __pyx_codeobj__278 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_type, 192, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__278)) __PYX_ERR(19, 192, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":220
 *       self._error_string = ""
 * 
 *   def trailing_metadata(self):             # <<<<<<<<<<<<<<
 *     return self._trailing_metadata
 * 
 */
  __pyx_codeobj__279 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_trailing_metadata, 220, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__279)) __PYX_ERR(19, 220, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":223
 *     return self._trailing_metadata
 * 
 *   def code(self):             # <<<<<<<<<<<<<<
 *     return self._code
 * 
 */
  __pyx_codeobj__280 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_code, 223, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__280)) __PYX_ERR(19, 223, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":226
 *     return self._code
 * 
 *   def details(self):             # <<<<<<<<<<<<<<
 *     return self._details
 * 
 */
  __pyx_codeobj__281 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_details, 226, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__281)) __PYX_ERR(19, 226, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":229
 *     return self._details
 * 
 *   def error_string(self):             # <<<<<<<<<<<<<<
 *     return self._error_string
 * 
 */
  __pyx_codeobj__282 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_error_string, 229, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__282)) __PYX_ERR(19, 229, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__283 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__283)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__284 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__284)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":238
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_CLOSE_ON_SERVER
 * 
 */
  __pyx_codeobj__285 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_type, 238, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__285)) __PYX_ERR(19, 238, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":249
 *     self._cancelled = bool(self._c_cancelled)
 * 
 *   def cancelled(self):             # <<<<<<<<<<<<<<
 *     return self._cancelled
 */
  __pyx_codeobj__286 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_11, __pyx_n_s_cancelled, 249, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__286)) __PYX_ERR(19, 249, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__287 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__287)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__288 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__288)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__289 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__289)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__290 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__290)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__291 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__291)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__292 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__292)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":170
 *       grpc_compression_options_init(&self.c_options)
 * 
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 */
  __pyx_tuple__293 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_algorithm); if (unlikely(!__pyx_tuple__293)) __PYX_ERR(21, 170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__293);
  __Pyx_GIVEREF(__pyx_tuple__293);
  __pyx_codeobj__294 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__293, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_12, __pyx_n_s_enable_algorithm, 170, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__294)) __PYX_ERR(21, 170, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":174
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 * 
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 */
  __pyx_codeobj__295 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__293, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_12, __pyx_n_s_disable_algorithm, 174, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__295)) __PYX_ERR(21, 174, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":178
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 * 
 *   def is_algorithm_enabled(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     cdef int result
 *     with nogil:
 */
  __pyx_tuple__296 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_algorithm, __pyx_n_s_result); if (unlikely(!__pyx_tuple__296)) __PYX_ERR(21, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__296);
  __Pyx_GIVEREF(__pyx_tuple__296);
  __pyx_codeobj__297 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__296, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_12, __pyx_n_s_is_algorithm_enabled, 178, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__297)) __PYX_ERR(21, 178, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":185
 *     return result
 * 
 *   def to_channel_arg(self):             # <<<<<<<<<<<<<<
 *     return (
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
 */
  __pyx_codeobj__298 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_12, __pyx_n_s_to_channel_arg, 185, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__298)) __PYX_ERR(21, 185, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__299 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__299)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__300 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__300)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":192
 * 
 * 
 * def compression_algorithm_name(grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *   cdef const char* name
 *   with nogil:
 */
  __pyx_tuple__301 = PyTuple_Pack(2, __pyx_n_s_algorithm, __pyx_n_s_name); if (unlikely(!__pyx_tuple__301)) __PYX_ERR(21, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__301);
  __Pyx_GIVEREF(__pyx_tuple__301);
  __pyx_codeobj__302 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__301, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_12, __pyx_n_s_compression_algorithm_name, 192, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__302)) __PYX_ERR(21, 192, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":200
 * 
 * 
 * def reset_grpc_config_vars():             # <<<<<<<<<<<<<<
 *   ConfigVars.Reset()
 */
  __pyx_codeobj__303 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_12, __pyx_n_s_reset_grpc_config_vars, 200, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__303)) __PYX_ERR(21, 200, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":36
 * 
 * 
 * def peer_identities(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef grpc_auth_property_iterator properties
 */
  __pyx_tuple__304 = PyTuple_Pack(5, __pyx_n_s_call, __pyx_n_s_auth_context, __pyx_n_s_properties, __pyx_n_s_property, __pyx_n_s_identities); if (unlikely(!__pyx_tuple__304)) __PYX_ERR(22, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__304);
  __Pyx_GIVEREF(__pyx_tuple__304);
  __pyx_codeobj__305 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__304, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_13, __pyx_n_s_peer_identities, 36, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__305)) __PYX_ERR(22, 36, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":55
 *   return identities if identities else None
 * 
 * def peer_identity_key(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef const char* c_key
 */
  __pyx_tuple__306 = PyTuple_Pack(4, __pyx_n_s_call, __pyx_n_s_auth_context, __pyx_n_s_c_key, __pyx_n_s_key); if (unlikely(!__pyx_tuple__306)) __PYX_ERR(22, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__306);
  __Pyx_GIVEREF(__pyx_tuple__306);
  __pyx_codeobj__307 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__306, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_13, __pyx_n_s_peer_identity_key, 55, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__307)) __PYX_ERR(22, 55, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":69
 *   return key
 * 
 * def auth_context(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef grpc_auth_property_iterator properties
 */
  __pyx_tuple__308 = PyTuple_Pack(6, __pyx_n_s_call, __pyx_n_s_auth_context, __pyx_n_s_properties, __pyx_n_s_property, __pyx_n_s_py_auth_context, __pyx_n_s_key); if (unlikely(!__pyx_tuple__308)) __PYX_ERR(22, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__308);
  __Pyx_GIVEREF(__pyx_tuple__308);
  __pyx_codeobj__309 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__308, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_13, __pyx_n_s_auth_context, 69, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__309)) __PYX_ERR(22, 69, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__310 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__310)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__311 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__311)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":59
 *     self.references.append(arguments)
 * 
 *   def request_call(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None, tag):
 */
  __pyx_tuple__312 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_call_queue, __pyx_n_s_server_queue, __pyx_n_s_tag, __pyx_n_s_request_call_tag); if (unlikely(!__pyx_tuple__312)) __PYX_ERR(23, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__312);
  __Pyx_GIVEREF(__pyx_tuple__312);
  __pyx_codeobj__313 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__312, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_14, __pyx_n_s_request_call_2, 59, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__313)) __PYX_ERR(23, 59, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":69
 *     return self._c_request_unregistered_call(request_call_tag, call_queue, server_queue)
 * 
 *   def request_registered_call(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None,
 */
  __pyx_tuple__314 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_call_queue, __pyx_n_s_server_queue, __pyx_n_s_method, __pyx_n_s_tag, __pyx_n_s_request_call_tag, __pyx_n_s_method_bytes); if (unlikely(!__pyx_tuple__314)) __PYX_ERR(23, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__314);
  __Pyx_GIVEREF(__pyx_tuple__314);
  __pyx_codeobj__315 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_14, __pyx_n_s_request_registered_call, 69, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__315)) __PYX_ERR(23, 69, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":124
 *     return c_call_error
 * 
 *   def register_completion_queue(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue queue not None):
 *     if self.is_started:
 */
  __pyx_tuple__316 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_queue); if (unlikely(!__pyx_tuple__316)) __PYX_ERR(23, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__316);
  __Pyx_GIVEREF(__pyx_tuple__316);
  __pyx_codeobj__317 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__316, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_14, __pyx_n_s_register_completion_queue, 124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__317)) __PYX_ERR(23, 124, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":133
 *     self.registered_completion_queues.append(queue)
 * 
 *   def register_method(self, str fully_qualified_method):             # <<<<<<<<<<<<<<
 *     method_bytes = str_to_bytes(fully_qualified_method)
 *     if method_bytes in self.registered_methods.keys():
 */
  __pyx_tuple__318 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_fully_qualified_method, __pyx_n_s_method_bytes, __pyx_n_s_registered_method); if (unlikely(!__pyx_tuple__318)) __PYX_ERR(23, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__318);
  __Pyx_GIVEREF(__pyx_tuple__318);
  __pyx_codeobj__319 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__318, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_14, __pyx_n_s_register_method, 133, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__319)) __PYX_ERR(23, 133, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":141
 *     self.registered_methods[method_bytes] = registered_method
 * 
 *   def start(self, backup_queue=True):             # <<<<<<<<<<<<<<
 *     """Start the Cython gRPC Server.
 * 
 */
  __pyx_tuple__320 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_backup_queue); if (unlikely(!__pyx_tuple__320)) __PYX_ERR(23, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__320);
  __Pyx_GIVEREF(__pyx_tuple__320);
  __pyx_codeobj__321 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__320, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_14, __pyx_n_s_start, 141, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__321)) __PYX_ERR(23, 141, __pyx_L1_error)
  __pyx_tuple__322 = PyTuple_Pack(1, Py_True); if (unlikely(!__pyx_tuple__322)) __PYX_ERR(23, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__322);
  __Pyx_GIVEREF(__pyx_tuple__322);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":161
 *       self.backup_shutdown_queue.poll(deadline=time.time())
 * 
 *   def add_http2_port(self, bytes address,             # <<<<<<<<<<<<<<
 *                      ServerCredentials server_credentials=None):
 *     address = str_to_bytes(address)
 */
  __pyx_tuple__323 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_address, __pyx_n_s_server_credentials, __pyx_n_s_result, __pyx_n_s_address_c_string, __pyx_n_s_creds); if (unlikely(!__pyx_tuple__323)) __PYX_ERR(23, 161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__323);
  __Pyx_GIVEREF(__pyx_tuple__323);
  __pyx_codeobj__324 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__323, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_14, __pyx_n_s_add_http2_port, 161, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__324)) __PYX_ERR(23, 161, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":189
 *           <cpython.PyObject *>server_shutdown_tag)
 * 
 *   def shutdown(self, CompletionQueue queue not None, tag):             # <<<<<<<<<<<<<<
 *     if queue.is_shutting_down:
 *       raise ValueError("queue must be live")
 */
  __pyx_tuple__325 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_queue, __pyx_n_s_tag); if (unlikely(!__pyx_tuple__325)) __PYX_ERR(23, 189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__325);
  __Pyx_GIVEREF(__pyx_tuple__325);
  __pyx_codeobj__326 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__325, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_14, __pyx_n_s_shutdown, 189, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__326)) __PYX_ERR(23, 189, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":206
 *     self.is_shutdown = True
 * 
 *   def cancel_all_calls(self):             # <<<<<<<<<<<<<<
 *     if not self.is_shutting_down:
 *       raise UsageError("the server must be shutting down to cancel all calls")
 */
  __pyx_codeobj__327 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_14, __pyx_n_s_cancel_all_calls, 206, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__327)) __PYX_ERR(23, 206, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":218
 *   # portion of this is safe to call from __dealloc__, and potentially remove
 *   # backup_shutdown_queue.
 *   def destroy(self):             # <<<<<<<<<<<<<<
 *     if self.c_server != NULL:
 *       if not self.is_started:
 */
  __pyx_codeobj__328 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_14, __pyx_n_s_destroy, 218, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__328)) __PYX_ERR(23, 218, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__329 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__329)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__330 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__330)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__331 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__194, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__331)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle__Tag__set_state(self, __pyx_state)
 */
  __pyx_codeobj__332 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__332)) __PYX_ERR(10, 16, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__333 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__333)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__334 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__334)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__335 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__335)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__336 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__336)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__337 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__337)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__338 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__338)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__339 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__339)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__340 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__340)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":19
 *   raise NotImplementedError("No custom hooks are implemented")
 * 
 * def install_context_from_request_call_event(RequestCallEvent event):             # <<<<<<<<<<<<<<
 *   maybe_save_server_trace_context(event)
 * 
 */
  __pyx_tuple__341 = PyTuple_Pack(1, __pyx_n_s_event); if (unlikely(!__pyx_tuple__341)) __PYX_ERR(26, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__341);
  __Pyx_GIVEREF(__pyx_tuple__341);
  __pyx_codeobj__342 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__341, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_15, __pyx_n_s_install_context_from_request_cal_2, 19, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__342)) __PYX_ERR(26, 19, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":22
 *   maybe_save_server_trace_context(event)
 * 
 * def install_context_from_request_call_event_aio(GrpcCallWrapper event):             # <<<<<<<<<<<<<<
 *   pass
 * 
 */
  __pyx_codeobj__343 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__341, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_15, __pyx_n_s_install_context_from_request_cal, 22, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__343)) __PYX_ERR(26, 22, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":25
 *   pass
 * 
 * def uninstall_context():             # <<<<<<<<<<<<<<
 *   pass
 * 
 */
  __pyx_codeobj__344 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_15, __pyx_n_s_uninstall_context, 25, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__344)) __PYX_ERR(26, 25, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":28
 *   pass
 * 
 * def build_census_context():             # <<<<<<<<<<<<<<
 *   pass
 * 
 */
  __pyx_codeobj__345 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_15, __pyx_n_s_build_census_context, 28, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__345)) __PYX_ERR(26, 28, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__346 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__194, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__346)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_CensusContext__set_state(self, __pyx_state)
 */
  __pyx_codeobj__347 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__347)) __PYX_ERR(10, 16, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":34
 *   pass
 * 
 * def set_census_context_on_call(_CallState call_state, CensusContext census_ctx):             # <<<<<<<<<<<<<<
 *   pass
 * 
 */
  __pyx_tuple__348 = PyTuple_Pack(2, __pyx_n_s_call_state, __pyx_n_s_census_ctx); if (unlikely(!__pyx_tuple__348)) __PYX_ERR(26, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__348);
  __Pyx_GIVEREF(__pyx_tuple__348);
  __pyx_codeobj__349 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__348, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_15, __pyx_n_s_set_census_context_on_call, 34, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__349)) __PYX_ERR(26, 34, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":37
 *   pass
 * 
 * def set_instrumentation_context_on_call_aio(GrpcCallWrapper call_state, CensusContext census_ctx):             # <<<<<<<<<<<<<<
 *   pass
 * 
 */
  __pyx_codeobj__350 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__348, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_15, __pyx_n_s_set_instrumentation_context_on_c, 37, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__350)) __PYX_ERR(26, 37, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":40
 *   pass
 * 
 * def get_deadline_from_context():             # <<<<<<<<<<<<<<
 *   return None
 */
  __pyx_codeobj__351 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_15, __pyx_n_s_get_deadline_from_context, 40, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__351)) __PYX_ERR(26, 40, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":26
 * 
 * 
 * def get_server_call_tracer_factory_address(object observability_plugin, bint xds) -> Optional[int]:             # <<<<<<<<<<<<<<
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)
 *   if capsule:
 */
  __pyx_tuple__352 = PyTuple_Pack(4, __pyx_n_s_observability_plugin, __pyx_n_s_xds, __pyx_n_s_capsule, __pyx_n_s_capsule_ptr); if (unlikely(!__pyx_tuple__352)) __PYX_ERR(27, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__352);
  __Pyx_GIVEREF(__pyx_tuple__352);
  __pyx_codeobj__353 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__352, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_16, __pyx_n_s_get_server_call_tracer_factory_a, 26, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__353)) __PYX_ERR(27, 26, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":34
 *     return None
 * 
 * def clear_server_call_tracer_factory() -> None:             # <<<<<<<<<<<<<<
 *   _register_server_call_tracer_factory(NULL)
 * 
 */
  __pyx_codeobj__354 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_16, __pyx_n_s_clear_server_call_tracer_factory, 34, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__354)) __PYX_ERR(27, 34, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":38
 * 
 * 
 * def maybe_save_server_trace_context(RequestCallEvent event) -> None:             # <<<<<<<<<<<<<<
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:
 */
  __pyx_tuple__355 = PyTuple_Pack(6, __pyx_n_s_event, __pyx_n_s_server_call_tracer, __pyx_n_s_plugin, __pyx_n_s_trace_id, __pyx_n_s_span_id, __pyx_n_s_is_sampled); if (unlikely(!__pyx_tuple__355)) __PYX_ERR(27, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__355);
  __Pyx_GIVEREF(__pyx_tuple__355);
  __pyx_codeobj__356 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__355, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_16, __pyx_n_s_maybe_save_server_trace_context, 38, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__356)) __PYX_ERR(27, 38, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":49
 * 
 * 
 * cpdef void gevent_increment_channel_count():             # <<<<<<<<<<<<<<
 *   global g_channel_count
 *   cdef int old_channel_count
 */
  __pyx_codeobj__357 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_17, __pyx_n_s_gevent_increment_channel_count, 49, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__357)) __PYX_ERR(28, 49, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":61
 * 
 * 
 * cpdef void gevent_decrement_channel_count():             # <<<<<<<<<<<<<<
 *   global g_channel_count
 *   with nogil:
 */
  __pyx_codeobj__358 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_17, __pyx_n_s_gevent_decrement_channel_count, 61, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__358)) __PYX_ERR(28, 61, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":93
 *   return to_call
 * 
 * def spawn_greenlets():             # <<<<<<<<<<<<<<
 *   while True:
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
 */
  __pyx_tuple__359 = PyTuple_Pack(3, __pyx_n_s_to_call, __pyx_n_s_fn, __pyx_n_s_args); if (unlikely(!__pyx_tuple__359)) __PYX_ERR(28, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__359);
  __Pyx_GIVEREF(__pyx_tuple__359);
  __pyx_codeobj__360 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__359, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_17, __pyx_n_s_spawn_greenlets, 93, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__360)) __PYX_ERR(28, 93, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":102
 *     fn(*args)
 * 
 * def run_spawn_greenlets():             # <<<<<<<<<<<<<<
 *   g_gevent_pool.spawn(spawn_greenlets)
 * 
 */
  __pyx_codeobj__361 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_17, __pyx_n_s_run_spawn_greenlets, 102, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__361)) __PYX_ERR(28, 102, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":105
 *   g_gevent_pool.spawn(spawn_greenlets)
 * 
 * def shutdown_await_next_greenlet():             # <<<<<<<<<<<<<<
 *   global g_shutdown_greenlets_to_run_queue
 *   cdef unique_lock[mutex]* lk
 */
  __pyx_tuple__362 = PyTuple_Pack(1, __pyx_n_s_lk); if (unlikely(!__pyx_tuple__362)) __PYX_ERR(28, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__362);
  __Pyx_GIVEREF(__pyx_tuple__362);
  __pyx_codeobj__363 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__362, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_17, __pyx_n_s_shutdown_await_next_greenlet, 105, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__363)) __PYX_ERR(28, 105, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":114
 *   g_greenlets_cv.notify_all()
 * 
 * def init_grpc_gevent():             # <<<<<<<<<<<<<<
 *   # Lazily import gevent
 *   global gevent_hub
 */
  __pyx_tuple__364 = PyTuple_Pack(1, __pyx_n_s_gevent); if (unlikely(!__pyx_tuple__364)) __PYX_ERR(28, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__364);
  __Pyx_GIVEREF(__pyx_tuple__364);
  __pyx_codeobj__365 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__364, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_17, __pyx_n_s_init_grpc_gevent, 114, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__365)) __PYX_ERR(28, 114, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":15
 * # limitations under the License.
 * 
 * def _contextvars_supported():             # <<<<<<<<<<<<<<
 *     """Determines if the contextvars module is supported.
 * 
 */
  __pyx_tuple__366 = PyTuple_Pack(1, __pyx_n_s_contextvars); if (unlikely(!__pyx_tuple__366)) __PYX_ERR(29, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__366);
  __Pyx_GIVEREF(__pyx_tuple__366);
  __pyx_codeobj__367 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__366, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_3, __pyx_n_s_contextvars_supported, 15, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__367)) __PYX_ERR(29, 15, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":33
 * 
 * 
 * def _run_with_context(target):             # <<<<<<<<<<<<<<
 *     """Runs a callable with contextvars propagated.
 * 
 */
  __pyx_tuple__368 = PyTuple_Pack(1, __pyx_n_s_target); if (unlikely(!__pyx_tuple__368)) __PYX_ERR(29, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__368);
  __Pyx_GIVEREF(__pyx_tuple__368);
  __pyx_codeobj__369 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__368, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_3, __pyx_n_s_run_with_context, 33, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__369)) __PYX_ERR(29, 33, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":50
 * if _contextvars_supported():
 *     import contextvars
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         ctx = contextvars.copy_context()
 *         def _run(*args):
 */
  __pyx_tuple__370 = PyTuple_Pack(4, __pyx_n_s_target, __pyx_n_s_ctx, __pyx_n_s_run_2, __pyx_n_s_run_2); if (unlikely(!__pyx_tuple__370)) __PYX_ERR(29, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__370);
  __Pyx_GIVEREF(__pyx_tuple__370);
  __pyx_codeobj__371 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__370, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_3, __pyx_n_s_run_with_context, 50, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__371)) __PYX_ERR(29, 50, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":56
 *         return _run
 * else:
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         def _run(*args):
 *             target(*args)
 */
  __pyx_tuple__372 = PyTuple_Pack(3, __pyx_n_s_target, __pyx_n_s_run_2, __pyx_n_s_run_2); if (unlikely(!__pyx_tuple__372)) __PYX_ERR(29, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__372);
  __Pyx_GIVEREF(__pyx_tuple__372);
  __pyx_codeobj__373 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__372, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_3, __pyx_n_s_run_with_context, 56, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__373)) __PYX_ERR(29, 56, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":33
 * # This flag is also not supported for non-native IO manager.
 * _GRPC_ENABLE_FORK_SUPPORT = (
 *     os.environ.get('GRPC_ENABLE_FORK_SUPPORT', '0')             # <<<<<<<<<<<<<<
 *         .lower() in _TRUE_VALUES)
 * 
 */
  __pyx_tuple__374 = PyTuple_Pack(2, __pyx_n_s_GRPC_ENABLE_FORK_SUPPORT_2, __pyx_kp_s_0); if (unlikely(!__pyx_tuple__374)) __PYX_ERR(1, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__374);
  __Pyx_GIVEREF(__pyx_tuple__374);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":93
 * 
 * 
 * def fork_handlers_and_grpc_init():             # <<<<<<<<<<<<<<
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 */
  __pyx_codeobj__375 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_fork_handlers_and_grpc_init, 93, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__375)) __PYX_ERR(1, 93, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":106
 * 
 * 
 * class ForkManagedThread(object):             # <<<<<<<<<<<<<<
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 */
  __pyx_tuple__376 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__376)) __PYX_ERR(1, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__376);
  __Pyx_GIVEREF(__pyx_tuple__376);
  __pyx_tuple__377 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__377)) __PYX_ERR(1, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__377);
  __Pyx_GIVEREF(__pyx_tuple__377);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":107
 * 
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):
 */
  __pyx_tuple__378 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_target, __pyx_n_s_args, __pyx_n_s_managed_target, __pyx_n_s_managed_target); if (unlikely(!__pyx_tuple__378)) __PYX_ERR(1, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__378);
  __Pyx_GIVEREF(__pyx_tuple__378);
  __pyx_codeobj__379 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__378, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_init, 107, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__379)) __PYX_ERR(1, 107, __pyx_L1_error)
  __pyx_tuple__380 = PyTuple_Pack(1, ((PyObject*)__pyx_empty_tuple)); if (unlikely(!__pyx_tuple__380)) __PYX_ERR(1, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__380);
  __Pyx_GIVEREF(__pyx_tuple__380);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":118
 *             self._thread = threading.Thread(target=_run_with_context(target), args=args)
 * 
 *     def setDaemon(self, daemonic):             # <<<<<<<<<<<<<<
 *         self._thread.daemon = daemonic
 * 
 */
  __pyx_tuple__381 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_daemonic); if (unlikely(!__pyx_tuple__381)) __PYX_ERR(1, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__381);
  __Pyx_GIVEREF(__pyx_tuple__381);
  __pyx_codeobj__382 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__381, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_setDaemon, 118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__382)) __PYX_ERR(1, 118, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":121
 *         self._thread.daemon = daemonic
 * 
 *     def start(self):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             _fork_state.active_thread_count.increment()
 */
  __pyx_codeobj__383 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_start, 121, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__383)) __PYX_ERR(1, 121, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":126
 *         self._thread.start()
 * 
 *     def join(self):             # <<<<<<<<<<<<<<
 *         self._thread.join()
 * 
 */
  __pyx_codeobj__384 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_join, 126, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__384)) __PYX_ERR(1, 126, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":130
 * 
 * 
 * def block_if_fork_in_progress(postfork_state_to_reset=None):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:
 */
  __pyx_tuple__385 = PyTuple_Pack(1, __pyx_n_s_postfork_state_to_reset); if (unlikely(!__pyx_tuple__385)) __PYX_ERR(1, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__385);
  __Pyx_GIVEREF(__pyx_tuple__385);
  __pyx_codeobj__386 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__385, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_block_if_fork_in_progress, 130, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__386)) __PYX_ERR(1, 130, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":142
 * 
 * 
 * def enter_user_request_generator():             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.decrement()
 */
  __pyx_codeobj__387 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_enter_user_request_generator, 142, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__387)) __PYX_ERR(1, 142, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":147
 * 
 * 
 * def return_from_user_request_generator():             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.increment()
 */
  __pyx_codeobj__388 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_return_from_user_request_generat, 147, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__388)) __PYX_ERR(1, 147, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":153
 * 
 * 
 * def get_fork_epoch():             # <<<<<<<<<<<<<<
 *     return _fork_state.fork_epoch
 * 
 */
  __pyx_codeobj__389 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_get_fork_epoch, 153, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__389)) __PYX_ERR(1, 153, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":157
 * 
 * 
 * def is_fork_support_enabled():             # <<<<<<<<<<<<<<
 *     return _GRPC_ENABLE_FORK_SUPPORT
 * 
 */
  __pyx_codeobj__390 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_is_fork_support_enabled, 157, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__390)) __PYX_ERR(1, 157, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":161
 * 
 * 
 * def fork_register_channel(channel):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.add(channel)
 */
  __pyx_tuple__391 = PyTuple_Pack(1, __pyx_n_s_channel); if (unlikely(!__pyx_tuple__391)) __PYX_ERR(1, 161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__391);
  __Pyx_GIVEREF(__pyx_tuple__391);
  __pyx_codeobj__392 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__391, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_fork_register_channel, 161, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__392)) __PYX_ERR(1, 161, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":166
 * 
 * 
 * def fork_unregister_channel(channel):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.discard(channel)
 */
  __pyx_codeobj__393 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__391, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_fork_unregister_channel, 166, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__393)) __PYX_ERR(1, 166, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":171
 * 
 * 
 * class _ActiveThreadCount(object):             # <<<<<<<<<<<<<<
 *     def __init__(self):
 *         self._num_active_threads = 0
 */
  __pyx_tuple__394 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__394)) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__394);
  __Pyx_GIVEREF(__pyx_tuple__394);
  __pyx_tuple__395 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__395)) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__395);
  __Pyx_GIVEREF(__pyx_tuple__395);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":172
 * 
 * class _ActiveThreadCount(object):
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self._num_active_threads = 0
 *         self._condition = threading.Condition()
 */
  __pyx_codeobj__396 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_init, 172, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__396)) __PYX_ERR(1, 172, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":176
 *         self._condition = threading.Condition()
 * 
 *     def increment(self):             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             self._num_active_threads += 1
 */
  __pyx_codeobj__397 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_increment, 176, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__397)) __PYX_ERR(1, 176, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":180
 *             self._num_active_threads += 1
 * 
 *     def decrement(self):             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             self._num_active_threads -= 1
 */
  __pyx_codeobj__398 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_decrement, 180, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__398)) __PYX_ERR(1, 180, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":186
 *                 self._condition.notify_all()
 * 
 *     def await_zero_threads(self, timeout_secs):             # <<<<<<<<<<<<<<
 *         end_time = time.time() + timeout_secs
 *         wait_time = timeout_secs
 */
  __pyx_tuple__399 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_timeout_secs, __pyx_n_s_end_time, __pyx_n_s_wait_time); if (unlikely(!__pyx_tuple__399)) __PYX_ERR(1, 186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__399);
  __Pyx_GIVEREF(__pyx_tuple__399);
  __pyx_codeobj__400 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_await_zero_threads, 186, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__400)) __PYX_ERR(1, 186, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":203
 * 
 * 
 * class _ForkState(object):             # <<<<<<<<<<<<<<
 *     def __init__(self):
 *         self.fork_in_progress_condition = threading.Condition()
 */
  __pyx_tuple__401 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__401)) __PYX_ERR(1, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__401);
  __Pyx_GIVEREF(__pyx_tuple__401);
  __pyx_tuple__402 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__402)) __PYX_ERR(1, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__402);
  __Pyx_GIVEREF(__pyx_tuple__402);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":204
 * 
 * class _ForkState(object):
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self.fork_in_progress_condition = threading.Condition()
 *         self.fork_in_progress = False
 */
  __pyx_codeobj__403 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_4, __pyx_n_s_init, 204, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__403)) __PYX_ERR(1, 204, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":61
 * class _EOF:
 * 
 *     def __bool__(self):             # <<<<<<<<<<<<<<
 *         return False
 * 
 */
  __pyx_codeobj__404 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_5, __pyx_n_s_bool, 61, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__404)) __PYX_ERR(6, 61, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":64
 *         return False
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return 0
 * 
 */
  __pyx_codeobj__405 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_5, __pyx_n_s_len, 64, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__405)) __PYX_ERR(6, 64, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":67
 *         return 0
 * 
 *     def _repr(self) -> str:             # <<<<<<<<<<<<<<
 *         return '<grpc.aio.EOF>'
 * 
 */
  __pyx_codeobj__406 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_5, __pyx_n_s_repr, 67, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__406)) __PYX_ERR(6, 67, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":70
 *         return '<grpc.aio.EOF>'
 * 
 *     def __repr__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
 */
  __pyx_codeobj__407 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_5, __pyx_n_s_repr_2, 70, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__407)) __PYX_ERR(6, 70, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":73
 *         return self._repr()
 * 
 *     def __str__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
 */
  __pyx_codeobj__408 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_5, __pyx_n_s_str_2, 73, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__408)) __PYX_ERR(6, 73, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":110
 * 
 * 
 * def schedule_coro_threadsafe(object coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         return loop.create_task(coro)
 */
  __pyx_tuple__409 = PyTuple_Pack(3, __pyx_n_s_coro, __pyx_n_s_loop, __pyx_n_s_runtime_error); if (unlikely(!__pyx_tuple__409)) __PYX_ERR(6, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__409);
  __Pyx_GIVEREF(__pyx_tuple__409);
  __pyx_codeobj__410 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__409, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_5, __pyx_n_s_schedule_coro_threadsafe, 110, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__410)) __PYX_ERR(6, 110, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":123
 * 
 * 
 * def async_generator_to_generator(object agen, object loop):             # <<<<<<<<<<<<<<
 *     """Converts an async generator into generator."""
 *     try:
 */
  __pyx_tuple__411 = PyTuple_Pack(4, __pyx_n_s_agen, __pyx_n_s_loop, __pyx_n_s_future, __pyx_n_s_response); if (unlikely(!__pyx_tuple__411)) __PYX_ERR(6, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__411);
  __Pyx_GIVEREF(__pyx_tuple__411);
  __pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__411, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_5, __pyx_n_s_async_generator_to_generator, 123, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(6, 123, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":141
 * 
 * 
 * async def generator_to_async_generator(object gen, object loop, object thread_pool):             # <<<<<<<<<<<<<<
 *     """Converts a generator into async generator.
 * 
 */
  __pyx_tuple__412 = PyTuple_Pack(8, __pyx_n_s_gen, __pyx_n_s_loop, __pyx_n_s_thread_pool, __pyx_n_s_queue, __pyx_n_s_yield_to_queue, __pyx_n_s_yield_to_queue, __pyx_n_s_future, __pyx_n_s_response); if (unlikely(!__pyx_tuple__412)) __PYX_ERR(6, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__412);
  __Pyx_GIVEREF(__pyx_tuple__412);
  __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_ASYNC_GENERATOR, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__412, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_5, __pyx_n_s_generator_to_async_generator, 141, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(6, 141, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":177
 * 
 * if PY_MAJOR_VERSION >= 3 and PY_MINOR_VERSION >= 7:
 *     def get_working_loop():             # <<<<<<<<<<<<<<
 *         """Returns a running event loop.
 * 
 */
  __pyx_codeobj__413 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_5, __pyx_n_s_get_working_loop, 177, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__413)) __PYX_ERR(6, 177, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":196
 *                     return asyncio.get_event_loop_policy().new_event_loop()
 * else:
 *     def get_working_loop():             # <<<<<<<<<<<<<<
 *         """Returns a running event loop."""
 *         return asyncio.get_event_loop()
 */
  __pyx_codeobj__414 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_5, __pyx_n_s_get_working_loop, 196, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__414)) __PYX_ERR(6, 196, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":201
 * 
 * 
 * def raise_if_not_valid_trailing_metadata(object metadata):             # <<<<<<<<<<<<<<
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 */
  __pyx_tuple__415 = PyTuple_Pack(2, __pyx_n_s_metadata, __pyx_n_s_item); if (unlikely(!__pyx_tuple__415)) __PYX_ERR(6, 201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__415);
  __Pyx_GIVEREF(__pyx_tuple__415);
  __pyx_codeobj__416 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__415, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_5, __pyx_n_s_raise_if_not_valid_trailing_meta, 201, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__416)) __PYX_ERR(6, 201, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":31
 *         self._debug_error_string = debug_error_string
 * 
 *     cpdef grpc_status_code code(self):             # <<<<<<<<<<<<<<
 *         return self._code
 * 
 */
  __pyx_codeobj__417 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_18, __pyx_n_s_code, 31, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__417)) __PYX_ERR(30, 31, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":34
 *         return self._code
 * 
 *     cpdef str details(self):             # <<<<<<<<<<<<<<
 *         return self._details
 * 
 */
  __pyx_codeobj__418 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_18, __pyx_n_s_details, 34, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__418)) __PYX_ERR(30, 34, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":37
 *         return self._details
 * 
 *     cpdef tuple trailing_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._trailing_metadata
 * 
 */
  __pyx_codeobj__419 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_18, __pyx_n_s_trailing_metadata, 37, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__419)) __PYX_ERR(30, 37, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":40
 *         return self._trailing_metadata
 * 
 *     cpdef str debug_error_string(self):             # <<<<<<<<<<<<<<
 *         return self._debug_error_string
 * 
 */
  __pyx_codeobj__420 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_18, __pyx_n_s_debug_error_string, 40, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__420)) __PYX_ERR(30, 40, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__421 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__421)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__422 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__422)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":34
 * 
 * 
 * def _handle_callback_wrapper(CallbackWrapper callback_wrapper, int success):             # <<<<<<<<<<<<<<
 *     CallbackWrapper.functor_run(callback_wrapper.c_functor(), success)
 * 
 */
  __pyx_tuple__423 = PyTuple_Pack(2, __pyx_n_s_callback_wrapper, __pyx_n_s_success); if (unlikely(!__pyx_tuple__423)) __PYX_ERR(7, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__423);
  __Pyx_GIVEREF(__pyx_tuple__423);
  __pyx_codeobj__424 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__423, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_19, __pyx_n_s_handle_callback_wrapper, 34, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__424)) __PYX_ERR(7, 34, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__425 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__425)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 */
  __pyx_codeobj__426 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__426)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":66
 *                 self._has_reader = False
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         if self.loop:
 *             if self._has_reader:
 */
  __pyx_codeobj__427 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_19, __pyx_n_s_close, 66, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__427)) __PYX_ERR(7, 66, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__428 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__428)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__429 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__429)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":91
 *         self._queue = cpp_event_queue()
 * 
 *     def bind_loop(self, object loop):             # <<<<<<<<<<<<<<
 *         if loop in self._loops:
 *             return
 */
  __pyx_tuple__430 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_loop); if (unlikely(!__pyx_tuple__430)) __PYX_ERR(7, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__430);
  __Pyx_GIVEREF(__pyx_tuple__430);
  __pyx_codeobj__431 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__430, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_19, __pyx_n_s_bind_loop, 91, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__431)) __PYX_ERR(7, 91, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":124
 *                         self._handle_events(None)
 * 
 *     def _poll_wrapper(self):             # <<<<<<<<<<<<<<
 *         with nogil:
 *             self._poll()
 */
  __pyx_codeobj__432 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_19, __pyx_n_s_poll_wrapper, 124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__432)) __PYX_ERR(7, 124, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":143
 *         self._write_socket.close()
 * 
 *     def _handle_events(self, object context_loop):             # <<<<<<<<<<<<<<
 *         cdef bytes data
 *         if _has_fd_monitoring:
 */
  __pyx_tuple__433 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_context_loop, __pyx_n_s_data, __pyx_n_s_event, __pyx_n_s_context, __pyx_n_s_loop); if (unlikely(!__pyx_tuple__433)) __PYX_ERR(7, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__433);
  __Pyx_GIVEREF(__pyx_tuple__433);
  __pyx_codeobj__434 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__433, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_19, __pyx_n_s_handle_events, 143, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__434)) __PYX_ERR(7, 143, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__435 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__435)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__436 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__436)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__437 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__437)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__438 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__438)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__439 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__439)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__440 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__440)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":77
 * 
 * 
 * async def execute_batch(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                tuple operations,
 *                                object loop):
 */
  __pyx_tuple__441 = PyTuple_Pack(9, __pyx_n_s_grpc_call_wrapper, __pyx_n_s_operations, __pyx_n_s_loop, __pyx_n_s_batch_operation_tag, __pyx_n_s_future, __pyx_n_s_wrapper, __pyx_n_s_error, __pyx_n_s_grpc_call_error_string, __pyx_n_s_c_event); if (unlikely(!__pyx_tuple__441)) __PYX_ERR(32, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__441);
  __Pyx_GIVEREF(__pyx_tuple__441);
  __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__441, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_20, __pyx_n_s_execute_batch, 77, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(32, 77, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":115
 * 
 * 
 * async def _receive_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                            object loop):
 *     """Retrives parsed messages from Core.
 */
  __pyx_tuple__442 = PyTuple_Pack(5, __pyx_n_s_grpc_call_wrapper, __pyx_n_s_loop, __pyx_n_s_receive_op, __pyx_n_s_ops, __pyx_n_s_e); if (unlikely(!__pyx_tuple__442)) __PYX_ERR(32, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__442);
  __Pyx_GIVEREF(__pyx_tuple__442);
  __pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__442, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_20, __pyx_n_s_receive_message, 115, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(32, 115, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":139
 * 
 * 
 * async def _send_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                         bytes message,
 *                         Operation send_initial_metadata_op,
 */
  __pyx_tuple__443 = PyTuple_Pack(7, __pyx_n_s_grpc_call_wrapper, __pyx_n_s_message, __pyx_n_s_send_initial_metadata_op, __pyx_n_s_write_flag, __pyx_n_s_loop, __pyx_n_s_op, __pyx_n_s_ops); if (unlikely(!__pyx_tuple__443)) __PYX_ERR(32, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__443);
  __Pyx_GIVEREF(__pyx_tuple__443);
  __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__443, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_20, __pyx_n_s_send_message, 139, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(32, 139, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":151
 * 
 * 
 * async def _send_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                  tuple metadata,
 *                                  int flags,
 */
  __pyx_tuple__444 = PyTuple_Pack(6, __pyx_n_s_grpc_call_wrapper, __pyx_n_s_metadata, __pyx_n_s_flags, __pyx_n_s_loop, __pyx_n_s_op, __pyx_n_s_ops); if (unlikely(!__pyx_tuple__444)) __PYX_ERR(32, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__444);
  __Pyx_GIVEREF(__pyx_tuple__444);
  __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__444, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_20, __pyx_n_s_send_initial_metadata, 151, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(32, 151, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":162
 * 
 * 
 * async def _receive_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                     object loop):
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 */
  __pyx_tuple__445 = PyTuple_Pack(4, __pyx_n_s_grpc_call_wrapper, __pyx_n_s_loop, __pyx_n_s_op, __pyx_n_s_ops); if (unlikely(!__pyx_tuple__445)) __PYX_ERR(32, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__445);
  __Pyx_GIVEREF(__pyx_tuple__445);
  __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__445, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_20, __pyx_n_s_receive_initial_metadata, 162, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(32, 162, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":169
 *     return op.initial_metadata()
 * 
 * async def _send_error_status_from_server(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                          grpc_status_code code,
 *                                          str details,
 */
  __pyx_tuple__446 = PyTuple_Pack(8, __pyx_n_s_grpc_call_wrapper, __pyx_n_s_code, __pyx_n_s_details, __pyx_n_s_trailing_metadata, __pyx_n_s_send_initial_metadata_op, __pyx_n_s_loop, __pyx_n_s_op, __pyx_n_s_ops); if (unlikely(!__pyx_tuple__446)) __PYX_ERR(32, 169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__446);
  __Pyx_GIVEREF(__pyx_tuple__446);
  __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__446, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_20, __pyx_n_s_send_error_status_from_server, 169, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(32, 169, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":17
 * import enum
 * 
 * cdef str _GRPC_ASYNCIO_ENGINE = os.environ.get('GRPC_ASYNCIO_ENGINE', 'poller').upper()             # <<<<<<<<<<<<<<
 * cdef _AioState _global_aio_state = _AioState()
 * 
 */
  __pyx_tuple__447 = PyTuple_Pack(2, __pyx_n_s_GRPC_ASYNCIO_ENGINE, __pyx_n_s_poller); if (unlikely(!__pyx_tuple__447)) __PYX_ERR(33, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__447);
  __Pyx_GIVEREF(__pyx_tuple__447);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__448 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__448)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__449 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__449)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":68
 * 
 * 
 * def _grpc_shutdown_wrapper(_):             # <<<<<<<<<<<<<<
 *     """A thin Python wrapper of Core's shutdown function.
 * 
 */
  __pyx_tuple__450 = PyTuple_Pack(1, __pyx_n_s__57); if (unlikely(!__pyx_tuple__450)) __PYX_ERR(33, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__450);
  __Pyx_GIVEREF(__pyx_tuple__450);
  __pyx_codeobj__451 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__450, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_21, __pyx_n_s_grpc_shutdown_wrapper, 68, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__451)) __PYX_ERR(33, 68, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":91
 * 
 * 
 * cpdef init_grpc_aio():             # <<<<<<<<<<<<<<
 *     """Initializes the gRPC AsyncIO module.
 * 
 */
  __pyx_codeobj__452 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_21, __pyx_n_s_init_grpc_aio, 91, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__452)) __PYX_ERR(33, 91, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":104
 * 
 * 
 * cpdef shutdown_grpc_aio():             # <<<<<<<<<<<<<<
 *     """Shuts down the gRPC AsyncIO module.
 * 
 */
  __pyx_codeobj__453 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_21, __pyx_n_s_shutdown_grpc_aio, 104, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__453)) __PYX_ERR(33, 104, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":69
 *         shutdown_grpc_aio()
 * 
 *     def _repr(self) -> str:             # <<<<<<<<<<<<<<
 *         """Assembles the RPC representation string."""
 *         # This needs to be loaded at run time once everything
 */
  __pyx_tuple__454 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_common); if (unlikely(!__pyx_tuple__454)) __PYX_ERR(34, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__454);
  __Pyx_GIVEREF(__pyx_tuple__454);
  __pyx_codeobj__455 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__454, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_repr, 69, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__455)) __PYX_ERR(34, 69, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":170
 *         self._waiters_initial_metadata = []
 * 
 *     def add_done_callback(self, callback):             # <<<<<<<<<<<<<<
 *         if self.done():
 *             callback()
 */
  __pyx_tuple__456 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_callback); if (unlikely(!__pyx_tuple__456)) __PYX_ERR(34, 170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__456);
  __Pyx_GIVEREF(__pyx_tuple__456);
  __pyx_codeobj__457 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__456, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_add_done_callback, 170, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__457)) __PYX_ERR(34, 170, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":176
 *             self._done_callbacks.append(callback)
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         if self._deadline is None:
 *             return None
 */
  __pyx_codeobj__458 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_time_remaining, 176, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__458)) __PYX_ERR(34, 176, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":182
 *             return max(0, self._deadline - time.time())
 * 
 *     def cancel(self, str details):             # <<<<<<<<<<<<<<
 *         """Cancels the RPC in Core with given RPC status.
 * 
 */
  __pyx_tuple__459 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_details, __pyx_n_s_details_bytes, __pyx_n_s_c_details, __pyx_n_s_error); if (unlikely(!__pyx_tuple__459)) __PYX_ERR(34, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__459);
  __Pyx_GIVEREF(__pyx_tuple__459);
  __pyx_codeobj__460 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__459, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_cancel, 182, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__460)) __PYX_ERR(34, 182, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":213
 *         assert error == GRPC_CALL_OK
 * 
 *     def done(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC call has finished.
 * 
 */
  __pyx_codeobj__461 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_done, 213, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__461)) __PYX_ERR(34, 213, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":224
 *         return self._status is not None
 * 
 *     def cancelled(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC was cancelled.
 * 
 */
  __pyx_codeobj__462 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_cancelled, 224, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__462)) __PYX_ERR(34, 224, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":235
 *         return self._status.code() == StatusCode.cancelled
 * 
 *     async def status(self):             # <<<<<<<<<<<<<<
 *         """Returns the status of the RPC call.
 * 
 */
  __pyx_tuple__463 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_future); if (unlikely(!__pyx_tuple__463)) __PYX_ERR(34, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__463);
  __Pyx_GIVEREF(__pyx_tuple__463);
  __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__463, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_status, 235, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(34, 235, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":254
 *         return self._status
 * 
 *     def is_ok(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC is ended with ok."""
 *         return self.done() and self._status.code() == StatusCode.ok
 */
  __pyx_codeobj__464 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_is_ok, 254, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__464)) __PYX_ERR(34, 254, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":258
 *         return self.done() and self._status.code() == StatusCode.ok
 * 
 *     async def initial_metadata(self):             # <<<<<<<<<<<<<<
 *         """Returns the initial metadata of the RPC call.
 * 
 */
  __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__463, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_initial_metadata, 258, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(34, 258, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":276
 *         return self._initial_metadata
 * 
 *     def is_locally_cancelled(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC was cancelled locally.
 * 
 */
  __pyx_codeobj__465 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_is_locally_cancelled, 276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__465)) __PYX_ERR(34, 276, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":288
 *         return False
 * 
 *     def set_internal_error(self, str error_str):             # <<<<<<<<<<<<<<
 *         self._set_status(AioRpcStatus(
 *             StatusCode.internal,
 */
  __pyx_tuple__466 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_error_str); if (unlikely(!__pyx_tuple__466)) __PYX_ERR(34, 288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__466);
  __Pyx_GIVEREF(__pyx_tuple__466);
  __pyx_codeobj__467 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__466, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_set_internal_error, 288, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__467)) __PYX_ERR(34, 288, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":296
 *         ))
 * 
 *     async def unary_unary(self,             # <<<<<<<<<<<<<<
 *                           bytes request,
 *                           tuple outbound_initial_metadata,
 */
  __pyx_tuple__468 = PyTuple_Pack(12, __pyx_n_s_self, __pyx_n_s_request, __pyx_n_s_outbound_initial_metadata, __pyx_n_s_context, __pyx_n_s_ops, __pyx_n_s_initial_metadata_op, __pyx_n_s_send_message_op, __pyx_n_s_send_close_op, __pyx_n_s_receive_initial_metadata_op, __pyx_n_s_receive_message_op, __pyx_n_s_receive_status_on_client_op, __pyx_n_s_code); if (unlikely(!__pyx_tuple__468)) __PYX_ERR(34, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__468);
  __Pyx_GIVEREF(__pyx_tuple__468);
  __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__468, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_unary_unary, 296, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(34, 296, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":347
 *             return None
 * 
 *     async def _handle_status_once_received(self):             # <<<<<<<<<<<<<<
 *         """Handles the status sent by peer once received."""
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 */
  __pyx_tuple__469 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_op, __pyx_n_s_ops); if (unlikely(!__pyx_tuple__469)) __PYX_ERR(34, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__469);
  __Pyx_GIVEREF(__pyx_tuple__469);
  __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__469, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_handle_status_once_received, 347, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(34, 347, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":364
 *         ))
 * 
 *     async def receive_serialized_message(self):             # <<<<<<<<<<<<<<
 *         """Receives one single raw message in bytes."""
 *         cdef bytes received_message
 */
  __pyx_tuple__470 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_received_message); if (unlikely(!__pyx_tuple__470)) __PYX_ERR(34, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__470);
  __Pyx_GIVEREF(__pyx_tuple__470);
  __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__470, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_receive_serialized_message, 364, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(34, 364, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":381
 *             return EOF
 * 
 *     async def send_serialized_message(self, bytes message):             # <<<<<<<<<<<<<<
 *         """Sends one single raw message in bytes."""
 *         await _send_message(self,
 */
  __pyx_tuple__471 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_message); if (unlikely(!__pyx_tuple__471)) __PYX_ERR(34, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__471);
  __Pyx_GIVEREF(__pyx_tuple__471);
  __pyx_codeobj__64 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__471, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_send_serialized_message, 381, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(34, 381, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":389
 *                             self._loop)
 * 
 *     async def send_receive_close(self):             # <<<<<<<<<<<<<<
 *         """Half close the RPC on the client-side."""
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 */
  __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__469, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_send_receive_close, 389, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(34, 389, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":395
 *         await execute_batch(self, ops, self._loop)
 * 
 *     async def initiate_unary_stream(self,             # <<<<<<<<<<<<<<
 *                            bytes request,
 *                            tuple outbound_initial_metadata,
 */
  __pyx_tuple__472 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_request, __pyx_n_s_outbound_initial_metadata, __pyx_n_s_context, __pyx_n_s_status_task, __pyx_n_s_outbound_ops, __pyx_n_s_initial_metadata_op, __pyx_n_s_send_message_op, __pyx_n_s_send_close_op, __pyx_n_s_batch_error); if (unlikely(!__pyx_tuple__472)) __PYX_ERR(34, 395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__472);
  __Pyx_GIVEREF(__pyx_tuple__472);
  __pyx_codeobj__66 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__472, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_initiate_unary_stream, 395, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__66)) __PYX_ERR(34, 395, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":437
 *             await status_task
 * 
 *     async def stream_unary(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 */
  __pyx_tuple__473 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_outbound_initial_metadata, __pyx_n_s_metadata_sent_observer, __pyx_n_s_context, __pyx_n_s_inbound_ops, __pyx_n_s_receive_message_op, __pyx_n_s_receive_status_on_client_op, __pyx_n_s_code); if (unlikely(!__pyx_tuple__473)) __PYX_ERR(34, 437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__473);
  __Pyx_GIVEREF(__pyx_tuple__473);
  __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__473, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_stream_unary, 437, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(34, 437, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":496
 *             return None
 * 
 *     async def initiate_stream_stream(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 */
  __pyx_tuple__474 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_outbound_initial_metadata, __pyx_n_s_metadata_sent_observer, __pyx_n_s_context, __pyx_n_s_status_task, __pyx_n_s_batch_error); if (unlikely(!__pyx_tuple__474)) __PYX_ERR(34, 496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__474);
  __Pyx_GIVEREF(__pyx_tuple__474);
  __pyx_codeobj__68 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__474, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_22, __pyx_n_s_initiate_stream_stream, 496, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__68)) __PYX_ERR(34, 496, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__475 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__475)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__476 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__476)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":61
 *         return f"<{class_name} {id_}>"
 * 
 *     def check_connectivity_state(self, bint try_to_connect):             # <<<<<<<<<<<<<<
 *         """A Cython wrapper for Core's check connectivity state API."""
 *         if self._status == AIO_CHANNEL_STATUS_DESTROYED:
 */
  __pyx_codeobj__477 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__156, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_23, __pyx_n_s_check_connectivity_state, 61, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__477)) __PYX_ERR(8, 61, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":71
 *             )
 * 
 *     async def watch_connectivity_state(self,             # <<<<<<<<<<<<<<
 *                                        grpc_connectivity_state last_observed_state,
 *                                        object deadline):
 */
  __pyx_tuple__478 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_last_observed_state, __pyx_n_s_deadline, __pyx_n_s_c_deadline, __pyx_n_s_future, __pyx_n_s_wrapper); if (unlikely(!__pyx_tuple__478)) __PYX_ERR(8, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__478);
  __Pyx_GIVEREF(__pyx_tuple__478);
  __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__478, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_23, __pyx_n_s_watch_connectivity_state, 71, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(8, 71, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":103
 *             return True
 * 
 *     def closing(self):             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_CLOSING
 * 
 */
  __pyx_codeobj__479 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_23, __pyx_n_s_closing, 103, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__479)) __PYX_ERR(8, 103, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":106
 *         self._status = AIO_CHANNEL_STATUS_CLOSING
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_DESTROYED
 *         grpc_channel_destroy(self.channel)
 */
  __pyx_codeobj__480 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_23, __pyx_n_s_close, 106, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__480)) __PYX_ERR(8, 106, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":110
 *         grpc_channel_destroy(self.channel)
 * 
 *     def closed(self):             # <<<<<<<<<<<<<<
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)
 * 
 */
  __pyx_codeobj__481 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_23, __pyx_n_s_closed, 110, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__481)) __PYX_ERR(8, 110, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":113
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)
 * 
 *     def call(self,             # <<<<<<<<<<<<<<
 *              bytes method,
 *              object deadline,
 */
  __pyx_tuple__482 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_method, __pyx_n_s_deadline, __pyx_n_s_python_call_credentials, __pyx_n_s_wait_for_ready, __pyx_n_s_cython_call_credentials); if (unlikely(!__pyx_tuple__482)) __PYX_ERR(8, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__482);
  __Pyx_GIVEREF(__pyx_tuple__482);
  __pyx_codeobj__483 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__482, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_23, __pyx_n_s_call, 113, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__483)) __PYX_ERR(8, 113, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__484 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__484)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__485 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__485)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__486 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__486)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__487 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__487)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__488 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__488)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__489 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__489)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":127
 *         self._loop = loop
 * 
 *     async def read(self):             # <<<<<<<<<<<<<<
 *         cdef bytes raw_message
 *         self._rpc_state.raise_for_termination()
 */
  __pyx_tuple__490 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_raw_message); if (unlikely(!__pyx_tuple__490)) __PYX_ERR(9, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__490);
  __Pyx_GIVEREF(__pyx_tuple__490);
  __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__490, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_read, 127, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(9, 127, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":140
 *                             raw_message)
 * 
 *     async def write(self, object message):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
 */
  __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__471, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_write, 140, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(9, 140, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":150
 *         self._rpc_state.metadata_sent = True
 * 
 *     async def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
 */
  __pyx_tuple__491 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_metadata); if (unlikely(!__pyx_tuple__491)) __PYX_ERR(9, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__491);
  __Pyx_GIVEREF(__pyx_tuple__491);
  __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__491, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_send_initial_metadata_2, 150, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(9, 150, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":164
 *             self._rpc_state.metadata_sent = True
 * 
 *     async def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
 */
  __pyx_tuple__492 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_code, __pyx_n_s_details, __pyx_n_s_trailing_metadata, __pyx_n_s_actual_code); if (unlikely(!__pyx_tuple__492)) __PYX_ERR(9, 164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__492);
  __Pyx_GIVEREF(__pyx_tuple__492);
  __pyx_codeobj__77 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__492, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_abort, 164, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__77)) __PYX_ERR(9, 164, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":203
 *             raise self._rpc_state.abort_exception
 * 
 *     async def abort_with_status(self, object status):             # <<<<<<<<<<<<<<
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
 */
  __pyx_tuple__493 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_status); if (unlikely(!__pyx_tuple__493)) __PYX_ERR(9, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__493);
  __Pyx_GIVEREF(__pyx_tuple__493);
  __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__493, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_abort_with_status, 203, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(9, 203, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":206
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
 *     def set_trailing_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         raise_if_not_valid_trailing_metadata(metadata)
 *         self._rpc_state.trailing_metadata = tuple(metadata)
 */
  __pyx_codeobj__494 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__491, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_set_trailing_metadata, 206, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__494)) __PYX_ERR(9, 206, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":210
 *         self._rpc_state.trailing_metadata = tuple(metadata)
 * 
 *     def trailing_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.trailing_metadata
 * 
 */
  __pyx_codeobj__495 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_trailing_metadata, 210, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__495)) __PYX_ERR(9, 210, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":213
 *         return self._rpc_state.trailing_metadata
 * 
 *     def invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.invocation_metadata()
 * 
 */
  __pyx_codeobj__496 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_invocation_metadata, 213, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__496)) __PYX_ERR(9, 213, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":216
 *         return self._rpc_state.invocation_metadata()
 * 
 *     def set_code(self, object code):             # <<<<<<<<<<<<<<
 *         self._rpc_state.status_code = get_status_code(code)
 *         self._rpc_state.py_status_code = code
 */
  __pyx_tuple__497 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_code); if (unlikely(!__pyx_tuple__497)) __PYX_ERR(9, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__497);
  __Pyx_GIVEREF(__pyx_tuple__497);
  __pyx_codeobj__498 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__497, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_set_code, 216, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__498)) __PYX_ERR(9, 216, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":220
 *         self._rpc_state.py_status_code = code
 * 
 *     def code(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.py_status_code
 * 
 */
  __pyx_codeobj__499 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_code, 220, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__499)) __PYX_ERR(9, 220, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":223
 *         return self._rpc_state.py_status_code
 * 
 *     def set_details(self, str details):             # <<<<<<<<<<<<<<
 *         self._rpc_state.status_details = details
 * 
 */
  __pyx_tuple__500 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_details); if (unlikely(!__pyx_tuple__500)) __PYX_ERR(9, 223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__500);
  __Pyx_GIVEREF(__pyx_tuple__500);
  __pyx_codeobj__501 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__500, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_set_details, 223, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__501)) __PYX_ERR(9, 223, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":226
 *         self._rpc_state.status_details = details
 * 
 *     def details(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_details
 * 
 */
  __pyx_codeobj__502 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_details, 226, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__502)) __PYX_ERR(9, 226, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":229
 *         return self._rpc_state.status_details
 * 
 *     def set_compression(self, object compression):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.metadata_sent:
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')
 */
  __pyx_tuple__503 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_compression); if (unlikely(!__pyx_tuple__503)) __PYX_ERR(9, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__503);
  __Pyx_GIVEREF(__pyx_tuple__503);
  __pyx_codeobj__504 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__503, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_set_compression, 229, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__504)) __PYX_ERR(9, 229, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":235
 *             self._rpc_state.compression_algorithm = compression
 * 
 *     def disable_next_message_compression(self):             # <<<<<<<<<<<<<<
 *         self._rpc_state.disable_next_compression = True
 * 
 */
  __pyx_codeobj__505 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_disable_next_message_compression, 235, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__505)) __PYX_ERR(9, 235, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":238
 *         self._rpc_state.disable_next_compression = True
 * 
 *     def peer(self):             # <<<<<<<<<<<<<<
 *         cdef char *c_peer = NULL
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)
 */
  __pyx_tuple__506 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_c_peer, __pyx_n_s_peer); if (unlikely(!__pyx_tuple__506)) __PYX_ERR(9, 238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__506);
  __Pyx_GIVEREF(__pyx_tuple__506);
  __pyx_codeobj__507 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__506, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_peer, 238, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__507)) __PYX_ERR(9, 238, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":245
 *         return peer
 * 
 *     def peer_identities(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 */
  __pyx_tuple__508 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_query_call, __pyx_n_s_identities); if (unlikely(!__pyx_tuple__508)) __PYX_ERR(9, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__508);
  __Pyx_GIVEREF(__pyx_tuple__508);
  __pyx_codeobj__509 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__508, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_peer_identities, 245, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__509)) __PYX_ERR(9, 245, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":252
 *         return identities
 * 
 *     def peer_identity_key(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 */
  __pyx_tuple__510 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_query_call, __pyx_n_s_identity_key); if (unlikely(!__pyx_tuple__510)) __PYX_ERR(9, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__510);
  __Pyx_GIVEREF(__pyx_tuple__510);
  __pyx_codeobj__511 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__510, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_peer_identity_key, 252, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__511)) __PYX_ERR(9, 252, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":262
 *             return None
 * 
 *     def auth_context(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 */
  __pyx_tuple__512 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_query_call, __pyx_n_s_bytes_ctx, __pyx_n_s_ctx, __pyx_n_s_key); if (unlikely(!__pyx_tuple__512)) __PYX_ERR(9, 262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__512);
  __Pyx_GIVEREF(__pyx_tuple__512);
  __pyx_codeobj__513 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__512, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_auth_context, 262, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__513)) __PYX_ERR(9, 262, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":275
 *             return {}
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.details.deadline.seconds == _GPR_INF_FUTURE.seconds:
 *             return None
 */
  __pyx_codeobj__514 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_time_remaining, 275, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__514)) __PYX_ERR(9, 275, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":281
 *             return max(_time_from_timespec(self._rpc_state.details.deadline) - time.time(), 0)
 * 
 *     def add_done_callback(self, callback):             # <<<<<<<<<<<<<<
 *         cb = functools.partial(callback, self)
 *         self._rpc_state.callbacks.append(cb)
 */
  __pyx_tuple__515 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_callback, __pyx_n_s_cb); if (unlikely(!__pyx_tuple__515)) __PYX_ERR(9, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__515);
  __Pyx_GIVEREF(__pyx_tuple__515);
  __pyx_codeobj__516 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__515, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_add_done_callback, 281, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__516)) __PYX_ERR(9, 281, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":285
 *         self._rpc_state.callbacks.append(cb)
 * 
 *     def done(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_sent
 * 
 */
  __pyx_codeobj__517 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_done, 285, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__517)) __PYX_ERR(9, 285, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":288
 *         return self._rpc_state.status_sent
 * 
 *     def cancelled(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_code == StatusCode.cancelled
 * 
 */
  __pyx_codeobj__518 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_cancelled, 288, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__518)) __PYX_ERR(9, 288, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__519 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__519)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__520 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__520)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":301
 *         self._loop = context._loop
 * 
 *     def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
 */
  __pyx_tuple__521 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_code, __pyx_n_s_details, __pyx_n_s_trailing_metadata, __pyx_n_s_future); if (unlikely(!__pyx_tuple__521)) __PYX_ERR(9, 301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__521);
  __Pyx_GIVEREF(__pyx_tuple__521);
  __pyx_codeobj__522 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__521, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_abort, 301, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__522)) __PYX_ERR(9, 301, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":311
 *         future.exception()
 * 
 *     def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.send_initial_metadata(metadata),
 */
  __pyx_tuple__523 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_metadata, __pyx_n_s_future); if (unlikely(!__pyx_tuple__523)) __PYX_ERR(9, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__523);
  __Pyx_GIVEREF(__pyx_tuple__523);
  __pyx_codeobj__524 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__523, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_send_initial_metadata_2, 311, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__524)) __PYX_ERR(9, 311, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":317
 *         future.result()
 * 
 *     def set_trailing_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._context.set_trailing_metadata(metadata)
 * 
 */
  __pyx_codeobj__525 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__491, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_set_trailing_metadata, 317, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__525)) __PYX_ERR(9, 317, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":320
 *         self._context.set_trailing_metadata(metadata)
 * 
 *     def invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._context.invocation_metadata()
 * 
 */
  __pyx_codeobj__526 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_invocation_metadata, 320, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__526)) __PYX_ERR(9, 320, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":323
 *         return self._context.invocation_metadata()
 * 
 *     def set_code(self, object code):             # <<<<<<<<<<<<<<
 *         self._context.set_code(code)
 * 
 */
  __pyx_codeobj__527 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__497, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_set_code, 323, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__527)) __PYX_ERR(9, 323, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":326
 *         self._context.set_code(code)
 * 
 *     def set_details(self, str details):             # <<<<<<<<<<<<<<
 *         self._context.set_details(details)
 * 
 */
  __pyx_codeobj__528 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__500, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_set_details, 326, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__528)) __PYX_ERR(9, 326, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":329
 *         self._context.set_details(details)
 * 
 *     def set_compression(self, object compression):             # <<<<<<<<<<<<<<
 *         self._context.set_compression(compression)
 * 
 */
  __pyx_codeobj__529 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__503, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_set_compression, 329, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__529)) __PYX_ERR(9, 329, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":332
 *         self._context.set_compression(compression)
 * 
 *     def disable_next_message_compression(self):             # <<<<<<<<<<<<<<
 *         self._context.disable_next_message_compression()
 * 
 */
  __pyx_codeobj__530 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_disable_next_message_compression, 332, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__530)) __PYX_ERR(9, 332, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":335
 *         self._context.disable_next_message_compression()
 * 
 *     def add_callback(self, object callback):             # <<<<<<<<<<<<<<
 *         self._callbacks.append(callback)
 * 
 */
  __pyx_codeobj__531 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__456, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_add_callback, 335, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__531)) __PYX_ERR(9, 335, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":338
 *         self._callbacks.append(callback)
 * 
 *     def peer(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer()
 * 
 */
  __pyx_codeobj__532 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_peer, 338, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__532)) __PYX_ERR(9, 338, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":341
 *         return self._context.peer()
 * 
 *     def peer_identities(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer_identities()
 * 
 */
  __pyx_codeobj__533 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_peer_identities, 341, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__533)) __PYX_ERR(9, 341, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":344
 *         return self._context.peer_identities()
 * 
 *     def peer_identity_key(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer_identity_key()
 * 
 */
  __pyx_codeobj__534 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_peer_identity_key, 344, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__534)) __PYX_ERR(9, 344, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":347
 *         return self._context.peer_identity_key()
 * 
 *     def auth_context(self):             # <<<<<<<<<<<<<<
 *         return self._context.auth_context()
 * 
 */
  __pyx_codeobj__535 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_auth_context, 347, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__535)) __PYX_ERR(9, 347, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":350
 *         return self._context.auth_context()
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         return self._context.time_remaining()
 * 
 */
  __pyx_codeobj__536 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_time_remaining, 350, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__536)) __PYX_ERR(9, 350, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__537 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__537)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__538 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__538)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":354
 * 
 * 
 * async def _run_interceptor(object interceptors, object query_handler,             # <<<<<<<<<<<<<<
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)
 */
  __pyx_tuple__539 = PyTuple_Pack(5, __pyx_n_s_interceptors, __pyx_n_s_query_handler, __pyx_n_s_handler_call_details, __pyx_n_s_interceptor, __pyx_n_s_continuation); if (unlikely(!__pyx_tuple__539)) __PYX_ERR(9, 354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__539);
  __Pyx_GIVEREF(__pyx_tuple__539);
  __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__539, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_run_interceptor, 354, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(9, 354, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":365
 * 
 * 
 * def _is_async_handler(object handler):             # <<<<<<<<<<<<<<
 *     """Inspect if a method handler is async or sync."""
 *     return inspect.isawaitable(handler) or inspect.iscoroutinefunction(handler) or inspect.isasyncgenfunction(handler)
 */
  __pyx_tuple__540 = PyTuple_Pack(1, __pyx_n_s_handler); if (unlikely(!__pyx_tuple__540)) __PYX_ERR(9, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__540);
  __Pyx_GIVEREF(__pyx_tuple__540);
  __pyx_codeobj__541 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__540, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_is_async_handler, 365, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__541)) __PYX_ERR(9, 365, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":370
 * 
 * 
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,             # <<<<<<<<<<<<<<
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
 */
  __pyx_tuple__542 = PyTuple_Pack(7, __pyx_n_s_method, __pyx_n_s_metadata, __pyx_n_s_generic_handlers, __pyx_n_s_interceptors, __pyx_n_s_query_handlers, __pyx_n_s_query_handlers, __pyx_n_s_handler_call_details); if (unlikely(!__pyx_tuple__542)) __PYX_ERR(9, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__542);
  __Pyx_GIVEREF(__pyx_tuple__542);
  __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__542, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_find_method_handler, 370, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(9, 370, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":389
 * 
 * 
 * async def _finish_handler_with_unary_response(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                               object unary_handler,
 *                                               object request,
 */
  __pyx_tuple__543 = PyTuple_Pack(11, __pyx_n_s_rpc_state, __pyx_n_s_unary_handler, __pyx_n_s_request, __pyx_n_s_servicer_context, __pyx_n_s_response_serializer, __pyx_n_s_loop, __pyx_n_s_response_message, __pyx_n_s_sync_servicer_context, __pyx_n_s_callback, __pyx_n_s_response_raw, __pyx_n_s_finish_ops); if (unlikely(!__pyx_tuple__543)) __PYX_ERR(9, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__543);
  __Pyx_GIVEREF(__pyx_tuple__543);
  __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__543, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_finish_handler_with_unary_respo, 389, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(9, 389, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":460
 * 
 * 
 * async def _finish_handler_with_stream_responses(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                                 object stream_handler,
 *                                                 object request,
 */
  __pyx_tuple__544 = PyTuple_Pack(11, __pyx_n_s_rpc_state, __pyx_n_s_stream_handler, __pyx_n_s_request, __pyx_n_s_servicer_context, __pyx_n_s_loop, __pyx_n_s_async_response_generator, __pyx_n_s_response_message, __pyx_n_s_sync_servicer_context, __pyx_n_s_gen, __pyx_n_s_op, __pyx_n_s_finish_ops); if (unlikely(!__pyx_tuple__544)) __PYX_ERR(9, 460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__544);
  __Pyx_GIVEREF(__pyx_tuple__544);
  __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__544, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_finish_handler_with_stream_resp, 460, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(9, 460, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":530
 * 
 * 
 * async def _handle_unary_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                   RPCState rpc_state,
 *                                   object loop):
 */
  __pyx_tuple__545 = PyTuple_Pack(6, __pyx_n_s_method_handler, __pyx_n_s_rpc_state, __pyx_n_s_loop, __pyx_n_s_request_raw, __pyx_n_s_request_message, __pyx_n_s_servicer_context); if (unlikely(!__pyx_tuple__545)) __PYX_ERR(9, 530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__545);
  __Pyx_GIVEREF(__pyx_tuple__545);
  __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__545, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_handle_unary_unary_rpc, 530, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(9, 530, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":564
 * 
 * 
 * async def _handle_unary_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
 */
  __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__545, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_handle_unary_stream_rpc, 564, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(9, 564, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":603
 *         self._agen = None
 * 
 *     async def _async_message_receiver(self):             # <<<<<<<<<<<<<<
 *         """An async generator that receives messages."""
 *         cdef object message
 */
  __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_ASYNC_GENERATOR, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__471, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_async_message_receiver, 603, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(9, 603, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__546 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__546)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__547 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__547)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":623
 * 
 * 
 * async def _handle_stream_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
 */
  __pyx_tuple__548 = PyTuple_Pack(5, __pyx_n_s_method_handler, __pyx_n_s_rpc_state, __pyx_n_s_loop, __pyx_n_s_servicer_context, __pyx_n_s_request_iterator); if (unlikely(!__pyx_tuple__548)) __PYX_ERR(9, 623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__548);
  __Pyx_GIVEREF(__pyx_tuple__548);
  __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__548, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_handle_stream_unary_rpc, 623, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(9, 623, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":655
 * 
 * 
 * async def _handle_stream_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                     RPCState rpc_state,
 *                                     object loop):
 */
  __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__548, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_handle_stream_stream_rpc, 655, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(9, 655, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":686
 * 
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         try:
 */
  __pyx_tuple__549 = PyTuple_Pack(5, __pyx_n_s_rpc_state, __pyx_n_s_rpc_coro, __pyx_n_s_loop, __pyx_n_s_e, __pyx_n_s_status_code); if (unlikely(!__pyx_tuple__549)) __PYX_ERR(9, 686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__549);
  __Pyx_GIVEREF(__pyx_tuple__549);
  __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__549, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_handle_exceptions, 686, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(9, 686, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":755
 * 
 * 
 * async def _handle_cancellation_from_core(object rpc_task,             # <<<<<<<<<<<<<<
 *                                          RPCState rpc_state,
 *                                          object loop):
 */
  __pyx_tuple__550 = PyTuple_Pack(5, __pyx_n_s_rpc_task, __pyx_n_s_rpc_state, __pyx_n_s_loop, __pyx_n_s_op, __pyx_n_s_ops); if (unlikely(!__pyx_tuple__550)) __PYX_ERR(9, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__550);
  __Pyx_GIVEREF(__pyx_tuple__550);
  __pyx_codeobj__95 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__550, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_handle_cancellation_from_core, 755, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__95)) __PYX_ERR(9, 755, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":772
 * 
 * 
 * async def _schedule_rpc_coro(object rpc_coro,             # <<<<<<<<<<<<<<
 *                              RPCState rpc_state,
 *                              object loop):
 */
  __pyx_tuple__551 = PyTuple_Pack(4, __pyx_n_s_rpc_coro, __pyx_n_s_rpc_state, __pyx_n_s_loop, __pyx_n_s_rpc_task); if (unlikely(!__pyx_tuple__551)) __PYX_ERR(9, 772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__551);
  __Pyx_GIVEREF(__pyx_tuple__551);
  __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__551, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_schedule_rpc_coro, 772, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(9, 772, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":795
 * 
 * 
 * async def _handle_rpc(list generic_handlers, tuple interceptors,             # <<<<<<<<<<<<<<
 *                       RPCState rpc_state, object loop, bint concurrency_exceeded):
 *     cdef object method_handler
 */
  __pyx_tuple__552 = PyTuple_Pack(6, __pyx_n_s_generic_handlers, __pyx_n_s_interceptors, __pyx_n_s_rpc_state, __pyx_n_s_loop, __pyx_n_s_concurrency_exceeded, __pyx_n_s_method_handler); if (unlikely(!__pyx_tuple__552)) __PYX_ERR(9, 795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__552);
  __Pyx_GIVEREF(__pyx_tuple__552);
  __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__552, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_handle_rpc, 795, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(9, 795, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":879
 *         self.limiter_concurrency_exceeded = False
 * 
 *     def check_before_request_call(self):             # <<<<<<<<<<<<<<
 *         if self._active_rpcs >= self._maximum_concurrent_rpcs:
 *             self.limiter_concurrency_exceeded = True
 */
  __pyx_codeobj__553 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_check_before_request_call, 879, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__553)) __PYX_ERR(9, 879, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":885
 *             self._active_rpcs += 1
 * 
 *     def _decrease_active_rpcs_count(self, unused_future):             # <<<<<<<<<<<<<<
 *         self._active_rpcs -= 1
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:
 */
  __pyx_tuple__554 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_unused_future); if (unlikely(!__pyx_tuple__554)) __PYX_ERR(9, 885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__554);
  __Pyx_GIVEREF(__pyx_tuple__554);
  __pyx_codeobj__555 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__554, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_decrease_active_rpcs_count, 885, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__555)) __PYX_ERR(9, 885, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":890
 *             self.limiter_concurrency_exceeded = False
 * 
 *     def decrease_once_finished(self, object rpc_task):             # <<<<<<<<<<<<<<
 *         rpc_task.add_done_callback(self._decrease_active_rpcs_count)
 * 
 */
  __pyx_tuple__556 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_rpc_task); if (unlikely(!__pyx_tuple__556)) __PYX_ERR(9, 890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__556);
  __Pyx_GIVEREF(__pyx_tuple__556);
  __pyx_codeobj__557 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__556, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_decrease_once_finished, 890, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__557)) __PYX_ERR(9, 890, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__558 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__558)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__559 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__559)) __PYX_ERR(10, 3, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":932
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)
 * 
 *     def add_generic_rpc_handlers(self, object generic_rpc_handlers):             # <<<<<<<<<<<<<<
 *         self._generic_handlers.extend(generic_rpc_handlers)
 * 
 */
  __pyx_tuple__560 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_generic_rpc_handlers); if (unlikely(!__pyx_tuple__560)) __PYX_ERR(9, 932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__560);
  __Pyx_GIVEREF(__pyx_tuple__560);
  __pyx_codeobj__561 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__560, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_add_generic_rpc_handlers, 932, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__561)) __PYX_ERR(9, 932, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":935
 *         self._generic_handlers.extend(generic_rpc_handlers)
 * 
 *     def add_insecure_port(self, address):             # <<<<<<<<<<<<<<
 *         return self._server.add_http2_port(address)
 * 
 */
  __pyx_tuple__562 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_address); if (unlikely(!__pyx_tuple__562)) __PYX_ERR(9, 935, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__562);
  __Pyx_GIVEREF(__pyx_tuple__562);
  __pyx_codeobj__563 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__562, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_add_insecure_port, 935, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__563)) __PYX_ERR(9, 935, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":938
 *         return self._server.add_http2_port(address)
 * 
 *     def add_secure_port(self, address, server_credentials):             # <<<<<<<<<<<<<<
 *         return self._server.add_http2_port(address,
 *                                            server_credentials._credentials)
 */
  __pyx_tuple__564 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_address, __pyx_n_s_server_credentials); if (unlikely(!__pyx_tuple__564)) __PYX_ERR(9, 938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__564);
  __Pyx_GIVEREF(__pyx_tuple__564);
  __pyx_codeobj__565 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__564, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_add_secure_port, 938, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__565)) __PYX_ERR(9, 938, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":942
 *                                            server_credentials._credentials)
 * 
 *     async def _request_call(self):             # <<<<<<<<<<<<<<
 *         cdef grpc_call_error error
 *         cdef RPCState rpc_state = RPCState(self)
 */
  __pyx_tuple__566 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_error, __pyx_n_s_rpc_state, __pyx_n_s_future, __pyx_n_s_wrapper); if (unlikely(!__pyx_tuple__566)) __PYX_ERR(9, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__566);
  __Pyx_GIVEREF(__pyx_tuple__566);
  __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__566, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_request_call, 942, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(9, 942, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":962
 *         return rpc_state
 * 
 *     async def _server_main_loop(self,             # <<<<<<<<<<<<<<
 *                                 object server_started):
 *         self._server.start(backup_queue=False)
 */
  __pyx_tuple__567 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_server_started, __pyx_n_s_rpc_state, __pyx_n_s_rpc_tasks, __pyx_n_s_concurrency_exceeded, __pyx_n_s_rpc_coro, __pyx_n_s_rpc_task); if (unlikely(!__pyx_tuple__567)) __PYX_ERR(9, 962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__567);
  __Pyx_GIVEREF(__pyx_tuple__567);
  __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__567, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_server_main_loop, 962, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(9, 962, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1011
 *                 self._limiter.decrease_once_finished(rpc_task)
 * 
 *     def _serving_task_crash_handler(self, object task):             # <<<<<<<<<<<<<<
 *         """Shutdown the server immediately if unexpectedly exited."""
 *         if task.cancelled():
 */
  __pyx_tuple__568 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_task); if (unlikely(!__pyx_tuple__568)) __PYX_ERR(9, 1011, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__568);
  __Pyx_GIVEREF(__pyx_tuple__568);
  __pyx_codeobj__569 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__568, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_serving_task_crash_handler, 1011, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__569)) __PYX_ERR(9, 1011, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1022
 *             self._loop.create_task(self.shutdown(None))
 * 
 *     async def start(self):             # <<<<<<<<<<<<<<
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return
 */
  __pyx_tuple__570 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_server_started); if (unlikely(!__pyx_tuple__570)) __PYX_ERR(9, 1022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__570);
  __Pyx_GIVEREF(__pyx_tuple__570);
  __pyx_codeobj__101 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__570, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_start, 1022, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__101)) __PYX_ERR(9, 1022, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1036
 *         await server_started
 * 
 *     async def _start_shutting_down(self):             # <<<<<<<<<<<<<<
 *         """Prepares the server to shutting down.
 * 
 */
  __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_start_shutting_down, 1036, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(9, 1036, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1053
 *             pass
 * 
 *     async def shutdown(self, grace):             # <<<<<<<<<<<<<<
 *         """Gracefully shutdown the Core server.
 * 
 */
  __pyx_tuple__571 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_grace); if (unlikely(!__pyx_tuple__571)) __PYX_ERR(9, 1053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__571);
  __Pyx_GIVEREF(__pyx_tuple__571);
  __pyx_codeobj__103 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__571, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_shutdown, 1053, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__103)) __PYX_ERR(9, 1053, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1093
 *                 self._status = AIO_SERVER_STATUS_STOPPED
 * 
 *     async def wait_for_termination(self, object timeout):             # <<<<<<<<<<<<<<
 *         if timeout is None:
 *             await self._shutdown_completed
 */
  __pyx_tuple__572 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_timeout); if (unlikely(!__pyx_tuple__572)) __PYX_ERR(9, 1093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__572);
  __Pyx_GIVEREF(__pyx_tuple__572);
  __pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__572, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_wait_for_termination, 1093, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(9, 1093, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1126
 *         return self._thread_pool
 * 
 *     def is_running(self):             # <<<<<<<<<<<<<<
 *         return self._status == AIO_SERVER_STATUS_RUNNING
 */
  __pyx_codeobj__573 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_python_grpcio_grpc__cython_6, __pyx_n_s_is_running, 1126, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__573)) __PYX_ERR(9, 1126, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__574 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__194, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__574)) __PYX_ERR(10, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AioServer__set_state(self, __pyx_state)
 */
  __pyx_codeobj__575 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__575)) __PYX_ERR(10, 16, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __pyx_unpickle_ChannelCredentials(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_tuple__576 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__576)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__576);
  __Pyx_GIVEREF(__pyx_tuple__576);
  __pyx_codeobj__577 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__576, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ChannelCredential, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__577)) __PYX_ERR(10, 1, __pyx_L1_error)
  __pyx_codeobj__578 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__576, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_InsecureChannelCr, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__578)) __PYX_ERR(10, 1, __pyx_L1_error)
  __pyx_codeobj__579 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__576, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle__Tag, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__579)) __PYX_ERR(10, 1, __pyx_L1_error)
  __pyx_codeobj__580 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__576, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_CensusContext, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__580)) __PYX_ERR(10, 1, __pyx_L1_error)
  __pyx_codeobj__581 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__576, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AioServer, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__581)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}
/* #### Code section: init_constants ### */

static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) {
  __pyx_umethod_PyDict_Type_get.type = (PyObject*)&PyDict_Type;
  __pyx_umethod_PyDict_Type_get.method_name = &__pyx_n_s_get;
  __pyx_umethod_PyDict_Type_keys.type = (PyObject*)&PyDict_Type;
  __pyx_umethod_PyDict_Type_keys.method_name = &__pyx_n_s_keys;
  __pyx_umethod_PyDict_Type_pop.type = (PyObject*)&PyDict_Type;
  __pyx_umethod_PyDict_Type_pop.method_name = &__pyx_n_s_pop;
  __pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type;
  __pyx_umethod_PyDict_Type_values.method_name = &__pyx_n_s_values;
  if (__Pyx_CreateStringTabAndInitStrings() < 0) __PYX_ERR(0, 1, __pyx_L1_error);
  __pyx_float_1_0 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_float_1_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_10 = PyInt_FromLong(10); if (unlikely(!__pyx_int_10)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_1000 = PyInt_FromLong(1000); if (unlikely(!__pyx_int_1000)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_1500 = PyInt_FromLong(1500); if (unlikely(!__pyx_int_1500)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_118587260 = PyInt_FromLong(118587260L); if (unlikely(!__pyx_int_118587260)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_171381981 = PyInt_FromLong(171381981L); if (unlikely(!__pyx_int_171381981)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_171651213 = PyInt_FromLong(171651213L); if (unlikely(!__pyx_int_171651213)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_222419149 = PyInt_FromLong(222419149L); if (unlikely(!__pyx_int_222419149)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_228825662 = PyInt_FromLong(228825662L); if (unlikely(!__pyx_int_228825662)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_238750788 = PyInt_FromLong(238750788L); if (unlikely(!__pyx_int_238750788)) __PYX_ERR(0, 1, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: init_globals ### */

static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
  /* AssertionsEnabled.init */
  if (likely(__Pyx_init_assertions_enabled() == 0)); else

if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: init_module ### */

static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/

static int __Pyx_modinit_global_init_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
  /*--- Global init code ---*/
  __pyx_v_4grpc_7_cython_6cygrpc_CQ_SHUTDOWN_FAILURE_HANDLER = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)Py_None); Py_INCREF(Py_None);
  __pyx_v_4grpc_7_cython_6cygrpc__GRPC_ASYNCIO_ENGINE = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)Py_None); Py_INCREF(Py_None);
  __pyx_v_4grpc_7_cython_6cygrpc__WATCH_CONNECTIVITY_FAILURE_HANDLER = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)Py_None); Py_INCREF(Py_None);
  __pyx_v_4grpc_7_cython_6cygrpc__RPC_FINISHED_DETAILS = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_4grpc_7_cython_6cygrpc__SERVER_STOPPED_DETAILS = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_4grpc_7_cython_6cygrpc_REQUEST_CALL_FAILURE_HANDLER = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)Py_None); Py_INCREF(Py_None);
  __pyx_v_4grpc_7_cython_6cygrpc_SERVER_SHUTDOWN_FAILURE_HANDLER = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)Py_None); Py_INCREF(Py_None);
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_variable_export_code(void) {
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
  /*--- Variable export code ---*/
  if (__Pyx_ExportVoidPtr(__pyx_n_s_g_interrupt_check_period_ms, (void *)&__pyx_v_4grpc_7_cython_6cygrpc_g_interrupt_check_period_ms, "int") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportVoidPtr(__pyx_n_s_default_vtable, (void *)&__pyx_v_4grpc_7_cython_6cygrpc_default_vtable, "grpc_arg_pointer_vtable") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_function_export_code(void) {
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
  /*--- Function export code ---*/
  if (__Pyx_ExportFunction("_wrap_grpc_arg", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__wrap_grpc_arg, "PyObject *(grpc_arg)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_unwrap_grpc_arg", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__unwrap_grpc_arg, "grpc_arg (PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_check_call_error_no_metadata", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__check_call_error_no_metadata, "PyObject *(PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_check_and_raise_call_error_no_metadata", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__check_and_raise_call_error_no_metadata, "PyObject *(PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_check_call_error", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__check_call_error, "PyObject *(PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_get_metadata", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__get_metadata, "int (void *, grpc_auth_metadata_context, grpc_credentials_plugin_metadata_cb, void *, grpc_metadata *, size_t *, grpc_status_code *, char const **)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_destroy", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__destroy, "void (void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_composition", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__composition, "grpc_call_credentials *(PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_next", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__next, "grpc_event (grpc_completion_queue *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_interpret_event", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__interpret_event, "PyObject *(grpc_event)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_store_c_metadata", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__store_c_metadata, "void (PyObject *, grpc_metadata **, size_t *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_release_c_metadata", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__release_c_metadata, "void (grpc_metadata *, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_metadatum", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__metadatum, "PyObject *(grpc_slice, grpc_slice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_metadata", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__metadata, "PyObject *(grpc_metadata_array *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_slice_bytes", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__slice_bytes, "PyObject *(grpc_slice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_copy_slice", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__copy_slice, "grpc_slice (grpc_slice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_slice_from_bytes", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes, "grpc_slice (PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ssl_roots_override_callback", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc_ssl_roots_override_callback, "grpc_ssl_roots_override_result (char **)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_timespec_from_time", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time, "gpr_timespec (PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_time_from_timespec", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__time_from_timespec, "double (gpr_timespec)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_copy_pointer", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__copy_pointer, "void *(void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_destroy_pointer", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__destroy_pointer, "void (void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_compare_pointer", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__compare_pointer, "int (void *, void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_custom_op_on_c_call", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__custom_op_on_c_call, "PyObject *(int, grpc_call *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gevent_increment_channel_count", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc_gevent_increment_channel_count, "void (int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gevent_decrement_channel_count", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc_gevent_decrement_channel_count, "void (int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__prefork", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc___prefork, "void (void)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__postfork_parent", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc___postfork_parent, "void (void)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__postfork_child", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc___postfork_child, "void (void)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_unified_socket_write", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__unified_socket_write, "void (int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("global_completion_queue", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue, "grpc_completion_queue *(void)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("init_grpc_aio", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio, "PyObject *(int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("shutdown_grpc_aio", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio, "PyObject *(int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_init_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
  /*--- Type init code ---*/
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArg = &__pyx_vtable_4grpc_7_cython_6cygrpc__ChannelArg;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ChannelArg.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *, PyObject *, PyObject *))__pyx_f_4grpc_7_cython_6cygrpc_11_ChannelArg_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__ChannelArg_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg)) __PYX_ERR(3, 32, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__ChannelArg_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg) < 0) __PYX_ERR(3, 32, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg = &__pyx_type_4grpc_7_cython_6cygrpc__ChannelArg;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg) < 0) __PYX_ERR(3, 32, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg, __pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArg) < 0) __PYX_ERR(3, 32, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg) < 0) __PYX_ERR(3, 32, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ChannelArg, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg) < 0) __PYX_ERR(3, 32, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg) < 0) __PYX_ERR(3, 32, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArgs = &__pyx_vtable_4grpc_7_cython_6cygrpc__ChannelArgs;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ChannelArgs.c_args = (grpc_channel_args *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *))__pyx_f_4grpc_7_cython_6cygrpc_12_ChannelArgs_c_args;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs)) __PYX_ERR(3, 64, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs) < 0) __PYX_ERR(3, 64, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs = &__pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs) < 0) __PYX_ERR(3, 64, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs, __pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArgs) < 0) __PYX_ERR(3, 64, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs) < 0) __PYX_ERR(3, 64, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ChannelArgs, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs) < 0) __PYX_ERR(3, 64, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs) < 0) __PYX_ERR(3, 64, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_Call = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_Call_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_Call)) __PYX_ERR(4, 16, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_Call_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_Call) < 0) __PYX_ERR(4, 16, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_Call = &__pyx_type_4grpc_7_cython_6cygrpc_Call;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_Call) < 0) __PYX_ERR(4, 16, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_Call->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_Call->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_Call->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_Call->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Call, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_Call) < 0) __PYX_ERR(4, 16, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_Call) < 0) __PYX_ERR(4, 16, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__CallState = &__pyx_vtable_4grpc_7_cython_6cygrpc__CallState;
  __pyx_vtable_4grpc_7_cython_6cygrpc__CallState.maybe_save_registered_method = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, PyObject *))__pyx_f_4grpc_7_cython_6cygrpc_10_CallState_maybe_save_registered_method;
  __pyx_vtable_4grpc_7_cython_6cygrpc__CallState.maybe_set_client_call_tracer_on_call = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, PyObject *, PyObject *))__pyx_f_4grpc_7_cython_6cygrpc_10_CallState_maybe_set_client_call_tracer_on_call;
  __pyx_vtable_4grpc_7_cython_6cygrpc__CallState.delete_call = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *))__pyx_f_4grpc_7_cython_6cygrpc_10_CallState_delete_call;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc__CallState = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__CallState_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__CallState)) __PYX_ERR(12, 70, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__CallState_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__CallState) < 0) __PYX_ERR(12, 70, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__CallState = &__pyx_type_4grpc_7_cython_6cygrpc__CallState;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__CallState) < 0) __PYX_ERR(12, 70, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__CallState->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__CallState->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__CallState->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__CallState->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc__CallState, __pyx_vtabptr_4grpc_7_cython_6cygrpc__CallState) < 0) __PYX_ERR(12, 70, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc__CallState) < 0) __PYX_ERR(12, 70, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CallState, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__CallState) < 0) __PYX_ERR(12, 70, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__CallState) < 0) __PYX_ERR(12, 70, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__ChannelState_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState)) __PYX_ERR(12, 97, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__ChannelState_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState) < 0) __PYX_ERR(12, 97, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState = &__pyx_type_4grpc_7_cython_6cygrpc__ChannelState;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState) < 0) __PYX_ERR(12, 97, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ChannelState, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState) < 0) __PYX_ERR(12, 97, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState) < 0) __PYX_ERR(12, 97, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall)) __PYX_ERR(12, 320, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall) < 0) __PYX_ERR(12, 320, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall = &__pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall) < 0) __PYX_ERR(12, 320, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_IntegratedCall, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall) < 0) __PYX_ERR(12, 320, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall) < 0) __PYX_ERR(12, 320, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall)) __PYX_ERR(12, 366, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall) < 0) __PYX_ERR(12, 366, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall = &__pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall) < 0) __PYX_ERR(12, 366, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SegregatedCall, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall) < 0) __PYX_ERR(12, 366, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall) < 0) __PYX_ERR(12, 366, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_Channel = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_Channel_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_Channel)) __PYX_ERR(12, 491, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_Channel_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_Channel) < 0) __PYX_ERR(12, 491, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_Channel = &__pyx_type_4grpc_7_cython_6cygrpc_Channel;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_Channel) < 0) __PYX_ERR(12, 491, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_Channel->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_Channel->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_Channel->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_Channel->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Channel, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_Channel) < 0) __PYX_ERR(12, 491, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_Channel) < 0) __PYX_ERR(12, 491, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CallHandle_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle)) __PYX_ERR(12, 108, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CallHandle_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle) < 0) __PYX_ERR(12, 108, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle = &__pyx_type_4grpc_7_cython_6cygrpc_CallHandle;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle) < 0) __PYX_ERR(12, 108, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CallHandle, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle) < 0) __PYX_ERR(12, 108, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle) < 0) __PYX_ERR(12, 108, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_CallCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CallCredentials.c = (grpc_call_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_15CallCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CallCredentials_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials)) __PYX_ERR(5, 31, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CallCredentials_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials) < 0) __PYX_ERR(5, 31, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_CallCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials) < 0) __PYX_ERR(5, 31, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallCredentials) < 0) __PYX_ERR(5, 31, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials) < 0) __PYX_ERR(5, 31, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CallCredentials, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials) < 0) __PYX_ERR(5, 31, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials) < 0) __PYX_ERR(5, 31, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CallCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials.__pyx_base.c = (grpc_call_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials)) __PYX_ERR(5, 73, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials) < 0) __PYX_ERR(5, 73, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials) < 0) __PYX_ERR(5, 73, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials) < 0) __PYX_ERR(5, 73, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials) < 0) __PYX_ERR(5, 73, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MetadataPluginCallCredentials, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials) < 0) __PYX_ERR(5, 73, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials) < 0) __PYX_ERR(5, 73, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeCallCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_CompositeCallCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CompositeCallCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CallCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CompositeCallCredentials.__pyx_base.c = (grpc_call_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials)) __PYX_ERR(5, 109, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials) < 0) __PYX_ERR(5, 109, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials) < 0) __PYX_ERR(5, 109, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeCallCredentials) < 0) __PYX_ERR(5, 109, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials) < 0) __PYX_ERR(5, 109, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CompositeCallCredentials, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials) < 0) __PYX_ERR(5, 109, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials) < 0) __PYX_ERR(5, 109, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ChannelCredentials.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_18ChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials)) __PYX_ERR(5, 118, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials) < 0) __PYX_ERR(5, 118, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials) < 0) __PYX_ERR(5, 118, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials) < 0) __PYX_ERR(5, 118, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials) < 0) __PYX_ERR(5, 118, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ChannelCredentials, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials) < 0) __PYX_ERR(5, 118, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials) < 0) __PYX_ERR(5, 118, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU)) __PYX_ERR(5, 124, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU) < 0) __PYX_ERR(5, 124, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU = &__pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU) < 0) __PYX_ERR(5, 124, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SSLSessionCacheLRU, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU) < 0) __PYX_ERR(5, 124, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU) < 0) __PYX_ERR(5, 124, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_SSLChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_SSLChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SSLChannelCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SSLChannelCredentials.__pyx_base.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials)) __PYX_ERR(5, 139, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials) < 0) __PYX_ERR(5, 139, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials) < 0) __PYX_ERR(5, 139, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_SSLChannelCredentials) < 0) __PYX_ERR(5, 139, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials) < 0) __PYX_ERR(5, 139, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SSLChannelCredentials, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials) < 0) __PYX_ERR(5, 139, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials) < 0) __PYX_ERR(5, 139, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CompositeChannelCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CompositeChannelCredentials.__pyx_base.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials)) __PYX_ERR(5, 173, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials) < 0) __PYX_ERR(5, 173, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials) < 0) __PYX_ERR(5, 173, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeChannelCredentials) < 0) __PYX_ERR(5, 173, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials) < 0) __PYX_ERR(5, 173, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CompositeChannelCredentials, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials) < 0) __PYX_ERR(5, 173, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials) < 0) __PYX_ERR(5, 173, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_XDSChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_XDSChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_XDSChannelCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_XDSChannelCredentials.__pyx_base.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials)) __PYX_ERR(5, 192, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials) < 0) __PYX_ERR(5, 192, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials) < 0) __PYX_ERR(5, 192, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_XDSChannelCredentials) < 0) __PYX_ERR(5, 192, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials) < 0) __PYX_ERR(5, 192, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_XDSChannelCredentials, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials) < 0) __PYX_ERR(5, 192, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials) < 0) __PYX_ERR(5, 192, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig)) __PYX_ERR(5, 204, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig) < 0) __PYX_ERR(5, 204, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig = &__pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig) < 0) __PYX_ERR(5, 204, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ServerCertificateConfig, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig) < 0) __PYX_ERR(5, 204, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig) < 0) __PYX_ERR(5, 204, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials)) __PYX_ERR(5, 219, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials) < 0) __PYX_ERR(5, 219, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials) < 0) __PYX_ERR(5, 219, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ServerCredentials, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials) < 0) __PYX_ERR(5, 219, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials) < 0) __PYX_ERR(5, 219, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_LocalChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_LocalChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_LocalChannelCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_LocalChannelCredentials.__pyx_base.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials)) __PYX_ERR(5, 360, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials) < 0) __PYX_ERR(5, 360, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials) < 0) __PYX_ERR(5, 360, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_LocalChannelCredentials) < 0) __PYX_ERR(5, 360, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials) < 0) __PYX_ERR(5, 360, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_LocalChannelCredentials, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials) < 0) __PYX_ERR(5, 360, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials) < 0) __PYX_ERR(5, 360, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_ALTSChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ALTSChannelCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ALTSChannelCredentials.__pyx_base.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials)) __PYX_ERR(5, 399, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials) < 0) __PYX_ERR(5, 399, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials) < 0) __PYX_ERR(5, 399, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_ALTSChannelCredentials) < 0) __PYX_ERR(5, 399, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials) < 0) __PYX_ERR(5, 399, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ALTSChannelCredentials, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials) < 0) __PYX_ERR(5, 399, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials) < 0) __PYX_ERR(5, 399, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg)) __PYX_ERR(35, 22, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg) < 0) __PYX_ERR(35, 22, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg = &__pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg) < 0) __PYX_ERR(35, 22, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_LatentEventArg, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg) < 0) __PYX_ERR(35, 22, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_CompletionQueue = &__pyx_vtable_4grpc_7_cython_6cygrpc_CompletionQueue;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CompletionQueue._interpret_event = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_15CompletionQueue__interpret_event;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue)) __PYX_ERR(15, 80, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue) < 0) __PYX_ERR(15, 80, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue = &__pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue) < 0) __PYX_ERR(15, 80, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, __pyx_vtabptr_4grpc_7_cython_6cygrpc_CompletionQueue) < 0) __PYX_ERR(15, 80, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue) < 0) __PYX_ERR(15, 80, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CompletionQueue, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue) < 0) __PYX_ERR(15, 80, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue) < 0) __PYX_ERR(15, 80, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_BaseEvent_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) __PYX_ERR(17, 15, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_BaseEvent_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent) < 0) __PYX_ERR(17, 15, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent = &__pyx_type_4grpc_7_cython_6cygrpc_BaseEvent;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent) < 0) __PYX_ERR(17, 15, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BaseEvent, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent) < 0) __PYX_ERR(17, 15, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent)) __PYX_ERR(16, 15, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent) < 0) __PYX_ERR(16, 15, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent = &__pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent) < 0) __PYX_ERR(16, 15, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ConnectivityEvent, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent) < 0) __PYX_ERR(16, 15, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent) < 0) __PYX_ERR(16, 15, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent)) __PYX_ERR(16, 24, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent) < 0) __PYX_ERR(16, 24, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent = &__pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent) < 0) __PYX_ERR(16, 24, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RequestCallEvent, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent) < 0) __PYX_ERR(16, 24, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent) < 0) __PYX_ERR(16, 24, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent)) __PYX_ERR(16, 37, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent) < 0) __PYX_ERR(16, 37, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent = &__pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent) < 0) __PYX_ERR(16, 37, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BatchOperationEvent, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent) < 0) __PYX_ERR(16, 37, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent) < 0) __PYX_ERR(16, 37, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent)) __PYX_ERR(16, 48, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent) < 0) __PYX_ERR(16, 48, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent = &__pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent) < 0) __PYX_ERR(16, 48, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ServerShutdownEvent, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent) < 0) __PYX_ERR(16, 48, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent) < 0) __PYX_ERR(16, 48, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation = &__pyx_vtable_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_Operation.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_9Operation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_Operation.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_9Operation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_Operation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_Operation_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) __PYX_ERR(19, 16, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_Operation_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_Operation) < 0) __PYX_ERR(19, 16, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_Operation = &__pyx_type_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_Operation) < 0) __PYX_ERR(19, 16, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_Operation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation) < 0) __PYX_ERR(19, 16, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_Operation) < 0) __PYX_ERR(19, 16, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Operation, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_Operation) < 0) __PYX_ERR(19, 16, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_Operation) < 0) __PYX_ERR(19, 16, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation)) __PYX_ERR(19, 25, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation) < 0) __PYX_ERR(19, 25, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation = &__pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation) < 0) __PYX_ERR(19, 25, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation) < 0) __PYX_ERR(19, 25, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation) < 0) __PYX_ERR(19, 25, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SendInitialMetadataOperation, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation) < 0) __PYX_ERR(19, 25, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation) < 0) __PYX_ERR(19, 25, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendMessageOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_SendMessageOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendMessageOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendMessageOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_20SendMessageOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendMessageOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_20SendMessageOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation)) __PYX_ERR(19, 49, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation) < 0) __PYX_ERR(19, 49, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation = &__pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation) < 0) __PYX_ERR(19, 49, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendMessageOperation) < 0) __PYX_ERR(19, 49, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation) < 0) __PYX_ERR(19, 49, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SendMessageOperation, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation) < 0) __PYX_ERR(19, 49, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation) < 0) __PYX_ERR(19, 49, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation)) __PYX_ERR(19, 75, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation) < 0) __PYX_ERR(19, 75, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation = &__pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation) < 0) __PYX_ERR(19, 75, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation) < 0) __PYX_ERR(19, 75, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation) < 0) __PYX_ERR(19, 75, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SendCloseFromClientOperation, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation) < 0) __PYX_ERR(19, 75, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation) < 0) __PYX_ERR(19, 75, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation)) __PYX_ERR(19, 91, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation) < 0) __PYX_ERR(19, 91, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation = &__pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation) < 0) __PYX_ERR(19, 91, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation) < 0) __PYX_ERR(19, 91, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation) < 0) __PYX_ERR(19, 91, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SendStatusFromServerOperation, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation) < 0) __PYX_ERR(19, 91, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation) < 0) __PYX_ERR(19, 91, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation)) __PYX_ERR(19, 122, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation) < 0) __PYX_ERR(19, 122, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation = &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation) < 0) __PYX_ERR(19, 122, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation) < 0) __PYX_ERR(19, 122, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation) < 0) __PYX_ERR(19, 122, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ReceiveInitialMetadataOperation, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation) < 0) __PYX_ERR(19, 122, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation) < 0) __PYX_ERR(19, 122, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveMessageOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveMessageOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveMessageOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveMessageOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation)) __PYX_ERR(19, 145, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation) < 0) __PYX_ERR(19, 145, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation = &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation) < 0) __PYX_ERR(19, 145, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveMessageOperation) < 0) __PYX_ERR(19, 145, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation) < 0) __PYX_ERR(19, 145, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ReceiveMessageOperation, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation) < 0) __PYX_ERR(19, 145, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation) < 0) __PYX_ERR(19, 145, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation)) __PYX_ERR(19, 187, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation) < 0) __PYX_ERR(19, 187, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation = &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation) < 0) __PYX_ERR(19, 187, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation) < 0) __PYX_ERR(19, 187, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation) < 0) __PYX_ERR(19, 187, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ReceiveStatusOnClientOperation, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation) < 0) __PYX_ERR(19, 187, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation) < 0) __PYX_ERR(19, 187, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation)) __PYX_ERR(19, 233, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation) < 0) __PYX_ERR(19, 233, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation = &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation) < 0) __PYX_ERR(19, 233, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation) < 0) __PYX_ERR(19, 233, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation) < 0) __PYX_ERR(19, 233, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ReceiveCloseOnServerOperation, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation) < 0) __PYX_ERR(19, 233, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation) < 0) __PYX_ERR(19, 233, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CallDetails_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails)) __PYX_ERR(21, 130, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CallDetails_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails) < 0) __PYX_ERR(21, 130, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails = &__pyx_type_4grpc_7_cython_6cygrpc_CallDetails;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails) < 0) __PYX_ERR(21, 130, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CallDetails, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails) < 0) __PYX_ERR(21, 130, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails) < 0) __PYX_ERR(21, 130, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair)) __PYX_ERR(21, 155, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair) < 0) __PYX_ERR(21, 155, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair = &__pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair) < 0) __PYX_ERR(21, 155, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SslPemKeyCertPair, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair) < 0) __PYX_ERR(21, 155, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair) < 0) __PYX_ERR(21, 155, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions)) __PYX_ERR(21, 164, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions) < 0) __PYX_ERR(21, 164, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions = &__pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions) < 0) __PYX_ERR(21, 164, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CompressionOptions, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions) < 0) __PYX_ERR(21, 164, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions) < 0) __PYX_ERR(21, 164, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_Server = &__pyx_vtable_4grpc_7_cython_6cygrpc_Server;
  __pyx_vtable_4grpc_7_cython_6cygrpc_Server._c_shutdown = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, PyObject *))__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_shutdown;
  __pyx_vtable_4grpc_7_cython_6cygrpc_Server._c_request_unregistered_call = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *))__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_request_unregistered_call;
  __pyx_vtable_4grpc_7_cython_6cygrpc_Server._c_request_registered_call = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, PyObject *))__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_request_registered_call;
  __pyx_vtable_4grpc_7_cython_6cygrpc_Server.notify_shutdown_complete = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *))__pyx_f_4grpc_7_cython_6cygrpc_6Server_notify_shutdown_complete;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_Server = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_Server_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_Server)) __PYX_ERR(23, 38, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_Server_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_Server) < 0) __PYX_ERR(23, 38, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_Server = &__pyx_type_4grpc_7_cython_6cygrpc_Server;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_Server) < 0) __PYX_ERR(23, 38, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_Server->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_Server->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_Server->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_Server->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_vtabptr_4grpc_7_cython_6cygrpc_Server) < 0) __PYX_ERR(23, 38, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_Server) < 0) __PYX_ERR(23, 38, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Server, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_Server) < 0) __PYX_ERR(23, 38, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_Server) < 0) __PYX_ERR(23, 38, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod)) __PYX_ERR(23, 16, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod) < 0) __PYX_ERR(23, 16, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod = &__pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod) < 0) __PYX_ERR(23, 16, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RegisteredMethod, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod) < 0) __PYX_ERR(23, 16, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod) < 0) __PYX_ERR(23, 16, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag = &__pyx_vtable_4grpc_7_cython_6cygrpc__Tag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__Tag.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_4_Tag_event;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc__Tag = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__Tag_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) __PYX_ERR(24, 16, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__Tag_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__Tag) < 0) __PYX_ERR(24, 16, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__Tag = &__pyx_type_4grpc_7_cython_6cygrpc__Tag;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__Tag) < 0) __PYX_ERR(24, 16, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc__Tag, __pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag) < 0) __PYX_ERR(24, 16, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc__Tag) < 0) __PYX_ERR(24, 16, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Tag, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__Tag) < 0) __PYX_ERR(24, 16, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__Tag) < 0) __PYX_ERR(24, 16, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__ConnectivityTag = &__pyx_vtable_4grpc_7_cython_6cygrpc__ConnectivityTag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ConnectivityTag.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ConnectivityTag.__pyx_base.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_16_ConnectivityTag_event__pyx_wrap_1;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ConnectivityTag.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_16_ConnectivityTag_event;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__Tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag)) __PYX_ERR(24, 22, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag) < 0) __PYX_ERR(24, 22, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag = &__pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc__Tag;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag) < 0) __PYX_ERR(24, 22, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag, __pyx_vtabptr_4grpc_7_cython_6cygrpc__ConnectivityTag) < 0) __PYX_ERR(24, 22, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag) < 0) __PYX_ERR(24, 22, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ConnectivityTag, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag) < 0) __PYX_ERR(24, 22, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag) < 0) __PYX_ERR(24, 22, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__RequestCallTag = &__pyx_vtable_4grpc_7_cython_6cygrpc__RequestCallTag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__RequestCallTag.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__RequestCallTag.__pyx_base.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_event__pyx_wrap_1;
  __pyx_vtable_4grpc_7_cython_6cygrpc__RequestCallTag.prepare = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *))__pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_prepare;
  __pyx_vtable_4grpc_7_cython_6cygrpc__RequestCallTag.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_event;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__Tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag)) __PYX_ERR(24, 31, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag) < 0) __PYX_ERR(24, 31, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag = &__pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc__Tag;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag) < 0) __PYX_ERR(24, 31, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag, __pyx_vtabptr_4grpc_7_cython_6cygrpc__RequestCallTag) < 0) __PYX_ERR(24, 31, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag) < 0) __PYX_ERR(24, 31, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RequestCallTag, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag) < 0) __PYX_ERR(24, 31, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag) < 0) __PYX_ERR(24, 31, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__BatchOperationTag = &__pyx_vtable_4grpc_7_cython_6cygrpc__BatchOperationTag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__BatchOperationTag.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__BatchOperationTag.__pyx_base.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_event__pyx_wrap_1;
  __pyx_vtable_4grpc_7_cython_6cygrpc__BatchOperationTag.prepare = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *))__pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_prepare;
  __pyx_vtable_4grpc_7_cython_6cygrpc__BatchOperationTag.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_event;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__Tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag)) __PYX_ERR(24, 51, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag) < 0) __PYX_ERR(24, 51, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag = &__pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc__Tag;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag) < 0) __PYX_ERR(24, 51, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag, __pyx_vtabptr_4grpc_7_cython_6cygrpc__BatchOperationTag) < 0) __PYX_ERR(24, 51, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag) < 0) __PYX_ERR(24, 51, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BatchOperationTag, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag) < 0) __PYX_ERR(24, 51, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag) < 0) __PYX_ERR(24, 51, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__ServerShutdownTag = &__pyx_vtable_4grpc_7_cython_6cygrpc__ServerShutdownTag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ServerShutdownTag.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ServerShutdownTag.__pyx_base.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_event__pyx_wrap_1;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ServerShutdownTag.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_event;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__Tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag)) __PYX_ERR(24, 80, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag) < 0) __PYX_ERR(24, 80, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag = &__pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc__Tag;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag) < 0) __PYX_ERR(24, 80, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag, __pyx_vtabptr_4grpc_7_cython_6cygrpc__ServerShutdownTag) < 0) __PYX_ERR(24, 80, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag) < 0) __PYX_ERR(24, 80, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ServerShutdownTag, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag) < 0) __PYX_ERR(24, 80, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag) < 0) __PYX_ERR(24, 80, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_BaseCompletionQueue = &__pyx_vtable_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
  __pyx_vtable_4grpc_7_cython_6cygrpc_BaseCompletionQueue.c_ptr = (grpc_completion_queue *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *))__pyx_f_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_c_ptr;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue)) __PYX_ERR(7, 38, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue) < 0) __PYX_ERR(7, 38, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue = &__pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue) < 0) __PYX_ERR(7, 38, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue, __pyx_vtabptr_4grpc_7_cython_6cygrpc_BaseCompletionQueue) < 0) __PYX_ERR(7, 38, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue) < 0) __PYX_ERR(7, 38, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BaseCompletionQueue, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue) < 0) __PYX_ERR(7, 38, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue) < 0) __PYX_ERR(7, 38, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop)) __PYX_ERR(7, 44, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop) < 0) __PYX_ERR(7, 44, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop = &__pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop) < 0) __PYX_ERR(7, 44, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BoundEventLoop, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop) < 0) __PYX_ERR(7, 44, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop) < 0) __PYX_ERR(7, 44, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_PollerCompletionQueue = &__pyx_vtable_4grpc_7_cython_6cygrpc_PollerCompletionQueue;
  __pyx_vtable_4grpc_7_cython_6cygrpc_PollerCompletionQueue.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
  __pyx_vtable_4grpc_7_cython_6cygrpc_PollerCompletionQueue._poll = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *))__pyx_f_4grpc_7_cython_6cygrpc_21PollerCompletionQueue__poll;
  __pyx_vtable_4grpc_7_cython_6cygrpc_PollerCompletionQueue.shutdown = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *))__pyx_f_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_shutdown;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue)) __PYX_ERR(7, 72, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue) < 0) __PYX_ERR(7, 72, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue = &__pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue) < 0) __PYX_ERR(7, 72, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue, __pyx_vtabptr_4grpc_7_cython_6cygrpc_PollerCompletionQueue) < 0) __PYX_ERR(7, 72, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue) < 0) __PYX_ERR(7, 72, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PollerCompletionQueue, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue) < 0) __PYX_ERR(7, 72, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue) < 0) __PYX_ERR(7, 72, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_AioRpcStatus = &__pyx_vtable_4grpc_7_cython_6cygrpc_AioRpcStatus;
  __pyx_vtable_4grpc_7_cython_6cygrpc_AioRpcStatus.code = (grpc_status_code (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch))__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_code;
  __pyx_vtable_4grpc_7_cython_6cygrpc_AioRpcStatus.details = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch))__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_details;
  __pyx_vtable_4grpc_7_cython_6cygrpc_AioRpcStatus.trailing_metadata = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch))__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_trailing_metadata;
  __pyx_vtable_4grpc_7_cython_6cygrpc_AioRpcStatus.debug_error_string = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch))__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_debug_error_string;
  __pyx_vtable_4grpc_7_cython_6cygrpc_AioRpcStatus.c_code = (grpc_status_code (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *))__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_c_code;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus)) __PYX_ERR(30, 17, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus) < 0) __PYX_ERR(30, 17, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus = &__pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus;
  #endif
  if (sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus) != sizeof(PyBaseExceptionObject)) {
    if (__Pyx_validate_extern_base((&((PyTypeObject*)PyExc_Exception)[0])) < 0) __PYX_ERR(30, 17, __pyx_L1_error)
  }
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus->tp_base = (&((PyTypeObject*)PyExc_Exception)[0]);
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus) < 0) __PYX_ERR(30, 17, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus, __pyx_vtabptr_4grpc_7_cython_6cygrpc_AioRpcStatus) < 0) __PYX_ERR(30, 17, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus) < 0) __PYX_ERR(30, 17, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AioRpcStatus, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus) < 0) __PYX_ERR(30, 17, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus) < 0) __PYX_ERR(30, 17, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc__AioState = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__AioState_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__AioState)) __PYX_ERR(33, 36, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__AioState_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__AioState) < 0) __PYX_ERR(33, 36, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__AioState = &__pyx_type_4grpc_7_cython_6cygrpc__AioState;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__AioState) < 0) __PYX_ERR(33, 36, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__AioState->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__AioState->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__AioState->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__AioState->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AioState, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__AioState) < 0) __PYX_ERR(33, 36, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__AioState) < 0) __PYX_ERR(33, 36, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackFailureHandler = &__pyx_vtable_4grpc_7_cython_6cygrpc_CallbackFailureHandler;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CallbackFailureHandler.handle = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *, PyObject *))__pyx_f_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_handle;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler)) __PYX_ERR(32, 16, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler) < 0) __PYX_ERR(32, 16, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler = &__pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler) < 0) __PYX_ERR(32, 16, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler, __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackFailureHandler) < 0) __PYX_ERR(32, 16, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler) < 0) __PYX_ERR(32, 16, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CallbackFailureHandler, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler) < 0) __PYX_ERR(32, 16, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler) < 0) __PYX_ERR(32, 16, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackWrapper = &__pyx_vtable_4grpc_7_cython_6cygrpc_CallbackWrapper;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CallbackWrapper.functor_run = (void (*)(grpc_completion_queue_functor *, int))__pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_functor_run;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CallbackWrapper.c_functor = (grpc_completion_queue_functor *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *))__pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_c_functor;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper)) __PYX_ERR(32, 33, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper) < 0) __PYX_ERR(32, 33, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper = &__pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper) < 0) __PYX_ERR(32, 33, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper, __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackWrapper) < 0) __PYX_ERR(32, 33, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper) < 0) __PYX_ERR(32, 33, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CallbackWrapper, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper) < 0) __PYX_ERR(32, 33, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper) < 0) __PYX_ERR(32, 33, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper)) __PYX_ERR(36, 56, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper) < 0) __PYX_ERR(36, 56, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper = &__pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper) < 0) __PYX_ERR(36, 56, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_GrpcCallWrapper, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper) < 0) __PYX_ERR(36, 56, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__AioCall = &__pyx_vtable_4grpc_7_cython_6cygrpc__AioCall;
  __pyx_vtable_4grpc_7_cython_6cygrpc__AioCall._create_grpc_call = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *, PyObject *, PyObject *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__create_grpc_call;
  __pyx_vtable_4grpc_7_cython_6cygrpc__AioCall._set_status = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *))__pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__set_status;
  __pyx_vtable_4grpc_7_cython_6cygrpc__AioCall._set_initial_metadata = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *, PyObject *))__pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__set_initial_metadata;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc__AioCall = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__AioCall_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall)) __PYX_ERR(34, 45, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__AioCall_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__AioCall) < 0) __PYX_ERR(34, 45, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__AioCall = &__pyx_type_4grpc_7_cython_6cygrpc__AioCall;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc__AioCall->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall) < 0) __PYX_ERR(34, 45, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__AioCall->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__AioCall->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__AioCall->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_vtabptr_4grpc_7_cython_6cygrpc__AioCall) < 0) __PYX_ERR(34, 45, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall) < 0) __PYX_ERR(34, 45, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AioCall, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__AioCall) < 0) __PYX_ERR(34, 45, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__AioCall) < 0) __PYX_ERR(34, 45, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_AioChannel_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel)) __PYX_ERR(8, 28, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_AioChannel_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel) < 0) __PYX_ERR(8, 28, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel = &__pyx_type_4grpc_7_cython_6cygrpc_AioChannel;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel) < 0) __PYX_ERR(8, 28, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AioChannel, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel) < 0) __PYX_ERR(8, 28, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel) < 0) __PYX_ERR(8, 28, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails)) __PYX_ERR(9, 35, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails) < 0) __PYX_ERR(9, 35, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails = &__pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails) < 0) __PYX_ERR(9, 35, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_HandlerCallDetails, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails) < 0) __PYX_ERR(9, 35, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails) < 0) __PYX_ERR(9, 35, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_RPCState = &__pyx_vtable_4grpc_7_cython_6cygrpc_RPCState;
  __pyx_vtable_4grpc_7_cython_6cygrpc_RPCState.method = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *))__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_method;
  __pyx_vtable_4grpc_7_cython_6cygrpc_RPCState.invocation_metadata = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *))__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_invocation_metadata;
  __pyx_vtable_4grpc_7_cython_6cygrpc_RPCState.raise_for_termination = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *))__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_raise_for_termination;
  __pyx_vtable_4grpc_7_cython_6cygrpc_RPCState.get_write_flag = (int (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *))__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_get_write_flag;
  __pyx_vtable_4grpc_7_cython_6cygrpc_RPCState.create_send_initial_metadata_op_if_not_sent = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *))__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_create_send_initial_metadata_op_if_not_sent;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_RPCState_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState)) __PYX_ERR(9, 45, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_RPCState_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState) < 0) __PYX_ERR(9, 45, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState = &__pyx_type_4grpc_7_cython_6cygrpc_RPCState;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState) < 0) __PYX_ERR(9, 45, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, __pyx_vtabptr_4grpc_7_cython_6cygrpc_RPCState) < 0) __PYX_ERR(9, 45, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState) < 0) __PYX_ERR(9, 45, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RPCState, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState) < 0) __PYX_ERR(9, 45, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_RPCState) < 0) __PYX_ERR(9, 45, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__ServicerContext_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext)) __PYX_ERR(9, 115, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__ServicerContext_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext) < 0) __PYX_ERR(9, 115, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext = &__pyx_type_4grpc_7_cython_6cygrpc__ServicerContext;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext) < 0) __PYX_ERR(9, 115, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ServicerContext, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext) < 0) __PYX_ERR(9, 115, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext) < 0) __PYX_ERR(9, 115, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext)) __PYX_ERR(9, 292, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext) < 0) __PYX_ERR(9, 292, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext = &__pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext) < 0) __PYX_ERR(9, 292, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SyncServicerContext, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext) < 0) __PYX_ERR(9, 292, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext) < 0) __PYX_ERR(9, 292, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver)) __PYX_ERR(9, 596, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver) < 0) __PYX_ERR(9, 596, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver = &__pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver) < 0) __PYX_ERR(9, 596, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MessageReceiver, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver) < 0) __PYX_ERR(9, 596, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver) < 0) __PYX_ERR(9, 596, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter)) __PYX_ERR(9, 870, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter) < 0) __PYX_ERR(9, 870, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter = &__pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter) < 0) __PYX_ERR(9, 870, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ConcurrentRpcLimiter, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter) < 0) __PYX_ERR(9, 870, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter) < 0) __PYX_ERR(9, 870, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_AioServer = &__pyx_vtable_4grpc_7_cython_6cygrpc_AioServer;
  __pyx_vtable_4grpc_7_cython_6cygrpc_AioServer.thread_pool = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *))__pyx_f_4grpc_7_cython_6cygrpc_9AioServer_thread_pool;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_AioServer = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_AioServer_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer)) __PYX_ERR(9, 894, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_AioServer_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_AioServer) < 0) __PYX_ERR(9, 894, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_AioServer = &__pyx_type_4grpc_7_cython_6cygrpc_AioServer;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer) < 0) __PYX_ERR(9, 894, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_AioServer->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_AioServer->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_AioServer->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_vtabptr_4grpc_7_cython_6cygrpc_AioServer) < 0) __PYX_ERR(9, 894, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer) < 0) __PYX_ERR(9, 894, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AioServer, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_AioServer) < 0) __PYX_ERR(9, 894, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_AioServer) < 0) __PYX_ERR(9, 894, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper)) __PYX_ERR(3, 16, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper_spec, __pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper) < 0) __PYX_ERR(3, 16, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper = &__pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper) < 0) __PYX_ERR(3, 16, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_GrpcArgWrapper, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper) < 0) __PYX_ERR(3, 16, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper) < 0) __PYX_ERR(3, 16, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_InsecureChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_InsecureChannelCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_InsecureChannelCredentials.__pyx_base.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials)) __PYX_ERR(5, 373, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials) < 0) __PYX_ERR(5, 373, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials) < 0) __PYX_ERR(5, 373, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_InsecureChannelCredentials) < 0) __PYX_ERR(5, 373, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials) < 0) __PYX_ERR(5, 373, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_InsecureChannelCredentials, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials) < 0) __PYX_ERR(5, 373, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials) < 0) __PYX_ERR(5, 373, __pyx_L1_error)
  #endif
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials.__pyx_base.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials)) __PYX_ERR(5, 429, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials) < 0) __PYX_ERR(5, 429, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials->tp_base = __pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials) < 0) __PYX_ERR(5, 429, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials) < 0) __PYX_ERR(5, 429, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials) < 0) __PYX_ERR(5, 429, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ComputeEngineChannelCredentials, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials) < 0) __PYX_ERR(5, 429, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials) < 0) __PYX_ERR(5, 429, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CensusContext_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext)) __PYX_ERR(26, 31, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CensusContext_spec, __pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext) < 0) __PYX_ERR(26, 31, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext = &__pyx_type_4grpc_7_cython_6cygrpc_CensusContext;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext) < 0) __PYX_ERR(26, 31, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CensusContext, (PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext) < 0) __PYX_ERR(26, 31, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext) < 0) __PYX_ERR(26, 31, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call)) __PYX_ERR(12, 334, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call) < 0) __PYX_ERR(12, 334, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call) < 0) __PYX_ERR(12, 334, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event)) __PYX_ERR(12, 379, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event) < 0) __PYX_ERR(12, 379, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event) < 0) __PYX_ERR(12, 379, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call)) __PYX_ERR(12, 392, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call) < 0) __PYX_ERR(12, 392, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call) < 0) __PYX_ERR(12, 392, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event)) __PYX_ERR(12, 529, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event) < 0) __PYX_ERR(12, 529, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event) < 0) __PYX_ERR(12, 529, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata)) __PYX_ERR(5, 37, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata) < 0) __PYX_ERR(5, 37, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata) < 0) __PYX_ERR(5, 37, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata)) __PYX_ERR(18, 68, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata) < 0) __PYX_ERR(18, 68, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata) < 0) __PYX_ERR(18, 68, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr)) __PYX_ERR(18, 70, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr) < 0) __PYX_ERR(18, 70, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr) < 0) __PYX_ERR(18, 70, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context)) __PYX_ERR(29, 50, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context) < 0) __PYX_ERR(29, 50, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context) < 0) __PYX_ERR(29, 50, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context)) __PYX_ERR(29, 56, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context) < 0) __PYX_ERR(29, 56, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context) < 0) __PYX_ERR(29, 56, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init___spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__)) __PYX_ERR(1, 107, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init___spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__) < 0) __PYX_ERR(1, 107, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__) < 0) __PYX_ERR(1, 107, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator)) __PYX_ERR(6, 123, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator) < 0) __PYX_ERR(6, 123, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator) < 0) __PYX_ERR(6, 123, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator)) __PYX_ERR(6, 141, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator) < 0) __PYX_ERR(6, 141, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator) < 0) __PYX_ERR(6, 141, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch)) __PYX_ERR(32, 77, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch) < 0) __PYX_ERR(32, 77, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch) < 0) __PYX_ERR(32, 77, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message)) __PYX_ERR(32, 115, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message) < 0) __PYX_ERR(32, 115, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message) < 0) __PYX_ERR(32, 115, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message)) __PYX_ERR(32, 139, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message) < 0) __PYX_ERR(32, 139, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message) < 0) __PYX_ERR(32, 139, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata)) __PYX_ERR(32, 151, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata) < 0) __PYX_ERR(32, 151, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata) < 0) __PYX_ERR(32, 151, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata)) __PYX_ERR(32, 162, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata) < 0) __PYX_ERR(32, 162, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata) < 0) __PYX_ERR(32, 162, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server)) __PYX_ERR(32, 169, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server) < 0) __PYX_ERR(32, 169, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server) < 0) __PYX_ERR(32, 169, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status)) __PYX_ERR(34, 235, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status) < 0) __PYX_ERR(34, 235, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status) < 0) __PYX_ERR(34, 235, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata)) __PYX_ERR(34, 258, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata) < 0) __PYX_ERR(34, 258, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata) < 0) __PYX_ERR(34, 258, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary)) __PYX_ERR(34, 296, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary) < 0) __PYX_ERR(34, 296, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary) < 0) __PYX_ERR(34, 296, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received)) __PYX_ERR(34, 347, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received) < 0) __PYX_ERR(34, 347, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received) < 0) __PYX_ERR(34, 347, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message)) __PYX_ERR(34, 364, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message) < 0) __PYX_ERR(34, 364, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message) < 0) __PYX_ERR(34, 364, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message)) __PYX_ERR(34, 381, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message) < 0) __PYX_ERR(34, 381, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message) < 0) __PYX_ERR(34, 381, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close)) __PYX_ERR(34, 389, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close) < 0) __PYX_ERR(34, 389, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close) < 0) __PYX_ERR(34, 389, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream)) __PYX_ERR(34, 395, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream) < 0) __PYX_ERR(34, 395, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream) < 0) __PYX_ERR(34, 395, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary)) __PYX_ERR(34, 437, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary) < 0) __PYX_ERR(34, 437, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary) < 0) __PYX_ERR(34, 437, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream)) __PYX_ERR(34, 496, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream) < 0) __PYX_ERR(34, 496, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream) < 0) __PYX_ERR(34, 496, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state)) __PYX_ERR(8, 71, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state) < 0) __PYX_ERR(8, 71, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state) < 0) __PYX_ERR(8, 71, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read)) __PYX_ERR(9, 127, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read) < 0) __PYX_ERR(9, 127, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read) < 0) __PYX_ERR(9, 127, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write)) __PYX_ERR(9, 140, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write) < 0) __PYX_ERR(9, 140, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write) < 0) __PYX_ERR(9, 140, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata)) __PYX_ERR(9, 150, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata) < 0) __PYX_ERR(9, 150, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata) < 0) __PYX_ERR(9, 150, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort)) __PYX_ERR(9, 164, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort) < 0) __PYX_ERR(9, 164, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort) < 0) __PYX_ERR(9, 164, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status)) __PYX_ERR(9, 203, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status) < 0) __PYX_ERR(9, 203, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status) < 0) __PYX_ERR(9, 203, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor)) __PYX_ERR(9, 354, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor) < 0) __PYX_ERR(9, 354, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor) < 0) __PYX_ERR(9, 354, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler)) __PYX_ERR(9, 370, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler) < 0) __PYX_ERR(9, 370, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler) < 0) __PYX_ERR(9, 370, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response)) __PYX_ERR(9, 389, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response) < 0) __PYX_ERR(9, 389, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response) < 0) __PYX_ERR(9, 389, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses)) __PYX_ERR(9, 460, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses) < 0) __PYX_ERR(9, 460, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses) < 0) __PYX_ERR(9, 460, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc)) __PYX_ERR(9, 530, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc) < 0) __PYX_ERR(9, 530, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc) < 0) __PYX_ERR(9, 530, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc)) __PYX_ERR(9, 564, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc) < 0) __PYX_ERR(9, 564, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc) < 0) __PYX_ERR(9, 564, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver)) __PYX_ERR(9, 603, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver) < 0) __PYX_ERR(9, 603, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver) < 0) __PYX_ERR(9, 603, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext___spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__)) __PYX_ERR(9, 619, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext___spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__) < 0) __PYX_ERR(9, 619, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__) < 0) __PYX_ERR(9, 619, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc)) __PYX_ERR(9, 623, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc) < 0) __PYX_ERR(9, 623, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc) < 0) __PYX_ERR(9, 623, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc)) __PYX_ERR(9, 655, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc) < 0) __PYX_ERR(9, 655, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc) < 0) __PYX_ERR(9, 655, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions)) __PYX_ERR(9, 686, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions) < 0) __PYX_ERR(9, 686, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions) < 0) __PYX_ERR(9, 686, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler)) __PYX_ERR(9, 742, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler) < 0) __PYX_ERR(9, 742, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler) < 0) __PYX_ERR(9, 742, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core)) __PYX_ERR(9, 755, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core) < 0) __PYX_ERR(9, 755, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core) < 0) __PYX_ERR(9, 755, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro)) __PYX_ERR(9, 772, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro) < 0) __PYX_ERR(9, 772, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro) < 0) __PYX_ERR(9, 772, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc)) __PYX_ERR(9, 795, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc) < 0) __PYX_ERR(9, 795, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc) < 0) __PYX_ERR(9, 795, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call)) __PYX_ERR(9, 942, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call) < 0) __PYX_ERR(9, 942, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call) < 0) __PYX_ERR(9, 942, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop)) __PYX_ERR(9, 962, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop) < 0) __PYX_ERR(9, 962, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop) < 0) __PYX_ERR(9, 962, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start)) __PYX_ERR(9, 1022, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start) < 0) __PYX_ERR(9, 1022, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start) < 0) __PYX_ERR(9, 1022, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down)) __PYX_ERR(9, 1036, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down) < 0) __PYX_ERR(9, 1036, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down) < 0) __PYX_ERR(9, 1036, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown)) __PYX_ERR(9, 1053, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown) < 0) __PYX_ERR(9, 1053, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown) < 0) __PYX_ERR(9, 1053, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination_spec, NULL); if (unlikely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination)) __PYX_ERR(9, 1093, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination_spec, __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination) < 0) __PYX_ERR(9, 1093, __pyx_L1_error)
  #else
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination) < 0) __PYX_ERR(9, 1093, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination->tp_dictoffset && __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_spec, NULL); if (unlikely(!__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg)) __PYX_ERR(10, 66, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_spec, __pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg) < 0) __PYX_ERR(10, 66, __pyx_L1_error)
  #else
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg = &__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg) < 0) __PYX_ERR(10, 66, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg->tp_dictoffset && __pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__spec, NULL); if (unlikely(!__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_)) __PYX_ERR(10, 66, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__spec, __pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_) < 0) __PYX_ERR(10, 66, __pyx_L1_error)
  #else
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ = &__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_) < 0) __PYX_ERR(10, 66, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_->tp_dictoffset && __pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_spec, NULL); if (unlikely(!__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args)) __PYX_ERR(10, 66, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_spec, __pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args) < 0) __PYX_ERR(10, 66, __pyx_L1_error)
  #else
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args = &__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args) < 0) __PYX_ERR(10, 66, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args->tp_dictoffset && __pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__spec, NULL); if (unlikely(!__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_)) __PYX_ERR(10, 66, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__spec, __pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_) < 0) __PYX_ERR(10, 66, __pyx_L1_error)
  #else
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ = &__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_) < 0) __PYX_ERR(10, 66, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_->tp_dictoffset && __pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_import_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
  /*--- Type import code ---*/
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(37, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_0_11(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", 
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject),
  #else
  sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyHeapTypeObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(37, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_4bool_bool = __Pyx_ImportType_3_0_11(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "bool", sizeof(PyBoolObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyBoolObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_7cpython_4bool_bool) __PYX_ERR(38, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(39, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType_3_0_11(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "complex", sizeof(PyComplexObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyComplexObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_7cpython_7complex_complex) __PYX_ERR(39, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_variable_import_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
  /*--- Variable import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_import_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
  /*--- Function import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}


#if PY_MAJOR_VERSION >= 3
#if CYTHON_PEP489_MULTI_PHASE_INIT
static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
static int __pyx_pymod_exec_cygrpc(PyObject* module); /*proto*/
static PyModuleDef_Slot __pyx_moduledef_slots[] = {
  {Py_mod_create, (void*)__pyx_pymod_create},
  {Py_mod_exec, (void*)__pyx_pymod_exec_cygrpc},
  {0, NULL}
};
#endif

#ifdef __cplusplus
namespace {
  struct PyModuleDef __pyx_moduledef =
  #else
  static struct PyModuleDef __pyx_moduledef =
  #endif
  {
      PyModuleDef_HEAD_INIT,
      "cygrpc",
      0, /* m_doc */
    #if CYTHON_PEP489_MULTI_PHASE_INIT
      0, /* m_size */
    #elif CYTHON_USE_MODULE_STATE
      sizeof(__pyx_mstate), /* m_size */
    #else
      -1, /* m_size */
    #endif
      __pyx_methods /* m_methods */,
    #if CYTHON_PEP489_MULTI_PHASE_INIT
      __pyx_moduledef_slots, /* m_slots */
    #else
      NULL, /* m_reload */
    #endif
    #if CYTHON_USE_MODULE_STATE
      __pyx_m_traverse, /* m_traverse */
      __pyx_m_clear, /* m_clear */
      NULL /* m_free */
    #else
      NULL, /* m_traverse */
      NULL, /* m_clear */
      NULL /* m_free */
    #endif
  };
  #ifdef __cplusplus
} /* anonymous namespace */
#endif
#endif

#ifndef CYTHON_NO_PYINIT_EXPORT
#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#elif PY_MAJOR_VERSION < 3
#ifdef __cplusplus
#define __Pyx_PyMODINIT_FUNC extern "C" void
#else
#define __Pyx_PyMODINIT_FUNC void
#endif
#else
#ifdef __cplusplus
#define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
#else
#define __Pyx_PyMODINIT_FUNC PyObject *
#endif
#endif


#if PY_MAJOR_VERSION < 3
__Pyx_PyMODINIT_FUNC initcygrpc(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC initcygrpc(void)
#else
__Pyx_PyMODINIT_FUNC PyInit_cygrpc(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC PyInit_cygrpc(void)
#if CYTHON_PEP489_MULTI_PHASE_INIT
{
  return PyModuleDef_Init(&__pyx_moduledef);
}
static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
    #if PY_VERSION_HEX >= 0x030700A1
    static PY_INT64_T main_interpreter_id = -1;
    PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
    if (main_interpreter_id == -1) {
        main_interpreter_id = current_id;
        return (unlikely(current_id == -1)) ? -1 : 0;
    } else if (unlikely(main_interpreter_id != current_id))
    #else
    static PyInterpreterState *main_interpreter = NULL;
    PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
    if (!main_interpreter) {
        main_interpreter = current_interpreter;
    } else if (unlikely(main_interpreter != current_interpreter))
    #endif
    {
        PyErr_SetString(
            PyExc_ImportError,
            "Interpreter change detected - this module can only be loaded into one interpreter per process.");
        return -1;
    }
    return 0;
}
#if CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *module, const char* from_name, const char* to_name, int allow_none)
#else
static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none)
#endif
{
    PyObject *value = PyObject_GetAttrString(spec, from_name);
    int result = 0;
    if (likely(value)) {
        if (allow_none || value != Py_None) {
#if CYTHON_COMPILING_IN_LIMITED_API
            result = PyModule_AddObject(module, to_name, value);
#else
            result = PyDict_SetItemString(moddict, to_name, value);
#endif
        }
        Py_DECREF(value);
    } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Clear();
    } else {
        result = -1;
    }
    return result;
}
static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) {
    PyObject *module = NULL, *moddict, *modname;
    CYTHON_UNUSED_VAR(def);
    if (__Pyx_check_single_interpreter())
        return NULL;
    if (__pyx_m)
        return __Pyx_NewRef(__pyx_m);
    modname = PyObject_GetAttrString(spec, "name");
    if (unlikely(!modname)) goto bad;
    module = PyModule_NewObject(modname);
    Py_DECREF(modname);
    if (unlikely(!module)) goto bad;
#if CYTHON_COMPILING_IN_LIMITED_API
    moddict = module;
#else
    moddict = PyModule_GetDict(module);
    if (unlikely(!moddict)) goto bad;
#endif
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
    return module;
bad:
    Py_XDECREF(module);
    return NULL;
}


static CYTHON_SMALL_CODE int __pyx_pymod_exec_cygrpc(PyObject *__pyx_pyinit_module)
#endif
#endif
{
  int stringtab_initialized = 0;
  #if CYTHON_USE_MODULE_STATE
  int pystate_addmodule_run = 0;
  #endif
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  if (__pyx_m) {
    if (__pyx_m == __pyx_pyinit_module) return 0;
    PyErr_SetString(PyExc_RuntimeError, "Module 'cygrpc' has already been imported. Re-initialisation is not supported.");
    return -1;
  }
  #elif PY_MAJOR_VERSION >= 3
  if (__pyx_m) return __Pyx_NewRef(__pyx_m);
  #endif
  /*--- Module creation code ---*/
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __pyx_m = __pyx_pyinit_module;
  Py_INCREF(__pyx_m);
  #else
  #if PY_MAJOR_VERSION < 3
  __pyx_m = Py_InitModule4("cygrpc", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
  if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
  #elif CYTHON_USE_MODULE_STATE
  __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  {
    int add_module_result = PyState_AddModule(__pyx_t_1, &__pyx_moduledef);
    __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "cygrpc" pseudovariable */
    if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
    pystate_addmodule_run = 1;
  }
  #else
  __pyx_m = PyModule_Create(&__pyx_moduledef);
  if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #endif
  CYTHON_UNUSED_VAR(__pyx_t_1);
  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_d);
  __pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_cython_runtime = __Pyx_PyImport_AddModuleRef((const char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #if CYTHON_REFNANNY
__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
if (!__Pyx_RefNanny) {
  PyErr_Clear();
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
  if (!__Pyx_RefNanny)
      Py_FatalError("failed to import 'refnanny' module");
}
#endif
  __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_cygrpc(void)", 0);
  if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #ifdef __Pxy_PyFrame_Initialize_Offsets
  __Pxy_PyFrame_Initialize_Offsets();
  #endif
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
  #ifdef __Pyx_CyFunction_USED
  if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_FusedFunction_USED
  if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Coroutine_USED
  if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Generator_USED
  if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_AsyncGen_USED
  if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_StopAsyncIteration_USED
  if (__pyx_StopAsyncIteration_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  /*--- Library function declarations ---*/
  /*--- Threads initialization code ---*/
  #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
  PyEval_InitThreads();
  #endif
  /*--- Initialize various global constants etc. ---*/
  if (__Pyx_InitConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  stringtab_initialized = 1;
  if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
  if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  if (__pyx_module_is_main_grpc___cython__cygrpc) {
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  }
  #if PY_MAJOR_VERSION >= 3
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
    if (!PyDict_GetItemString(modules, "grpc._cython.cygrpc")) {
      if (unlikely((PyDict_SetItemString(modules, "grpc._cython.cygrpc", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
    }
  }
  #endif
  /*--- Builtin init code ---*/
  if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Constants init code ---*/
  if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Global type/function init code ---*/
  (void)__Pyx_modinit_global_init_code();
  if (unlikely((__Pyx_modinit_variable_export_code() < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_function_export_code() < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_type_init_code() < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_type_import_code() < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  (void)__Pyx_modinit_variable_import_code();
  (void)__Pyx_modinit_function_import_code();
  /*--- Execution code ---*/
  #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
  if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif

  /* "grpc/_cython/cygrpc.pyx":18
 * cimport cpython
 * 
 * import logging             # <<<<<<<<<<<<<<
 * import os
 * import sys
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_logging, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_logging, __pyx_t_2) < 0) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "grpc/_cython/cygrpc.pyx":19
 * 
 * import logging
 * import os             # <<<<<<<<<<<<<<
 * import sys
 * import threading
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_os, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_2) < 0) __PYX_ERR(0, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "grpc/_cython/cygrpc.pyx":20
 * import logging
 * import os
 * import sys             # <<<<<<<<<<<<<<
 * import threading
 * import time
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_sys, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_2) < 0) __PYX_ERR(0, 20, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "grpc/_cython/cygrpc.pyx":21
 * import os
 * import sys
 * import threading             # <<<<<<<<<<<<<<
 * import time
 * 
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_threading, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading, __pyx_t_2) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "grpc/_cython/cygrpc.pyx":22
 * import sys
 * import threading
 * import time             # <<<<<<<<<<<<<<
 * 
 * import grpc
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_time, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_time, __pyx_t_2) < 0) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "grpc/_cython/cygrpc.pyx":24
 * import time
 * 
 * import grpc             # <<<<<<<<<<<<<<
 * 
 * try:
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_grpc, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_grpc, __pyx_t_2) < 0) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "grpc/_cython/cygrpc.pyx":26
 * import grpc
 * 
 * try:             # <<<<<<<<<<<<<<
 *     import asyncio
 * except ImportError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_3, &__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    /*try:*/ {

      /* "grpc/_cython/cygrpc.pyx":27
 * 
 * try:
 *     import asyncio             # <<<<<<<<<<<<<<
 * except ImportError:
 *     # TODO(https://github.com/grpc/grpc/issues/19728) Improve how Aio Cython is
 */
      __pyx_t_2 = __Pyx_patch_asyncio(__Pyx_ImportDottedModule(__pyx_n_s_asyncio, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L2_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_asyncio, __pyx_t_2) < 0) __PYX_ERR(0, 27, __pyx_L2_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "grpc/_cython/cygrpc.pyx":26
 * import grpc
 * 
 * try:             # <<<<<<<<<<<<<<
 *     import asyncio
 * except ImportError:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L7_try_end;
    __pyx_L2_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "grpc/_cython/cygrpc.pyx":28
 * try:
 *     import asyncio
 * except ImportError:             # <<<<<<<<<<<<<<
 *     # TODO(https://github.com/grpc/grpc/issues/19728) Improve how Aio Cython is
 *     # distributed without breaking none compatible Python versions. For now, if
 */
    __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError);
    if (__pyx_t_5) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L3_exception_handled;
    }
    goto __pyx_L4_except_error;

    /* "grpc/_cython/cygrpc.pyx":26
 * import grpc
 * 
 * try:             # <<<<<<<<<<<<<<
 *     import asyncio
 * except ImportError:
 */
    __pyx_L4_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_3, __pyx_t_4);
    goto __pyx_L1_error;
    __pyx_L3_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_3, __pyx_t_4);
    __pyx_L7_try_end:;
  }

  /* "grpc/_cython/cygrpc.pyx":35
 * 
 * # The only copy of Python logger for the Cython extension
 * _LOGGER = logging.getLogger(__name__)             # <<<<<<<<<<<<<<
 * 
 * # TODO(atash): figure out why the coverage tool gets confused about the Cython
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logging); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_getLogger); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOGGER, __pyx_t_7) < 0) __PYX_ERR(0, 35, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_GrpcArgWrapper___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__109)); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_7) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_GrpcArgWrapper___setstate_cytho, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__111)); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_7) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_11_ChannelArg_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ChannelArg___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_7) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_11_ChannelArg_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ChannelArg___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__113)); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_7) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12_ChannelArgs_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ChannelArgs___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_7) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12_ChannelArgs_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ChannelArgs___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__115)); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_7) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":24
 *     self.references = []
 * 
 *   def _start_batch(self, operations, tag, retain_self):             # <<<<<<<<<<<<<<
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_3_start_batch, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Call__start_batch, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__117)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Call, __pyx_n_s_start_batch, __pyx_t_7) < 0) __PYX_ERR(4, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":38
 *     return error
 * 
 *   def start_client_batch(self, operations, tag):             # <<<<<<<<<<<<<<
 *     # We don't reference this call in the operations tag because
 *     # it should be cancelled when it goes out of scope
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_5start_client_batch, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Call_start_client_batch, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__119)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Call, __pyx_n_s_start_client_batch, __pyx_t_7) < 0) __PYX_ERR(4, 38, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":43
 *     return self._start_batch(operations, tag, False)
 * 
 *   def start_server_batch(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return self._start_batch(operations, tag, True)
 * 
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_7start_server_batch, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Call_start_server_batch, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Call, __pyx_n_s_start_server_batch, __pyx_t_7) < 0) __PYX_ERR(4, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":47
 * 
 *   def cancel(
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,             # <<<<<<<<<<<<<<
 *       details=None):
 *     details = str_to_bytes(details)
 */
  __pyx_k__9 = GRPC_STATUS__DO_NOT_USE;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":46
 *     return self._start_batch(operations, tag, True)
 * 
 *   def cancel(             # <<<<<<<<<<<<<<
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS__DO_NOT_USE); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":48
 *   def cancel(
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):             # <<<<<<<<<<<<<<
 *     details = str_to_bytes(details)
 *     if not self.is_valid:
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7)) __PYX_ERR(4, 46, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None)) __PYX_ERR(4, 46, __pyx_L1_error);
  __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":46
 *     return self._start_batch(operations, tag, True)
 * 
 *   def cancel(             # <<<<<<<<<<<<<<
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_9cancel, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Call_cancel, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Call, __pyx_n_s_cancel, __pyx_t_7) < 0) __PYX_ERR(4, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":69
 *       return result
 * 
 *   def set_credentials(self, CallCredentials call_credentials not None):             # <<<<<<<<<<<<<<
 *     cdef grpc_call_credentials *c_call_credentials = call_credentials.c()
 *     cdef grpc_call_error call_error = grpc_call_set_credentials(
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_11set_credentials, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Call_set_credentials, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Call, __pyx_n_s_set_credentials, __pyx_t_7) < 0) __PYX_ERR(4, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":76
 *     return call_error
 * 
 *   def peer(self):             # <<<<<<<<<<<<<<
 *     cdef char *peer = NULL
 *     with nogil:
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_13peer, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Call_peer, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Call, __pyx_n_s_peer, __pyx_t_7) < 0) __PYX_ERR(4, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":96
 *     return self.c_call != NULL
 * 
 *   def _custom_op_on_c_call(self, int op):             # <<<<<<<<<<<<<<
 *     return _custom_op_on_c_call(op, self.c_call)
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_17_custom_op_on_c_call, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Call__custom_op_on_c_call, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Call, __pyx_n_s_custom_op_on_c_call, __pyx_t_7) < 0) __PYX_ERR(4, 96, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Call);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_19__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Call___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__129)); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_7) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_21__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Call___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_7) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":15
 * # limitations under the License.
 * 
 * from grpc import _observability             # <<<<<<<<<<<<<<
 * 
 * _INTERNAL_CALL_ERROR_MESSAGE_FORMAT = (
 */
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_observability);
  __Pyx_GIVEREF(__pyx_n_s_observability);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_observability)) __PYX_ERR(12, 15, __pyx_L1_error);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_grpc, __pyx_t_7, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_observability); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_observability, __pyx_t_7) < 0) __PYX_ERR(12, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":18
 * 
 * _INTERNAL_CALL_ERROR_MESSAGE_FORMAT = (
 *     'Internal gRPC call error %d. ' +             # <<<<<<<<<<<<<<
 *     'Please report to https://github.com/grpc/grpc/issues')
 * 
 */
  __pyx_t_2 = __Pyx_PyStr_Concat(__pyx_kp_s_Internal_gRPC_call_error_d, __pyx_kp_s_Please_report_to_https_github_co); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_INTERNAL_CALL_ERROR_MESSAGE_FOR, __pyx_t_2) < 0) __PYX_ERR(12, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10_CallState_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CallState___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__131)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10_CallState_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CallState___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_13_ChannelState_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ChannelState___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__133)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_13_ChannelState_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ChannelState___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10CallHandle_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CallHandle___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__135)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10CallHandle_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CallHandle___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__136)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":326
 *     self._call_state = call_state
 * 
 *   def operate(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return _operate_from_integrated_call(
 *         self._channel_state, self._call_state, operations, tag)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_3operate, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_IntegratedCall_operate, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__137)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall, __pyx_n_s_operate, __pyx_t_2) < 0) __PYX_ERR(12, 326, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":330
 *         self._channel_state, self._call_state, operations, tag)
 * 
 *   def cancel(self, code, details):             # <<<<<<<<<<<<<<
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_5cancel, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_IntegratedCall_cancel, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__139)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall, __pyx_n_s_cancel, __pyx_t_2) < 0) __PYX_ERR(12, 330, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_IntegratedCall___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__140)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_IntegratedCall___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__141)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":372
 *     self._call_state = call_state
 * 
 *   def operate(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return _operate_from_segregated_call(
 *         self._channel_state, self._call_state, operations, tag)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_3operate, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SegregatedCall_operate, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__142)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall, __pyx_n_s_operate, __pyx_t_2) < 0) __PYX_ERR(12, 372, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":376
 *         self._channel_state, self._call_state, operations, tag)
 * 
 *   def cancel(self, code, details):             # <<<<<<<<<<<<<<
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_5cancel, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SegregatedCall_cancel, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__143)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall, __pyx_n_s_cancel, __pyx_t_2) < 0) __PYX_ERR(12, 376, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":379
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 *   def next_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       _process_segregated_call_tag(
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_7next_event, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SegregatedCall_next_event, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__145)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall, __pyx_n_s_next_event, __pyx_t_2) < 0) __PYX_ERR(12, 379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SegregatedCall___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__146)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SegregatedCall___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__147)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":513
 *     grpc_channel_credentials_release(c_channel_credentials)
 * 
 *   def target(self):             # <<<<<<<<<<<<<<
 *     cdef char *c_target
 *     with self._state.condition:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_3target, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Channel_target, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__149)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_n_s_target, __pyx_t_2) < 0) __PYX_ERR(12, 513, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Channel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":521
 *       return target
 * 
 *   def integrated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_5integrated_call, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Channel_integrated_call, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__151)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__152);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_n_s_integrated_call, __pyx_t_2) < 0) __PYX_ERR(12, 521, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Channel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":529
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def next_call_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       if tag is not None:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_7next_call_event, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Channel_next_call_event, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__154)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_n_s_next_call_event, __pyx_t_2) < 0) __PYX_ERR(12, 529, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Channel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":543
 *                             on_success, None, queue_deadline)
 * 
 *   def segregated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_9segregated_call, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Channel_segregated_call, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__155)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__152);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_n_s_segregated_call, __pyx_t_2) < 0) __PYX_ERR(12, 543, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Channel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":551
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def check_connectivity_state(self, bint try_to_connect):             # <<<<<<<<<<<<<<
 *     with self._state.condition:
 *       if self._state.open:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_11check_connectivity_state, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Channel_check_connectivity_state, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__157)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_n_s_check_connectivity_state, __pyx_t_2) < 0) __PYX_ERR(12, 551, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Channel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":559
 *         raise ValueError('Cannot invoke RPC: %s' % self._state.closed_reason)
 * 
 *   def watch_connectivity_state(             # <<<<<<<<<<<<<<
 *       self, grpc_connectivity_state last_observed_state, object deadline):
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_13watch_connectivity_state, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Channel_watch_connectivity_state, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__159)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_n_s_watch_connectivity_state, __pyx_t_2) < 0) __PYX_ERR(12, 559, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Channel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":563
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)
 * 
 *   def close(self, code, details):             # <<<<<<<<<<<<<<
 *     _close(self, code, details, False)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_15close, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Channel_close, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__160)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_n_s_close, __pyx_t_2) < 0) __PYX_ERR(12, 563, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Channel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":566
 *     _close(self, code, details, False)
 * 
 *   def close_on_fork(self, code, details):             # <<<<<<<<<<<<<<
 *     _close(self, code, details, True)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_17close_on_fork, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Channel_close_on_fork, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__161)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 566, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_n_s_close_on_fork_2, __pyx_t_2) < 0) __PYX_ERR(12, 566, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Channel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":569
 *     _close(self, code, details, True)
 * 
 *   def get_registered_call_handle(self, method):             # <<<<<<<<<<<<<<
 *     """
 *     Get or registers a call handler for a method.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_19get_registered_call_handle, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Channel_get_registered_call_hand, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__163)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_n_s_get_registered_call_handle, __pyx_t_2) < 0) __PYX_ERR(12, 569, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Channel);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_21__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Channel___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__164)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_23__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Channel___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__165)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":16
 * 
 * 
 * def channelz_get_top_channels(start_channel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_top_channels(
 *         start_channel_id,
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_1channelz_get_top_channels, 0, __pyx_n_s_channelz_get_top_channels, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__167)); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_channelz_get_top_channels, __pyx_t_2) < 0) __PYX_ERR(13, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":25
 *     return c_returned_str
 * 
 * def channelz_get_servers(start_server_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)
 *     if c_returned_str == NULL:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_3channelz_get_servers, 0, __pyx_n_s_channelz_get_servers, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__169)); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_channelz_get_servers, __pyx_t_2) < 0) __PYX_ERR(13, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":32
 *     return c_returned_str
 * 
 * def channelz_get_server(server_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)
 *     if c_returned_str == NULL:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_5channelz_get_server, 0, __pyx_n_s_channelz_get_server, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__171)); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_channelz_get_server, __pyx_t_2) < 0) __PYX_ERR(13, 32, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":39
 *     return c_returned_str
 * 
 * def channelz_get_server_sockets(server_id, start_socket_id, max_results):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_server_sockets(
 *         server_id,
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7channelz_get_server_sockets, 0, __pyx_n_s_channelz_get_server_sockets, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__173)); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_channelz_get_server_sockets, __pyx_t_2) < 0) __PYX_ERR(13, 39, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":52
 *     return c_returned_str
 * 
 * def channelz_get_channel(channel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)
 *     if c_returned_str == NULL:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9channelz_get_channel, 0, __pyx_n_s_channelz_get_channel, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__175)); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_channelz_get_channel, __pyx_t_2) < 0) __PYX_ERR(13, 52, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":59
 *     return c_returned_str
 * 
 * def channelz_get_subchannel(subchannel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)
 *     if c_returned_str == NULL:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_11channelz_get_subchannel, 0, __pyx_n_s_channelz_get_subchannel, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__177)); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_channelz_get_subchannel, __pyx_t_2) < 0) __PYX_ERR(13, 59, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":66
 *     return c_returned_str
 * 
 * def channelz_get_socket(socket_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)
 *     if c_returned_str == NULL:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_13channelz_get_socket, 0, __pyx_n_s_channelz_get_socket, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__179)); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_channelz_get_socket, __pyx_t_2) < 0) __PYX_ERR(13, 66, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":16
 * 
 * 
 * def dump_xds_configs():             # <<<<<<<<<<<<<<
 *     cdef grpc_slice client_config_in_slice
 *     with nogil:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15dump_xds_configs, 0, __pyx_n_s_dump_xds_configs, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__181)); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_dump_xds_configs, __pyx_t_2) < 0) __PYX_ERR(14, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":16
 * 
 * 
 * def _spawn_callback_in_thread(cb_func, args):             # <<<<<<<<<<<<<<
 *   t = ForkManagedThread(target=cb_func, args=args)
 *   t.setDaemon(True)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17_spawn_callback_in_thread, 0, __pyx_n_s_spawn_callback_in_thread, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__183)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_spawn_callback_in_thread, __pyx_t_2) < 0) __PYX_ERR(5, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":21
 *   t.start()
 * 
 * async_callback_func = _spawn_callback_in_thread             # <<<<<<<<<<<<<<
 * 
 * def set_async_callback_func(callback_func):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_spawn_callback_in_thread); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_async_callback_func, __pyx_t_2) < 0) __PYX_ERR(5, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":23
 * async_callback_func = _spawn_callback_in_thread
 * 
 * def set_async_callback_func(callback_func):             # <<<<<<<<<<<<<<
 *   global async_callback_func
 *   async_callback_func = callback_func
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19set_async_callback_func, 0, __pyx_n_s_set_async_callback_func, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__185)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_set_async_callback_func, __pyx_t_2) < 0) __PYX_ERR(5, 23, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":27
 *   async_callback_func = callback_func
 * 
 * def _spawn_callback_async(callback, args):             # <<<<<<<<<<<<<<
 *   async_callback_func(callback, args)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21_spawn_callback_async, 0, __pyx_n_s_spawn_callback_async, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__187)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_spawn_callback_async, __pyx_t_2) < 0) __PYX_ERR(5, 27, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CallCredentials_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CallCredentials___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__188)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CallCredentials_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CallCredentials___setstate_cytho, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__189)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MetadataPluginCallCredentials_2, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__190)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MetadataPluginCallCredentials_3, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__191)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompositeCallCredentials___reduc, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__192)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompositeCallCredentials___setst, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__193)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18ChannelCredentials_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ChannelCredentials___reduce_cyth, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__195)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ChannelCredentials__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18ChannelCredentials_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ChannelCredentials___setstate_cy, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__196)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SSLSessionCacheLRU___reduce_cyth, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__197)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SSLSessionCacheLRU___setstate_cy, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__198)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SSLChannelCredentials___reduce_c, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__199)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SSLChannelCredentials___setstate, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__200)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompositeChannelCredentials___re, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__201)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompositeChannelCredentials___se, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__202)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_XDSChannelCredentials___reduce_c, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__203)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_XDSChannelCredentials___setstate, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__204)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServerCertificateConfig___reduce, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__205)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServerCertificateConfig___setsta, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__206)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ServerCredentials_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServerCredentials___reduce_cytho, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__207)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ServerCredentials_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServerCredentials___setstate_cyt, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__208)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":257
 *   return c_ssl_pem_key_cert_pairs
 * 
 * def server_credentials_ssl(pem_root_certs, pem_key_cert_pairs,             # <<<<<<<<<<<<<<
 *                            bint force_client_auth):
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23server_credentials_ssl, 0, __pyx_n_s_server_credentials_ssl, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__210)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_server_credentials_ssl, __pyx_t_2) < 0) __PYX_ERR(5, 257, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":282
 *   return credentials
 * 
 * def server_certificate_config_ssl(pem_root_certs, pem_key_cert_pairs):             # <<<<<<<<<<<<<<
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_25server_certificate_config_ssl, 0, __pyx_n_s_server_certificate_config_ssl, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__212)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_server_certificate_config_ssl, __pyx_t_2) < 0) __PYX_ERR(5, 282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":296
 *   return cert_config
 * 
 * def server_credentials_ssl_dynamic_cert_config(initial_cert_config,             # <<<<<<<<<<<<<<
 *                                                cert_config_fetcher,
 *                                                bint force_client_auth):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_27server_credentials_ssl_dynamic_cert_config, 0, __pyx_n_s_server_credentials_ssl_dynamic_c, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__214)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_server_credentials_ssl_dynamic_c, __pyx_t_2) < 0) __PYX_ERR(5, 296, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":356
 * 
 * 
 * class LocalConnectionType:             # <<<<<<<<<<<<<<
 *   uds = UDS
 *   local_tcp = LOCAL_TCP
 */
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_LocalConnectionType, __pyx_n_s_LocalConnectionType, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":357
 * 
 * class LocalConnectionType:
 *   uds = UDS             # <<<<<<<<<<<<<<
 *   local_tcp = LOCAL_TCP
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_local_connect_type(UDS); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_uds, __pyx_t_7) < 0) __PYX_ERR(5, 357, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":358
 * class LocalConnectionType:
 *   uds = UDS
 *   local_tcp = LOCAL_TCP             # <<<<<<<<<<<<<<
 * 
 * cdef class LocalChannelCredentials(ChannelCredentials):
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_local_connect_type(LOCAL_TCP); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_local_tcp, __pyx_t_7) < 0) __PYX_ERR(5, 358, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":356
 * 
 * 
 * class LocalConnectionType:             # <<<<<<<<<<<<<<
 *   uds = UDS
 *   local_tcp = LOCAL_TCP
 */
  __pyx_t_7 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_LocalConnectionType, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_LocalConnectionType, __pyx_t_7) < 0) __PYX_ERR(5, 356, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_LocalChannelCredentials___reduce, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__215)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_LocalChannelCredentials___setsta, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__216)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":370
 *     return grpc_local_credentials_create(local_connect_type)
 * 
 * def channel_credentials_local(grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *   return LocalChannelCredentials(local_connect_type)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29channel_credentials_local, 0, __pyx_n_s_channel_credentials_local, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__218)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_channel_credentials_local, __pyx_t_2) < 0) __PYX_ERR(5, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_InsecureChannelCredentials___red, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__219)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_InsecureChannelCredentials__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_InsecureChannelCredentials___set, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__220)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":378
 *     return grpc_insecure_credentials_create()
 * 
 * def channel_credentials_insecure():             # <<<<<<<<<<<<<<
 *   return InsecureChannelCredentials()
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_31channel_credentials_insecure, 0, __pyx_n_s_channel_credentials_insecure, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__221)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_channel_credentials_insecure, __pyx_t_2) < 0) __PYX_ERR(5, 378, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":381
 *   return InsecureChannelCredentials()
 * 
 * def server_credentials_local(grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_local_server_credentials_create(local_connect_type)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_33server_credentials_local, 0, __pyx_n_s_server_credentials_local, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__223)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_server_credentials_local, __pyx_t_2) < 0) __PYX_ERR(5, 381, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":386
 *   return credentials
 * 
 * def xds_server_credentials(ServerCredentials fallback_credentials):             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_xds_server_credentials_create(fallback_credentials.c_credentials)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_35xds_server_credentials, 0, __pyx_n_s_xds_server_credentials, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__225)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_xds_server_credentials, __pyx_t_2) < 0) __PYX_ERR(5, 386, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":394
 *   return credentials
 * 
 * def insecure_server_credentials():             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_insecure_server_credentials_create()
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_37insecure_server_credentials, 0, __pyx_n_s_insecure_server_credentials, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__227)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_insecure_server_credentials, __pyx_t_2) < 0) __PYX_ERR(5, 394, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ALTSChannelCredentials___reduce, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__228)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ALTSChannelCredentials___setstat, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__229)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":416
 * 
 * 
 * def channel_credentials_alts(list service_accounts):             # <<<<<<<<<<<<<<
 *   return ALTSChannelCredentials(service_accounts)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_39channel_credentials_alts, 0, __pyx_n_s_channel_credentials_alts, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__231)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_channel_credentials_alts, __pyx_t_2) < 0) __PYX_ERR(5, 416, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":420
 * 
 * 
 * def server_credentials_alts():             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   cdef grpc_alts_credentials_options* c_options = grpc_alts_credentials_server_options_create()
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_41server_credentials_alts, 0, __pyx_n_s_server_credentials_alts, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__233)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_server_credentials_alts, __pyx_t_2) < 0) __PYX_ERR(5, 420, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ComputeEngineChannelCredentials_2, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__234)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ComputeEngineChannelCredentials_3, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__235)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":445
 * 
 * 
 * def channel_credentials_compute_engine(call_creds):             # <<<<<<<<<<<<<<
 *   return ComputeEngineChannelCredentials(call_creds)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_43channel_credentials_compute_engine, 0, __pyx_n_s_channel_credentials_compute_engi, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__237)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 445, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_channel_credentials_compute_engi, __pyx_t_2) < 0) __PYX_ERR(5, 445, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":16
 * 
 * 
 * g_interrupt_check_period_ms = 200             # <<<<<<<<<<<<<<
 * 
 * cdef grpc_event _next(grpc_completion_queue *c_completion_queue, deadline) except *:
 */
  __pyx_v_4grpc_7_cython_6cygrpc_g_interrupt_check_period_ms = 0xC8;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":103
 *     return event
 * 
 *   def _internal_poll(self, deadline):             # <<<<<<<<<<<<<<
 *     return self._interpret_event(_next(self.c_completion_queue, deadline))
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_3_internal_poll, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompletionQueue__internal_poll, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__239)); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, __pyx_n_s_internal_poll, __pyx_t_2) < 0) __PYX_ERR(15, 103, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":108
 *   # We name this 'poll' to avoid problems with CPython's expectations for
 *   # 'special' methods (like next and __next__).
 *   def poll(self, deadline=None):             # <<<<<<<<<<<<<<
 *     global g_gevent_activated
 *     if g_gevent_activated:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_5poll, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompletionQueue_poll, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__240)); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__241);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, __pyx_n_s_poll, __pyx_t_2) < 0) __PYX_ERR(15, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":115
 *       return self._internal_poll(deadline)
 * 
 *   def shutdown(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_completion_queue_shutdown(self.c_completion_queue)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_7shutdown, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompletionQueue_shutdown, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__242)); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, __pyx_n_s_shutdown, __pyx_t_2) < 0) __PYX_ERR(15, 115, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":120
 *     self.is_shutting_down = True
 * 
 *   def clear(self):             # <<<<<<<<<<<<<<
 *     if not self.is_shutting_down:
 *       raise ValueError('queue must be shutting down to be cleared')
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_9clear, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompletionQueue_clear, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__243)); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, __pyx_n_s_clear, __pyx_t_2) < 0) __PYX_ERR(15, 120, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_13__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompletionQueue___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__244)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_15__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompletionQueue___setstate_cytho, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__245)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ConnectivityEvent___reduce_cytho, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__246)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ConnectivityEvent_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ConnectivityEvent___setstate_cyt, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__247)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16RequestCallEvent_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RequestCallEvent___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__248)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16RequestCallEvent_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RequestCallEvent___setstate_cyth, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__249)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BatchOperationEvent___reduce_cyt, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__250)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19BatchOperationEvent_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BatchOperationEvent___setstate_c, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__251)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServerShutdownEvent___reduce_cyt, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__252)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServerShutdownEvent___setstate_c, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__253)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":15
 * # limitations under the License.
 * 
 * import collections             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_collections, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_collections, __pyx_t_2) < 0) __PYX_ERR(18, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":18
 * 
 * 
 * class InitialMetadataFlags:             # <<<<<<<<<<<<<<
 *   used_mask = GRPC_INITIAL_METADATA_USED_MASK
 *   wait_for_ready = GRPC_INITIAL_METADATA_WAIT_FOR_READY
 */
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_InitialMetadataFlags, __pyx_n_s_InitialMetadataFlags, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":19
 * 
 * class InitialMetadataFlags:
 *   used_mask = GRPC_INITIAL_METADATA_USED_MASK             # <<<<<<<<<<<<<<
 *   wait_for_ready = GRPC_INITIAL_METADATA_WAIT_FOR_READY
 *   wait_for_ready_explicitly_set = GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET
 */
  __pyx_t_7 = __Pyx_PyInt_From_int(GRPC_INITIAL_METADATA_USED_MASK); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_used_mask, __pyx_t_7) < 0) __PYX_ERR(18, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":20
 * class InitialMetadataFlags:
 *   used_mask = GRPC_INITIAL_METADATA_USED_MASK
 *   wait_for_ready = GRPC_INITIAL_METADATA_WAIT_FOR_READY             # <<<<<<<<<<<<<<
 *   wait_for_ready_explicitly_set = GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_int(GRPC_INITIAL_METADATA_WAIT_FOR_READY); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_wait_for_ready, __pyx_t_7) < 0) __PYX_ERR(18, 20, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":21
 *   used_mask = GRPC_INITIAL_METADATA_USED_MASK
 *   wait_for_ready = GRPC_INITIAL_METADATA_WAIT_FOR_READY
 *   wait_for_ready_explicitly_set = GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_int(GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_wait_for_ready_explicitly_set, __pyx_t_7) < 0) __PYX_ERR(18, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":18
 * 
 * 
 * class InitialMetadataFlags:             # <<<<<<<<<<<<<<
 *   used_mask = GRPC_INITIAL_METADATA_USED_MASK
 *   wait_for_ready = GRPC_INITIAL_METADATA_WAIT_FOR_READY
 */
  __pyx_t_7 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_InitialMetadataFlags, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InitialMetadataFlags, __pyx_t_7) < 0) __PYX_ERR(18, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":24
 * 
 * 
 * _Metadatum = collections.namedtuple('_Metadatum', ('key', 'value',))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_collections); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_namedtuple); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__255, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Metadatum, __pyx_t_2) < 0) __PYX_ERR(18, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9Operation_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Operation___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__256)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9Operation_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Operation___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__257)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":31
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_INITIAL_METADATA
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SendInitialMetadataOperation_typ, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__258)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, __pyx_n_s_type, __pyx_t_2) < 0) __PYX_ERR(19, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SendInitialMetadataOperation___r, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__259)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SendInitialMetadataOperation___s, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__260)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":58
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_MESSAGE
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20SendMessageOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SendMessageOperation_type, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__261)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation, __pyx_n_s_type, __pyx_t_2) < 0) __PYX_ERR(19, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20SendMessageOperation_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SendMessageOperation___reduce_cy, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__262)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20SendMessageOperation_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SendMessageOperation___setstate, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__263)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":80
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_CLOSE_FROM_CLIENT
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SendCloseFromClientOperation_typ, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__264)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation, __pyx_n_s_type, __pyx_t_2) < 0) __PYX_ERR(19, 80, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SendCloseFromClientOperation___r, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__265)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SendCloseFromClientOperation___s, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__266)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":99
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_STATUS_FROM_SERVER
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SendStatusFromServerOperation_ty, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__267)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, __pyx_n_s_type, __pyx_t_2) < 0) __PYX_ERR(19, 99, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SendStatusFromServerOperation_2, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__268)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SendStatusFromServerOperation_3, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__269)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":127
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_INITIAL_METADATA
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveInitialMetadataOperation_2, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__270)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, __pyx_n_s_type, __pyx_t_2) < 0) __PYX_ERR(19, 127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":141
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)
 * 
 *   def initial_metadata(self):             # <<<<<<<<<<<<<<
 *     return self._initial_metadata
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_5initial_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveInitialMetadataOperation_3, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__271)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, __pyx_n_s_initial_metadata, __pyx_t_2) < 0) __PYX_ERR(19, 141, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveInitialMetadataOperation_4, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__272)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveInitialMetadataOperation_5, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__273)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":150
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_MESSAGE
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveMessageOperation_type, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__274)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation, __pyx_n_s_type, __pyx_t_2) < 0) __PYX_ERR(19, 150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":183
 *       self._message = None
 * 
 *   def message(self):             # <<<<<<<<<<<<<<
 *     return self._message
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_5message, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveMessageOperation_message, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__275)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation, __pyx_n_s_message, __pyx_t_2) < 0) __PYX_ERR(19, 183, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveMessageOperation___reduce, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__276)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveMessageOperation___setsta, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__277)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":192
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_STATUS_ON_CLIENT
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveStatusOnClientOperation_t, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__278)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, __pyx_n_s_type, __pyx_t_2) < 0) __PYX_ERR(19, 192, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":220
 *       self._error_string = ""
 * 
 *   def trailing_metadata(self):             # <<<<<<<<<<<<<<
 *     return self._trailing_metadata
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_5trailing_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveStatusOnClientOperation_t_2, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__279)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, __pyx_n_s_trailing_metadata, __pyx_t_2) < 0) __PYX_ERR(19, 220, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":223
 *     return self._trailing_metadata
 * 
 *   def code(self):             # <<<<<<<<<<<<<<
 *     return self._code
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_7code, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveStatusOnClientOperation_c, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__280)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, __pyx_n_s_code, __pyx_t_2) < 0) __PYX_ERR(19, 223, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":226
 *     return self._code
 * 
 *   def details(self):             # <<<<<<<<<<<<<<
 *     return self._details
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_9details, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveStatusOnClientOperation_d, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__281)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, __pyx_n_s_details, __pyx_t_2) < 0) __PYX_ERR(19, 226, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":229
 *     return self._details
 * 
 *   def error_string(self):             # <<<<<<<<<<<<<<
 *     return self._error_string
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_11error_string, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveStatusOnClientOperation_e, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__282)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, __pyx_n_s_error_string, __pyx_t_2) < 0) __PYX_ERR(19, 229, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_13__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveStatusOnClientOperation_2, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__283)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_15__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveStatusOnClientOperation_3, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__284)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":238
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_CLOSE_ON_SERVER
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveCloseOnServerOperation_ty, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__285)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, __pyx_n_s_type, __pyx_t_2) < 0) __PYX_ERR(19, 238, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":249
 *     self._cancelled = bool(self._c_cancelled)
 * 
 *   def cancelled(self):             # <<<<<<<<<<<<<<
 *     return self._cancelled
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_5cancelled, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveCloseOnServerOperation_ca, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__286)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, __pyx_n_s_cancelled, __pyx_t_2) < 0) __PYX_ERR(19, 249, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveCloseOnServerOperation_2, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__287)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ReceiveCloseOnServerOperation_3, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__288)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi":15
 * # limitations under the License.
 * 
 * class PropagationConstants:             # <<<<<<<<<<<<<<
 *     GRPC_PROPAGATE_DEADLINE = _GRPC_PROPAGATE_DEADLINE
 *     GRPC_PROPAGATE_CENSUS_STATS_CONTEXT = _GRPC_PROPAGATE_CENSUS_STATS_CONTEXT
 */
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_PropagationConstants, __pyx_n_s_PropagationConstants, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi":16
 * 
 * class PropagationConstants:
 *     GRPC_PROPAGATE_DEADLINE = _GRPC_PROPAGATE_DEADLINE             # <<<<<<<<<<<<<<
 *     GRPC_PROPAGATE_CENSUS_STATS_CONTEXT = _GRPC_PROPAGATE_CENSUS_STATS_CONTEXT
 *     GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT = _GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT
 */
  __pyx_t_7 = __Pyx_PyInt_From_int(GRPC_PROPAGATE_DEADLINE); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_GRPC_PROPAGATE_DEADLINE, __pyx_t_7) < 0) __PYX_ERR(40, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi":17
 * class PropagationConstants:
 *     GRPC_PROPAGATE_DEADLINE = _GRPC_PROPAGATE_DEADLINE
 *     GRPC_PROPAGATE_CENSUS_STATS_CONTEXT = _GRPC_PROPAGATE_CENSUS_STATS_CONTEXT             # <<<<<<<<<<<<<<
 *     GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT = _GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT
 *     GRPC_PROPAGATE_CANCELLATION = _GRPC_PROPAGATE_CANCELLATION
 */
  __pyx_t_7 = __Pyx_PyInt_From_int(GRPC_PROPAGATE_CENSUS_STATS_CONTEXT); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_GRPC_PROPAGATE_CENSUS_STATS_CONT, __pyx_t_7) < 0) __PYX_ERR(40, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi":18
 *     GRPC_PROPAGATE_DEADLINE = _GRPC_PROPAGATE_DEADLINE
 *     GRPC_PROPAGATE_CENSUS_STATS_CONTEXT = _GRPC_PROPAGATE_CENSUS_STATS_CONTEXT
 *     GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT = _GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT             # <<<<<<<<<<<<<<
 *     GRPC_PROPAGATE_CANCELLATION = _GRPC_PROPAGATE_CANCELLATION
 *     GRPC_PROPAGATE_DEFAULTS = _GRPC_PROPAGATE_DEFAULTS
 */
  __pyx_t_7 = __Pyx_PyInt_From_int(GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_GRPC_PROPAGATE_CENSUS_TRACING_CO, __pyx_t_7) < 0) __PYX_ERR(40, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi":19
 *     GRPC_PROPAGATE_CENSUS_STATS_CONTEXT = _GRPC_PROPAGATE_CENSUS_STATS_CONTEXT
 *     GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT = _GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT
 *     GRPC_PROPAGATE_CANCELLATION = _GRPC_PROPAGATE_CANCELLATION             # <<<<<<<<<<<<<<
 *     GRPC_PROPAGATE_DEFAULTS = _GRPC_PROPAGATE_DEFAULTS
 */
  __pyx_t_7 = __Pyx_PyInt_From_int(GRPC_PROPAGATE_CANCELLATION); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_GRPC_PROPAGATE_CANCELLATION, __pyx_t_7) < 0) __PYX_ERR(40, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi":20
 *     GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT = _GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT
 *     GRPC_PROPAGATE_CANCELLATION = _GRPC_PROPAGATE_CANCELLATION
 *     GRPC_PROPAGATE_DEFAULTS = _GRPC_PROPAGATE_DEFAULTS             # <<<<<<<<<<<<<<
 */
  __pyx_t_7 = __Pyx_PyInt_From_int(GRPC_PROPAGATE_DEFAULTS); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_GRPC_PROPAGATE_DEFAULTS, __pyx_t_7) < 0) __PYX_ERR(40, 20, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi":15
 * # limitations under the License.
 * 
 * class PropagationConstants:             # <<<<<<<<<<<<<<
 *     GRPC_PROPAGATE_DEADLINE = _GRPC_PROPAGATE_DEADLINE
 *     GRPC_PROPAGATE_CENSUS_STATS_CONTEXT = _GRPC_PROPAGATE_CENSUS_STATS_CONTEXT
 */
  __pyx_t_7 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_PropagationConstants, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_PropagationConstants, __pyx_t_7) < 0) __PYX_ERR(40, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":35
 * 
 * 
 * class ConnectivityState:             # <<<<<<<<<<<<<<
 *   idle = GRPC_CHANNEL_IDLE
 *   connecting = GRPC_CHANNEL_CONNECTING
 */
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_ConnectivityState, __pyx_n_s_ConnectivityState, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":36
 * 
 * class ConnectivityState:
 *   idle = GRPC_CHANNEL_IDLE             # <<<<<<<<<<<<<<
 *   connecting = GRPC_CHANNEL_CONNECTING
 *   ready = GRPC_CHANNEL_READY
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_connectivity_state(GRPC_CHANNEL_IDLE); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_idle, __pyx_t_7) < 0) __PYX_ERR(21, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":37
 * class ConnectivityState:
 *   idle = GRPC_CHANNEL_IDLE
 *   connecting = GRPC_CHANNEL_CONNECTING             # <<<<<<<<<<<<<<
 *   ready = GRPC_CHANNEL_READY
 *   transient_failure = GRPC_CHANNEL_TRANSIENT_FAILURE
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_connectivity_state(GRPC_CHANNEL_CONNECTING); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_connecting, __pyx_t_7) < 0) __PYX_ERR(21, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":38
 *   idle = GRPC_CHANNEL_IDLE
 *   connecting = GRPC_CHANNEL_CONNECTING
 *   ready = GRPC_CHANNEL_READY             # <<<<<<<<<<<<<<
 *   transient_failure = GRPC_CHANNEL_TRANSIENT_FAILURE
 *   shutdown = GRPC_CHANNEL_SHUTDOWN
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_connectivity_state(GRPC_CHANNEL_READY); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ready, __pyx_t_7) < 0) __PYX_ERR(21, 38, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":39
 *   connecting = GRPC_CHANNEL_CONNECTING
 *   ready = GRPC_CHANNEL_READY
 *   transient_failure = GRPC_CHANNEL_TRANSIENT_FAILURE             # <<<<<<<<<<<<<<
 *   shutdown = GRPC_CHANNEL_SHUTDOWN
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_connectivity_state(GRPC_CHANNEL_TRANSIENT_FAILURE); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_transient_failure, __pyx_t_7) < 0) __PYX_ERR(21, 39, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":40
 *   ready = GRPC_CHANNEL_READY
 *   transient_failure = GRPC_CHANNEL_TRANSIENT_FAILURE
 *   shutdown = GRPC_CHANNEL_SHUTDOWN             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_connectivity_state(GRPC_CHANNEL_SHUTDOWN); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_shutdown, __pyx_t_7) < 0) __PYX_ERR(21, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":35
 * 
 * 
 * class ConnectivityState:             # <<<<<<<<<<<<<<
 *   idle = GRPC_CHANNEL_IDLE
 *   connecting = GRPC_CHANNEL_CONNECTING
 */
  __pyx_t_7 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_ConnectivityState, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ConnectivityState, __pyx_t_7) < 0) __PYX_ERR(21, 35, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":43
 * 
 * 
 * class ChannelArgKey:             # <<<<<<<<<<<<<<
 *   enable_census = GRPC_ARG_ENABLE_CENSUS
 *   max_concurrent_streams = GRPC_ARG_MAX_CONCURRENT_STREAMS
 */
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_ChannelArgKey, __pyx_n_s_ChannelArgKey, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":44
 * 
 * class ChannelArgKey:
 *   enable_census = GRPC_ARG_ENABLE_CENSUS             # <<<<<<<<<<<<<<
 *   max_concurrent_streams = GRPC_ARG_MAX_CONCURRENT_STREAMS
 *   max_receive_message_length = GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH
 */
  __pyx_t_7 = __Pyx_PyBytes_FromString(GRPC_ARG_ENABLE_CENSUS); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_enable_census, __pyx_t_7) < 0) __PYX_ERR(21, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":45
 * class ChannelArgKey:
 *   enable_census = GRPC_ARG_ENABLE_CENSUS
 *   max_concurrent_streams = GRPC_ARG_MAX_CONCURRENT_STREAMS             # <<<<<<<<<<<<<<
 *   max_receive_message_length = GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH
 *   max_send_message_length = GRPC_ARG_MAX_SEND_MESSAGE_LENGTH
 */
  __pyx_t_7 = __Pyx_PyBytes_FromString(GRPC_ARG_MAX_CONCURRENT_STREAMS); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_max_concurrent_streams, __pyx_t_7) < 0) __PYX_ERR(21, 45, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":46
 *   enable_census = GRPC_ARG_ENABLE_CENSUS
 *   max_concurrent_streams = GRPC_ARG_MAX_CONCURRENT_STREAMS
 *   max_receive_message_length = GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH             # <<<<<<<<<<<<<<
 *   max_send_message_length = GRPC_ARG_MAX_SEND_MESSAGE_LENGTH
 *   http2_initial_sequence_number = GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER
 */
  __pyx_t_7 = __Pyx_PyBytes_FromString(GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_max_receive_message_length, __pyx_t_7) < 0) __PYX_ERR(21, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":47
 *   max_concurrent_streams = GRPC_ARG_MAX_CONCURRENT_STREAMS
 *   max_receive_message_length = GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH
 *   max_send_message_length = GRPC_ARG_MAX_SEND_MESSAGE_LENGTH             # <<<<<<<<<<<<<<
 *   http2_initial_sequence_number = GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER
 *   default_authority = GRPC_ARG_DEFAULT_AUTHORITY
 */
  __pyx_t_7 = __Pyx_PyBytes_FromString(GRPC_ARG_MAX_SEND_MESSAGE_LENGTH); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_max_send_message_length, __pyx_t_7) < 0) __PYX_ERR(21, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":48
 *   max_receive_message_length = GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH
 *   max_send_message_length = GRPC_ARG_MAX_SEND_MESSAGE_LENGTH
 *   http2_initial_sequence_number = GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER             # <<<<<<<<<<<<<<
 *   default_authority = GRPC_ARG_DEFAULT_AUTHORITY
 *   primary_user_agent_string = GRPC_ARG_PRIMARY_USER_AGENT_STRING
 */
  __pyx_t_7 = __Pyx_PyBytes_FromString(GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_http2_initial_sequence_number, __pyx_t_7) < 0) __PYX_ERR(21, 48, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":49
 *   max_send_message_length = GRPC_ARG_MAX_SEND_MESSAGE_LENGTH
 *   http2_initial_sequence_number = GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER
 *   default_authority = GRPC_ARG_DEFAULT_AUTHORITY             # <<<<<<<<<<<<<<
 *   primary_user_agent_string = GRPC_ARG_PRIMARY_USER_AGENT_STRING
 *   secondary_user_agent_string = GRPC_ARG_SECONDARY_USER_AGENT_STRING
 */
  __pyx_t_7 = __Pyx_PyBytes_FromString(GRPC_ARG_DEFAULT_AUTHORITY); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_default_authority, __pyx_t_7) < 0) __PYX_ERR(21, 49, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":50
 *   http2_initial_sequence_number = GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER
 *   default_authority = GRPC_ARG_DEFAULT_AUTHORITY
 *   primary_user_agent_string = GRPC_ARG_PRIMARY_USER_AGENT_STRING             # <<<<<<<<<<<<<<
 *   secondary_user_agent_string = GRPC_ARG_SECONDARY_USER_AGENT_STRING
 *   ssl_session_cache = GRPC_SSL_SESSION_CACHE_ARG
 */
  __pyx_t_7 = __Pyx_PyBytes_FromString(GRPC_ARG_PRIMARY_USER_AGENT_STRING); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_primary_user_agent_string, __pyx_t_7) < 0) __PYX_ERR(21, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":51
 *   default_authority = GRPC_ARG_DEFAULT_AUTHORITY
 *   primary_user_agent_string = GRPC_ARG_PRIMARY_USER_AGENT_STRING
 *   secondary_user_agent_string = GRPC_ARG_SECONDARY_USER_AGENT_STRING             # <<<<<<<<<<<<<<
 *   ssl_session_cache = GRPC_SSL_SESSION_CACHE_ARG
 *   ssl_target_name_override = GRPC_SSL_TARGET_NAME_OVERRIDE_ARG
 */
  __pyx_t_7 = __Pyx_PyBytes_FromString(GRPC_ARG_SECONDARY_USER_AGENT_STRING); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_secondary_user_agent_string, __pyx_t_7) < 0) __PYX_ERR(21, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":52
 *   primary_user_agent_string = GRPC_ARG_PRIMARY_USER_AGENT_STRING
 *   secondary_user_agent_string = GRPC_ARG_SECONDARY_USER_AGENT_STRING
 *   ssl_session_cache = GRPC_SSL_SESSION_CACHE_ARG             # <<<<<<<<<<<<<<
 *   ssl_target_name_override = GRPC_SSL_TARGET_NAME_OVERRIDE_ARG
 * 
 */
  __pyx_t_7 = __Pyx_PyBytes_FromString(GRPC_SSL_SESSION_CACHE_ARG); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ssl_session_cache, __pyx_t_7) < 0) __PYX_ERR(21, 52, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":53
 *   secondary_user_agent_string = GRPC_ARG_SECONDARY_USER_AGENT_STRING
 *   ssl_session_cache = GRPC_SSL_SESSION_CACHE_ARG
 *   ssl_target_name_override = GRPC_SSL_TARGET_NAME_OVERRIDE_ARG             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = __Pyx_PyBytes_FromString(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ssl_target_name_override, __pyx_t_7) < 0) __PYX_ERR(21, 53, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":43
 * 
 * 
 * class ChannelArgKey:             # <<<<<<<<<<<<<<
 *   enable_census = GRPC_ARG_ENABLE_CENSUS
 *   max_concurrent_streams = GRPC_ARG_MAX_CONCURRENT_STREAMS
 */
  __pyx_t_7 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_ChannelArgKey, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ChannelArgKey, __pyx_t_7) < 0) __PYX_ERR(21, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":56
 * 
 * 
 * class WriteFlag:             # <<<<<<<<<<<<<<
 *   buffer_hint = GRPC_WRITE_BUFFER_HINT
 *   no_compress = GRPC_WRITE_NO_COMPRESS
 */
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_WriteFlag, __pyx_n_s_WriteFlag, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":57
 * 
 * class WriteFlag:
 *   buffer_hint = GRPC_WRITE_BUFFER_HINT             # <<<<<<<<<<<<<<
 *   no_compress = GRPC_WRITE_NO_COMPRESS
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_int(GRPC_WRITE_BUFFER_HINT); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_buffer_hint, __pyx_t_7) < 0) __PYX_ERR(21, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":58
 * class WriteFlag:
 *   buffer_hint = GRPC_WRITE_BUFFER_HINT
 *   no_compress = GRPC_WRITE_NO_COMPRESS             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_int(GRPC_WRITE_NO_COMPRESS); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_no_compress, __pyx_t_7) < 0) __PYX_ERR(21, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":56
 * 
 * 
 * class WriteFlag:             # <<<<<<<<<<<<<<
 *   buffer_hint = GRPC_WRITE_BUFFER_HINT
 *   no_compress = GRPC_WRITE_NO_COMPRESS
 */
  __pyx_t_7 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_WriteFlag, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_WriteFlag, __pyx_t_7) < 0) __PYX_ERR(21, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":61
 * 
 * 
 * class StatusCode:             # <<<<<<<<<<<<<<
 *   ok = GRPC_STATUS_OK
 *   cancelled = GRPC_STATUS_CANCELLED
 */
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_StatusCode, __pyx_n_s_StatusCode, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":62
 * 
 * class StatusCode:
 *   ok = GRPC_STATUS_OK             # <<<<<<<<<<<<<<
 *   cancelled = GRPC_STATUS_CANCELLED
 *   unknown = GRPC_STATUS_UNKNOWN
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_OK); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ok, __pyx_t_7) < 0) __PYX_ERR(21, 62, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":63
 * class StatusCode:
 *   ok = GRPC_STATUS_OK
 *   cancelled = GRPC_STATUS_CANCELLED             # <<<<<<<<<<<<<<
 *   unknown = GRPC_STATUS_UNKNOWN
 *   invalid_argument = GRPC_STATUS_INVALID_ARGUMENT
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_CANCELLED); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_cancelled, __pyx_t_7) < 0) __PYX_ERR(21, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":64
 *   ok = GRPC_STATUS_OK
 *   cancelled = GRPC_STATUS_CANCELLED
 *   unknown = GRPC_STATUS_UNKNOWN             # <<<<<<<<<<<<<<
 *   invalid_argument = GRPC_STATUS_INVALID_ARGUMENT
 *   deadline_exceeded = GRPC_STATUS_DEADLINE_EXCEEDED
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_UNKNOWN); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_unknown, __pyx_t_7) < 0) __PYX_ERR(21, 64, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":65
 *   cancelled = GRPC_STATUS_CANCELLED
 *   unknown = GRPC_STATUS_UNKNOWN
 *   invalid_argument = GRPC_STATUS_INVALID_ARGUMENT             # <<<<<<<<<<<<<<
 *   deadline_exceeded = GRPC_STATUS_DEADLINE_EXCEEDED
 *   not_found = GRPC_STATUS_NOT_FOUND
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_INVALID_ARGUMENT); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_invalid_argument, __pyx_t_7) < 0) __PYX_ERR(21, 65, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":66
 *   unknown = GRPC_STATUS_UNKNOWN
 *   invalid_argument = GRPC_STATUS_INVALID_ARGUMENT
 *   deadline_exceeded = GRPC_STATUS_DEADLINE_EXCEEDED             # <<<<<<<<<<<<<<
 *   not_found = GRPC_STATUS_NOT_FOUND
 *   already_exists = GRPC_STATUS_ALREADY_EXISTS
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_DEADLINE_EXCEEDED); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_deadline_exceeded, __pyx_t_7) < 0) __PYX_ERR(21, 66, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":67
 *   invalid_argument = GRPC_STATUS_INVALID_ARGUMENT
 *   deadline_exceeded = GRPC_STATUS_DEADLINE_EXCEEDED
 *   not_found = GRPC_STATUS_NOT_FOUND             # <<<<<<<<<<<<<<
 *   already_exists = GRPC_STATUS_ALREADY_EXISTS
 *   permission_denied = GRPC_STATUS_PERMISSION_DENIED
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_NOT_FOUND); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_not_found, __pyx_t_7) < 0) __PYX_ERR(21, 67, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":68
 *   deadline_exceeded = GRPC_STATUS_DEADLINE_EXCEEDED
 *   not_found = GRPC_STATUS_NOT_FOUND
 *   already_exists = GRPC_STATUS_ALREADY_EXISTS             # <<<<<<<<<<<<<<
 *   permission_denied = GRPC_STATUS_PERMISSION_DENIED
 *   unauthenticated = GRPC_STATUS_UNAUTHENTICATED
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_ALREADY_EXISTS); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_already_exists, __pyx_t_7) < 0) __PYX_ERR(21, 68, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":69
 *   not_found = GRPC_STATUS_NOT_FOUND
 *   already_exists = GRPC_STATUS_ALREADY_EXISTS
 *   permission_denied = GRPC_STATUS_PERMISSION_DENIED             # <<<<<<<<<<<<<<
 *   unauthenticated = GRPC_STATUS_UNAUTHENTICATED
 *   resource_exhausted = GRPC_STATUS_RESOURCE_EXHAUSTED
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_PERMISSION_DENIED); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_permission_denied, __pyx_t_7) < 0) __PYX_ERR(21, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":70
 *   already_exists = GRPC_STATUS_ALREADY_EXISTS
 *   permission_denied = GRPC_STATUS_PERMISSION_DENIED
 *   unauthenticated = GRPC_STATUS_UNAUTHENTICATED             # <<<<<<<<<<<<<<
 *   resource_exhausted = GRPC_STATUS_RESOURCE_EXHAUSTED
 *   failed_precondition = GRPC_STATUS_FAILED_PRECONDITION
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_UNAUTHENTICATED); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_unauthenticated, __pyx_t_7) < 0) __PYX_ERR(21, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":71
 *   permission_denied = GRPC_STATUS_PERMISSION_DENIED
 *   unauthenticated = GRPC_STATUS_UNAUTHENTICATED
 *   resource_exhausted = GRPC_STATUS_RESOURCE_EXHAUSTED             # <<<<<<<<<<<<<<
 *   failed_precondition = GRPC_STATUS_FAILED_PRECONDITION
 *   aborted = GRPC_STATUS_ABORTED
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_RESOURCE_EXHAUSTED); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_resource_exhausted, __pyx_t_7) < 0) __PYX_ERR(21, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":72
 *   unauthenticated = GRPC_STATUS_UNAUTHENTICATED
 *   resource_exhausted = GRPC_STATUS_RESOURCE_EXHAUSTED
 *   failed_precondition = GRPC_STATUS_FAILED_PRECONDITION             # <<<<<<<<<<<<<<
 *   aborted = GRPC_STATUS_ABORTED
 *   out_of_range = GRPC_STATUS_OUT_OF_RANGE
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_FAILED_PRECONDITION); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_failed_precondition, __pyx_t_7) < 0) __PYX_ERR(21, 72, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":73
 *   resource_exhausted = GRPC_STATUS_RESOURCE_EXHAUSTED
 *   failed_precondition = GRPC_STATUS_FAILED_PRECONDITION
 *   aborted = GRPC_STATUS_ABORTED             # <<<<<<<<<<<<<<
 *   out_of_range = GRPC_STATUS_OUT_OF_RANGE
 *   unimplemented = GRPC_STATUS_UNIMPLEMENTED
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_ABORTED); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_aborted, __pyx_t_7) < 0) __PYX_ERR(21, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":74
 *   failed_precondition = GRPC_STATUS_FAILED_PRECONDITION
 *   aborted = GRPC_STATUS_ABORTED
 *   out_of_range = GRPC_STATUS_OUT_OF_RANGE             # <<<<<<<<<<<<<<
 *   unimplemented = GRPC_STATUS_UNIMPLEMENTED
 *   internal = GRPC_STATUS_INTERNAL
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_OUT_OF_RANGE); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_out_of_range, __pyx_t_7) < 0) __PYX_ERR(21, 74, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":75
 *   aborted = GRPC_STATUS_ABORTED
 *   out_of_range = GRPC_STATUS_OUT_OF_RANGE
 *   unimplemented = GRPC_STATUS_UNIMPLEMENTED             # <<<<<<<<<<<<<<
 *   internal = GRPC_STATUS_INTERNAL
 *   unavailable = GRPC_STATUS_UNAVAILABLE
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_UNIMPLEMENTED); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_unimplemented, __pyx_t_7) < 0) __PYX_ERR(21, 75, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":76
 *   out_of_range = GRPC_STATUS_OUT_OF_RANGE
 *   unimplemented = GRPC_STATUS_UNIMPLEMENTED
 *   internal = GRPC_STATUS_INTERNAL             # <<<<<<<<<<<<<<
 *   unavailable = GRPC_STATUS_UNAVAILABLE
 *   data_loss = GRPC_STATUS_DATA_LOSS
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_INTERNAL); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_internal, __pyx_t_7) < 0) __PYX_ERR(21, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":77
 *   unimplemented = GRPC_STATUS_UNIMPLEMENTED
 *   internal = GRPC_STATUS_INTERNAL
 *   unavailable = GRPC_STATUS_UNAVAILABLE             # <<<<<<<<<<<<<<
 *   data_loss = GRPC_STATUS_DATA_LOSS
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_UNAVAILABLE); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_unavailable, __pyx_t_7) < 0) __PYX_ERR(21, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":78
 *   internal = GRPC_STATUS_INTERNAL
 *   unavailable = GRPC_STATUS_UNAVAILABLE
 *   data_loss = GRPC_STATUS_DATA_LOSS             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_status_code(GRPC_STATUS_DATA_LOSS); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_data_loss, __pyx_t_7) < 0) __PYX_ERR(21, 78, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":61
 * 
 * 
 * class StatusCode:             # <<<<<<<<<<<<<<
 *   ok = GRPC_STATUS_OK
 *   cancelled = GRPC_STATUS_CANCELLED
 */
  __pyx_t_7 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_StatusCode, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_StatusCode, __pyx_t_7) < 0) __PYX_ERR(21, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":81
 * 
 * 
 * class CallError:             # <<<<<<<<<<<<<<
 *   ok = GRPC_CALL_OK
 *   error = GRPC_CALL_ERROR
 */
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_CallError, __pyx_n_s_CallError, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":82
 * 
 * class CallError:
 *   ok = GRPC_CALL_OK             # <<<<<<<<<<<<<<
 *   error = GRPC_CALL_ERROR
 *   not_on_server = GRPC_CALL_ERROR_NOT_ON_SERVER
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_call_error(GRPC_CALL_OK); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ok, __pyx_t_7) < 0) __PYX_ERR(21, 82, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":83
 * class CallError:
 *   ok = GRPC_CALL_OK
 *   error = GRPC_CALL_ERROR             # <<<<<<<<<<<<<<
 *   not_on_server = GRPC_CALL_ERROR_NOT_ON_SERVER
 *   not_on_client = GRPC_CALL_ERROR_NOT_ON_CLIENT
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_call_error(GRPC_CALL_ERROR); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_error, __pyx_t_7) < 0) __PYX_ERR(21, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":84
 *   ok = GRPC_CALL_OK
 *   error = GRPC_CALL_ERROR
 *   not_on_server = GRPC_CALL_ERROR_NOT_ON_SERVER             # <<<<<<<<<<<<<<
 *   not_on_client = GRPC_CALL_ERROR_NOT_ON_CLIENT
 *   already_accepted = GRPC_CALL_ERROR_ALREADY_ACCEPTED
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_call_error(GRPC_CALL_ERROR_NOT_ON_SERVER); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_not_on_server, __pyx_t_7) < 0) __PYX_ERR(21, 84, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":85
 *   error = GRPC_CALL_ERROR
 *   not_on_server = GRPC_CALL_ERROR_NOT_ON_SERVER
 *   not_on_client = GRPC_CALL_ERROR_NOT_ON_CLIENT             # <<<<<<<<<<<<<<
 *   already_accepted = GRPC_CALL_ERROR_ALREADY_ACCEPTED
 *   already_invoked = GRPC_CALL_ERROR_ALREADY_INVOKED
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_call_error(GRPC_CALL_ERROR_NOT_ON_CLIENT); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_not_on_client, __pyx_t_7) < 0) __PYX_ERR(21, 85, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":86
 *   not_on_server = GRPC_CALL_ERROR_NOT_ON_SERVER
 *   not_on_client = GRPC_CALL_ERROR_NOT_ON_CLIENT
 *   already_accepted = GRPC_CALL_ERROR_ALREADY_ACCEPTED             # <<<<<<<<<<<<<<
 *   already_invoked = GRPC_CALL_ERROR_ALREADY_INVOKED
 *   not_invoked = GRPC_CALL_ERROR_NOT_INVOKED
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_call_error(GRPC_CALL_ERROR_ALREADY_ACCEPTED); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_already_accepted, __pyx_t_7) < 0) __PYX_ERR(21, 86, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":87
 *   not_on_client = GRPC_CALL_ERROR_NOT_ON_CLIENT
 *   already_accepted = GRPC_CALL_ERROR_ALREADY_ACCEPTED
 *   already_invoked = GRPC_CALL_ERROR_ALREADY_INVOKED             # <<<<<<<<<<<<<<
 *   not_invoked = GRPC_CALL_ERROR_NOT_INVOKED
 *   already_finished = GRPC_CALL_ERROR_ALREADY_FINISHED
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_call_error(GRPC_CALL_ERROR_ALREADY_INVOKED); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_already_invoked, __pyx_t_7) < 0) __PYX_ERR(21, 87, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":88
 *   already_accepted = GRPC_CALL_ERROR_ALREADY_ACCEPTED
 *   already_invoked = GRPC_CALL_ERROR_ALREADY_INVOKED
 *   not_invoked = GRPC_CALL_ERROR_NOT_INVOKED             # <<<<<<<<<<<<<<
 *   already_finished = GRPC_CALL_ERROR_ALREADY_FINISHED
 *   too_many_operations = GRPC_CALL_ERROR_TOO_MANY_OPERATIONS
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_call_error(GRPC_CALL_ERROR_NOT_INVOKED); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_not_invoked, __pyx_t_7) < 0) __PYX_ERR(21, 88, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":89
 *   already_invoked = GRPC_CALL_ERROR_ALREADY_INVOKED
 *   not_invoked = GRPC_CALL_ERROR_NOT_INVOKED
 *   already_finished = GRPC_CALL_ERROR_ALREADY_FINISHED             # <<<<<<<<<<<<<<
 *   too_many_operations = GRPC_CALL_ERROR_TOO_MANY_OPERATIONS
 *   invalid_flags = GRPC_CALL_ERROR_INVALID_FLAGS
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_call_error(GRPC_CALL_ERROR_ALREADY_FINISHED); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_already_finished, __pyx_t_7) < 0) __PYX_ERR(21, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":90
 *   not_invoked = GRPC_CALL_ERROR_NOT_INVOKED
 *   already_finished = GRPC_CALL_ERROR_ALREADY_FINISHED
 *   too_many_operations = GRPC_CALL_ERROR_TOO_MANY_OPERATIONS             # <<<<<<<<<<<<<<
 *   invalid_flags = GRPC_CALL_ERROR_INVALID_FLAGS
 *   invalid_metadata = GRPC_CALL_ERROR_INVALID_METADATA
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_call_error(GRPC_CALL_ERROR_TOO_MANY_OPERATIONS); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_too_many_operations, __pyx_t_7) < 0) __PYX_ERR(21, 90, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":91
 *   already_finished = GRPC_CALL_ERROR_ALREADY_FINISHED
 *   too_many_operations = GRPC_CALL_ERROR_TOO_MANY_OPERATIONS
 *   invalid_flags = GRPC_CALL_ERROR_INVALID_FLAGS             # <<<<<<<<<<<<<<
 *   invalid_metadata = GRPC_CALL_ERROR_INVALID_METADATA
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_call_error(GRPC_CALL_ERROR_INVALID_FLAGS); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_invalid_flags, __pyx_t_7) < 0) __PYX_ERR(21, 91, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":92
 *   too_many_operations = GRPC_CALL_ERROR_TOO_MANY_OPERATIONS
 *   invalid_flags = GRPC_CALL_ERROR_INVALID_FLAGS
 *   invalid_metadata = GRPC_CALL_ERROR_INVALID_METADATA             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_call_error(GRPC_CALL_ERROR_INVALID_METADATA); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 92, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_invalid_metadata, __pyx_t_7) < 0) __PYX_ERR(21, 92, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":81
 * 
 * 
 * class CallError:             # <<<<<<<<<<<<<<
 *   ok = GRPC_CALL_OK
 *   error = GRPC_CALL_ERROR
 */
  __pyx_t_7 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_CallError, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CallError, __pyx_t_7) < 0) __PYX_ERR(21, 81, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":95
 * 
 * 
 * class CompletionType:             # <<<<<<<<<<<<<<
 *   queue_shutdown = GRPC_QUEUE_SHUTDOWN
 *   queue_timeout = GRPC_QUEUE_TIMEOUT
 */
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_CompletionType, __pyx_n_s_CompletionType, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":96
 * 
 * class CompletionType:
 *   queue_shutdown = GRPC_QUEUE_SHUTDOWN             # <<<<<<<<<<<<<<
 *   queue_timeout = GRPC_QUEUE_TIMEOUT
 *   operation_complete = GRPC_OP_COMPLETE
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_completion_type(GRPC_QUEUE_SHUTDOWN); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_queue_shutdown, __pyx_t_7) < 0) __PYX_ERR(21, 96, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":97
 * class CompletionType:
 *   queue_shutdown = GRPC_QUEUE_SHUTDOWN
 *   queue_timeout = GRPC_QUEUE_TIMEOUT             # <<<<<<<<<<<<<<
 *   operation_complete = GRPC_OP_COMPLETE
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_completion_type(GRPC_QUEUE_TIMEOUT); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 97, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_queue_timeout, __pyx_t_7) < 0) __PYX_ERR(21, 97, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":98
 *   queue_shutdown = GRPC_QUEUE_SHUTDOWN
 *   queue_timeout = GRPC_QUEUE_TIMEOUT
 *   operation_complete = GRPC_OP_COMPLETE             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_completion_type(GRPC_OP_COMPLETE); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_operation_complete, __pyx_t_7) < 0) __PYX_ERR(21, 98, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":95
 * 
 * 
 * class CompletionType:             # <<<<<<<<<<<<<<
 *   queue_shutdown = GRPC_QUEUE_SHUTDOWN
 *   queue_timeout = GRPC_QUEUE_TIMEOUT
 */
  __pyx_t_7 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_CompletionType, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CompletionType, __pyx_t_7) < 0) __PYX_ERR(21, 95, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":101
 * 
 * 
 * class OperationType:             # <<<<<<<<<<<<<<
 *   send_initial_metadata = GRPC_OP_SEND_INITIAL_METADATA
 *   send_message = GRPC_OP_SEND_MESSAGE
 */
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_OperationType, __pyx_n_s_OperationType, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":102
 * 
 * class OperationType:
 *   send_initial_metadata = GRPC_OP_SEND_INITIAL_METADATA             # <<<<<<<<<<<<<<
 *   send_message = GRPC_OP_SEND_MESSAGE
 *   send_close_from_client = GRPC_OP_SEND_CLOSE_FROM_CLIENT
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_SEND_INITIAL_METADATA); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_send_initial_metadata_2, __pyx_t_7) < 0) __PYX_ERR(21, 102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":103
 * class OperationType:
 *   send_initial_metadata = GRPC_OP_SEND_INITIAL_METADATA
 *   send_message = GRPC_OP_SEND_MESSAGE             # <<<<<<<<<<<<<<
 *   send_close_from_client = GRPC_OP_SEND_CLOSE_FROM_CLIENT
 *   send_status_from_server = GRPC_OP_SEND_STATUS_FROM_SERVER
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_SEND_MESSAGE); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_send_message_2, __pyx_t_7) < 0) __PYX_ERR(21, 103, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":104
 *   send_initial_metadata = GRPC_OP_SEND_INITIAL_METADATA
 *   send_message = GRPC_OP_SEND_MESSAGE
 *   send_close_from_client = GRPC_OP_SEND_CLOSE_FROM_CLIENT             # <<<<<<<<<<<<<<
 *   send_status_from_server = GRPC_OP_SEND_STATUS_FROM_SERVER
 *   receive_initial_metadata = GRPC_OP_RECV_INITIAL_METADATA
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_SEND_CLOSE_FROM_CLIENT); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_send_close_from_client, __pyx_t_7) < 0) __PYX_ERR(21, 104, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":105
 *   send_message = GRPC_OP_SEND_MESSAGE
 *   send_close_from_client = GRPC_OP_SEND_CLOSE_FROM_CLIENT
 *   send_status_from_server = GRPC_OP_SEND_STATUS_FROM_SERVER             # <<<<<<<<<<<<<<
 *   receive_initial_metadata = GRPC_OP_RECV_INITIAL_METADATA
 *   receive_message = GRPC_OP_RECV_MESSAGE
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_SEND_STATUS_FROM_SERVER); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_send_status_from_server, __pyx_t_7) < 0) __PYX_ERR(21, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":106
 *   send_close_from_client = GRPC_OP_SEND_CLOSE_FROM_CLIENT
 *   send_status_from_server = GRPC_OP_SEND_STATUS_FROM_SERVER
 *   receive_initial_metadata = GRPC_OP_RECV_INITIAL_METADATA             # <<<<<<<<<<<<<<
 *   receive_message = GRPC_OP_RECV_MESSAGE
 *   receive_status_on_client = GRPC_OP_RECV_STATUS_ON_CLIENT
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_RECV_INITIAL_METADATA); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_receive_initial_metadata_2, __pyx_t_7) < 0) __PYX_ERR(21, 106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":107
 *   send_status_from_server = GRPC_OP_SEND_STATUS_FROM_SERVER
 *   receive_initial_metadata = GRPC_OP_RECV_INITIAL_METADATA
 *   receive_message = GRPC_OP_RECV_MESSAGE             # <<<<<<<<<<<<<<
 *   receive_status_on_client = GRPC_OP_RECV_STATUS_ON_CLIENT
 *   receive_close_on_server = GRPC_OP_RECV_CLOSE_ON_SERVER
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_RECV_MESSAGE); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_receive_message_2, __pyx_t_7) < 0) __PYX_ERR(21, 107, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":108
 *   receive_initial_metadata = GRPC_OP_RECV_INITIAL_METADATA
 *   receive_message = GRPC_OP_RECV_MESSAGE
 *   receive_status_on_client = GRPC_OP_RECV_STATUS_ON_CLIENT             # <<<<<<<<<<<<<<
 *   receive_close_on_server = GRPC_OP_RECV_CLOSE_ON_SERVER
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_RECV_STATUS_ON_CLIENT); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_receive_status_on_client, __pyx_t_7) < 0) __PYX_ERR(21, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":109
 *   receive_message = GRPC_OP_RECV_MESSAGE
 *   receive_status_on_client = GRPC_OP_RECV_STATUS_ON_CLIENT
 *   receive_close_on_server = GRPC_OP_RECV_CLOSE_ON_SERVER             # <<<<<<<<<<<<<<
 * 
 * GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM= (
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_op_type(GRPC_OP_RECV_CLOSE_ON_SERVER); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_receive_close_on_server, __pyx_t_7) < 0) __PYX_ERR(21, 109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":101
 * 
 * 
 * class OperationType:             # <<<<<<<<<<<<<<
 *   send_initial_metadata = GRPC_OP_SEND_INITIAL_METADATA
 *   send_message = GRPC_OP_SEND_MESSAGE
 */
  __pyx_t_7 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_OperationType, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_OperationType, __pyx_t_7) < 0) __PYX_ERR(21, 101, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":112
 * 
 * GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM= (
 *   _GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM)             # <<<<<<<<<<<<<<
 * 
 * GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY = (
 */
  __pyx_t_2 = __Pyx_PyBytes_FromString(GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_GRPC_COMPRESSION_CHANNEL_DEFAULT, __pyx_t_2) < 0) __PYX_ERR(21, 111, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":115
 * 
 * GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY = (
 *   _GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY)             # <<<<<<<<<<<<<<
 * 
 * class CompressionAlgorithm:
 */
  __pyx_t_2 = __Pyx_PyBytes_FromString(GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_GRPC_COMPRESSION_REQUEST_ALGORIT, __pyx_t_2) < 0) __PYX_ERR(21, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":117
 *   _GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY)
 * 
 * class CompressionAlgorithm:             # <<<<<<<<<<<<<<
 *   none = GRPC_COMPRESS_NONE
 *   deflate = GRPC_COMPRESS_DEFLATE
 */
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_CompressionAlgorithm, __pyx_n_s_CompressionAlgorithm, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":118
 * 
 * class CompressionAlgorithm:
 *   none = GRPC_COMPRESS_NONE             # <<<<<<<<<<<<<<
 *   deflate = GRPC_COMPRESS_DEFLATE
 *   gzip = GRPC_COMPRESS_GZIP
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_compression_algorithm(GRPC_COMPRESS_NONE); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_none, __pyx_t_7) < 0) __PYX_ERR(21, 118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":119
 * class CompressionAlgorithm:
 *   none = GRPC_COMPRESS_NONE
 *   deflate = GRPC_COMPRESS_DEFLATE             # <<<<<<<<<<<<<<
 *   gzip = GRPC_COMPRESS_GZIP
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_compression_algorithm(GRPC_COMPRESS_DEFLATE); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_deflate, __pyx_t_7) < 0) __PYX_ERR(21, 119, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":120
 *   none = GRPC_COMPRESS_NONE
 *   deflate = GRPC_COMPRESS_DEFLATE
 *   gzip = GRPC_COMPRESS_GZIP             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_compression_algorithm(GRPC_COMPRESS_GZIP); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_gzip, __pyx_t_7) < 0) __PYX_ERR(21, 120, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":117
 *   _GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY)
 * 
 * class CompressionAlgorithm:             # <<<<<<<<<<<<<<
 *   none = GRPC_COMPRESS_NONE
 *   deflate = GRPC_COMPRESS_DEFLATE
 */
  __pyx_t_7 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_CompressionAlgorithm, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CompressionAlgorithm, __pyx_t_7) < 0) __PYX_ERR(21, 117, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":123
 * 
 * 
 * class CompressionLevel:             # <<<<<<<<<<<<<<
 *   none = GRPC_COMPRESS_LEVEL_NONE
 *   low = GRPC_COMPRESS_LEVEL_LOW
 */
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_CompressionLevel, __pyx_n_s_CompressionLevel, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":124
 * 
 * class CompressionLevel:
 *   none = GRPC_COMPRESS_LEVEL_NONE             # <<<<<<<<<<<<<<
 *   low = GRPC_COMPRESS_LEVEL_LOW
 *   medium = GRPC_COMPRESS_LEVEL_MED
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_compression_level(GRPC_COMPRESS_LEVEL_NONE); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_none, __pyx_t_7) < 0) __PYX_ERR(21, 124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":125
 * class CompressionLevel:
 *   none = GRPC_COMPRESS_LEVEL_NONE
 *   low = GRPC_COMPRESS_LEVEL_LOW             # <<<<<<<<<<<<<<
 *   medium = GRPC_COMPRESS_LEVEL_MED
 *   high = GRPC_COMPRESS_LEVEL_HIGH
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_compression_level(GRPC_COMPRESS_LEVEL_LOW); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_low, __pyx_t_7) < 0) __PYX_ERR(21, 125, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":126
 *   none = GRPC_COMPRESS_LEVEL_NONE
 *   low = GRPC_COMPRESS_LEVEL_LOW
 *   medium = GRPC_COMPRESS_LEVEL_MED             # <<<<<<<<<<<<<<
 *   high = GRPC_COMPRESS_LEVEL_HIGH
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_compression_level(GRPC_COMPRESS_LEVEL_MED); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_medium, __pyx_t_7) < 0) __PYX_ERR(21, 126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":127
 *   low = GRPC_COMPRESS_LEVEL_LOW
 *   medium = GRPC_COMPRESS_LEVEL_MED
 *   high = GRPC_COMPRESS_LEVEL_HIGH             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_grpc_compression_level(GRPC_COMPRESS_LEVEL_HIGH); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_high, __pyx_t_7) < 0) __PYX_ERR(21, 127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":123
 * 
 * 
 * class CompressionLevel:             # <<<<<<<<<<<<<<
 *   none = GRPC_COMPRESS_LEVEL_NONE
 *   low = GRPC_COMPRESS_LEVEL_LOW
 */
  __pyx_t_7 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_CompressionLevel, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(21, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CompressionLevel, __pyx_t_7) < 0) __PYX_ERR(21, 123, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_11CallDetails_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CallDetails___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__289)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_11CallDetails_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CallDetails___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__290)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SslPemKeyCertPair___reduce_cytho, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__291)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SslPemKeyCertPair___setstate_cyt, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__292)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":170
 *       grpc_compression_options_init(&self.c_options)
 * 
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_3enable_algorithm, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompressionOptions_enable_algori, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__294)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions, __pyx_n_s_enable_algorithm, __pyx_t_2) < 0) __PYX_ERR(21, 170, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":174
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 * 
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_5disable_algorithm, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompressionOptions_disable_algor, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__295)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions, __pyx_n_s_disable_algorithm, __pyx_t_2) < 0) __PYX_ERR(21, 174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":178
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 * 
 *   def is_algorithm_enabled(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     cdef int result
 *     with nogil:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_7is_algorithm_enabled, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompressionOptions_is_algorithm, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__297)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions, __pyx_n_s_is_algorithm_enabled, __pyx_t_2) < 0) __PYX_ERR(21, 178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":185
 *     return result
 * 
 *   def to_channel_arg(self):             # <<<<<<<<<<<<<<
 *     return (
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_9to_channel_arg, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompressionOptions_to_channel_ar, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__298)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions, __pyx_n_s_to_channel_arg, __pyx_t_2) < 0) __PYX_ERR(21, 185, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompressionOptions___reduce_cyth, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__299)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CompressionOptions___setstate_cy, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__300)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":192
 * 
 * 
 * def compression_algorithm_name(grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *   cdef const char* name
 *   with nogil:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_45compression_algorithm_name, 0, __pyx_n_s_compression_algorithm_name, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__302)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_compression_algorithm_name, __pyx_t_2) < 0) __PYX_ERR(21, 192, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":200
 * 
 * 
 * def reset_grpc_config_vars():             # <<<<<<<<<<<<<<
 *   ConfigVars.Reset()
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_47reset_grpc_config_vars, 0, __pyx_n_s_reset_grpc_config_vars, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__303)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reset_grpc_config_vars, __pyx_t_2) < 0) __PYX_ERR(21, 200, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":17
 * from libc.string cimport memcpy
 * 
 * import pkgutil             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_pkgutil, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pkgutil, __pyx_t_2) < 0) __PYX_ERR(22, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":36
 * 
 * 
 * def peer_identities(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef grpc_auth_property_iterator properties
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_49peer_identities, 0, __pyx_n_s_peer_identities, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__305)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_peer_identities, __pyx_t_2) < 0) __PYX_ERR(22, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":55
 *   return identities if identities else None
 * 
 * def peer_identity_key(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef const char* c_key
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_51peer_identity_key, 0, __pyx_n_s_peer_identity_key, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__307)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_peer_identity_key, __pyx_t_2) < 0) __PYX_ERR(22, 55, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":69
 *   return key
 * 
 * def auth_context(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef grpc_auth_property_iterator properties
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_53auth_context, 0, __pyx_n_s_auth_context, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__309)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_auth_context, __pyx_t_2) < 0) __PYX_ERR(22, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16RegisteredMethod_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RegisteredMethod___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__310)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16RegisteredMethod_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RegisteredMethod___setstate_cyth, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__311)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":59
 *     self.references.append(arguments)
 * 
 *   def request_call(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None, tag):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_3request_call, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Server_request_call, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__313)); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_n_s_request_call_2, __pyx_t_2) < 0) __PYX_ERR(23, 59, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Server);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":69
 *     return self._c_request_unregistered_call(request_call_tag, call_queue, server_queue)
 * 
 *   def request_registered_call(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None,
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_5request_registered_call, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Server_request_registered_call, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__315)); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_n_s_request_registered_call, __pyx_t_2) < 0) __PYX_ERR(23, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Server);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":124
 *     return c_call_error
 * 
 *   def register_completion_queue(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue queue not None):
 *     if self.is_started:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_7register_completion_queue, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Server_register_completion_queue, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__317)); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_n_s_register_completion_queue, __pyx_t_2) < 0) __PYX_ERR(23, 124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Server);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":133
 *     self.registered_completion_queues.append(queue)
 * 
 *   def register_method(self, str fully_qualified_method):             # <<<<<<<<<<<<<<
 *     method_bytes = str_to_bytes(fully_qualified_method)
 *     if method_bytes in self.registered_methods.keys():
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_9register_method, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Server_register_method, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__319)); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_n_s_register_method, __pyx_t_2) < 0) __PYX_ERR(23, 133, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Server);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":141
 *     self.registered_methods[method_bytes] = registered_method
 * 
 *   def start(self, backup_queue=True):             # <<<<<<<<<<<<<<
 *     """Start the Cython gRPC Server.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_11start, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Server_start, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__321)); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__322);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_n_s_start, __pyx_t_2) < 0) __PYX_ERR(23, 141, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Server);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":161
 *       self.backup_shutdown_queue.poll(deadline=time.time())
 * 
 *   def add_http2_port(self, bytes address,             # <<<<<<<<<<<<<<
 *                      ServerCredentials server_credentials=None):
 *     address = str_to_bytes(address)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_13add_http2_port, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Server_add_http2_port, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__324)); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__241);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_n_s_add_http2_port, __pyx_t_2) < 0) __PYX_ERR(23, 161, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Server);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":189
 *           <cpython.PyObject *>server_shutdown_tag)
 * 
 *   def shutdown(self, CompletionQueue queue not None, tag):             # <<<<<<<<<<<<<<
 *     if queue.is_shutting_down:
 *       raise ValueError("queue must be live")
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_15shutdown, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Server_shutdown, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__326)); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_n_s_shutdown, __pyx_t_2) < 0) __PYX_ERR(23, 189, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Server);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":206
 *     self.is_shutdown = True
 * 
 *   def cancel_all_calls(self):             # <<<<<<<<<<<<<<
 *     if not self.is_shutting_down:
 *       raise UsageError("the server must be shutting down to cancel all calls")
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_17cancel_all_calls, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Server_cancel_all_calls, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__327)); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_n_s_cancel_all_calls, __pyx_t_2) < 0) __PYX_ERR(23, 206, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Server);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":218
 *   # portion of this is safe to call from __dealloc__, and potentially remove
 *   # backup_shutdown_queue.
 *   def destroy(self):             # <<<<<<<<<<<<<<
 *     if self.c_server != NULL:
 *       if not self.is_started:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_19destroy, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Server_destroy, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__328)); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_n_s_destroy, __pyx_t_2) < 0) __PYX_ERR(23, 218, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_Server);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_23__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Server___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__329)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_25__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Server___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__330)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4_Tag_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Tag___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__331)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__Tag, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__Tag);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle__Tag__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4_Tag_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Tag___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__332)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__Tag, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__Tag);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ConnectivityTag_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ConnectivityTag___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__333)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ConnectivityTag_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ConnectivityTag___setstate_cyth, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__334)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15_RequestCallTag_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RequestCallTag___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__335)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15_RequestCallTag_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RequestCallTag___setstate_cytho, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__336)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_BatchOperationTag_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BatchOperationTag___reduce_cyth, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__337)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_BatchOperationTag_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BatchOperationTag___setstate_cy, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__338)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServerShutdownTag___reduce_cyth, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__339)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServerShutdownTag___setstate_cy, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__340)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":34
 * 
 * cdef grpc_arg_pointer_vtable default_vtable
 * default_vtable.copy = &_copy_pointer             # <<<<<<<<<<<<<<
 * default_vtable.destroy = &_destroy_pointer
 * default_vtable.cmp = &_compare_pointer
 */
  __pyx_v_4grpc_7_cython_6cygrpc_default_vtable.copy = (&__pyx_f_4grpc_7_cython_6cygrpc__copy_pointer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":35
 * cdef grpc_arg_pointer_vtable default_vtable
 * default_vtable.copy = &_copy_pointer
 * default_vtable.destroy = &_destroy_pointer             # <<<<<<<<<<<<<<
 * default_vtable.cmp = &_compare_pointer
 */
  __pyx_v_4grpc_7_cython_6cygrpc_default_vtable.destroy = (&__pyx_f_4grpc_7_cython_6cygrpc__destroy_pointer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":36
 * default_vtable.copy = &_copy_pointer
 * default_vtable.destroy = &_destroy_pointer
 * default_vtable.cmp = &_compare_pointer             # <<<<<<<<<<<<<<
 */
  __pyx_v_4grpc_7_cython_6cygrpc_default_vtable.cmp = (&__pyx_f_4grpc_7_cython_6cygrpc__compare_pointer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":19
 *   raise NotImplementedError("No custom hooks are implemented")
 * 
 * def install_context_from_request_call_event(RequestCallEvent event):             # <<<<<<<<<<<<<<
 *   maybe_save_server_trace_context(event)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_55install_context_from_request_call_event, 0, __pyx_n_s_install_context_from_request_cal_2, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__342)); if (unlikely(!__pyx_t_2)) __PYX_ERR(26, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_install_context_from_request_cal_2, __pyx_t_2) < 0) __PYX_ERR(26, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":22
 *   maybe_save_server_trace_context(event)
 * 
 * def install_context_from_request_call_event_aio(GrpcCallWrapper event):             # <<<<<<<<<<<<<<
 *   pass
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_57install_context_from_request_call_event_aio, 0, __pyx_n_s_install_context_from_request_cal, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__343)); if (unlikely(!__pyx_t_2)) __PYX_ERR(26, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_install_context_from_request_cal, __pyx_t_2) < 0) __PYX_ERR(26, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":25
 *   pass
 * 
 * def uninstall_context():             # <<<<<<<<<<<<<<
 *   pass
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_59uninstall_context, 0, __pyx_n_s_uninstall_context, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__344)); if (unlikely(!__pyx_t_2)) __PYX_ERR(26, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_uninstall_context, __pyx_t_2) < 0) __PYX_ERR(26, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":28
 *   pass
 * 
 * def build_census_context():             # <<<<<<<<<<<<<<
 *   pass
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_61build_census_context, 0, __pyx_n_s_build_census_context, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__345)); if (unlikely(!__pyx_t_2)) __PYX_ERR(26, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_build_census_context, __pyx_t_2) < 0) __PYX_ERR(26, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_13CensusContext_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CensusContext___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__346)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_CensusContext__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_13CensusContext_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CensusContext___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__347)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":34
 *   pass
 * 
 * def set_census_context_on_call(_CallState call_state, CensusContext census_ctx):             # <<<<<<<<<<<<<<
 *   pass
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_63set_census_context_on_call, 0, __pyx_n_s_set_census_context_on_call, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__349)); if (unlikely(!__pyx_t_2)) __PYX_ERR(26, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_set_census_context_on_call, __pyx_t_2) < 0) __PYX_ERR(26, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":37
 *   pass
 * 
 * def set_instrumentation_context_on_call_aio(GrpcCallWrapper call_state, CensusContext census_ctx):             # <<<<<<<<<<<<<<
 *   pass
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_65set_instrumentation_context_on_call_aio, 0, __pyx_n_s_set_instrumentation_context_on_c, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__350)); if (unlikely(!__pyx_t_2)) __PYX_ERR(26, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_set_instrumentation_context_on_c, __pyx_t_2) < 0) __PYX_ERR(26, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":40
 *   pass
 * 
 * def get_deadline_from_context():             # <<<<<<<<<<<<<<
 *   return None
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_67get_deadline_from_context, 0, __pyx_n_s_get_deadline_from_context, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__351)); if (unlikely(!__pyx_t_2)) __PYX_ERR(26, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_deadline_from_context, __pyx_t_2) < 0) __PYX_ERR(26, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":14
 * # See the License for the specific language governing permissions and
 * # limitations under the License.
 * import codecs             # <<<<<<<<<<<<<<
 * from typing import Optional
 * 
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_codecs, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 14, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_codecs, __pyx_t_2) < 0) __PYX_ERR(27, 14, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":15
 * # limitations under the License.
 * import codecs
 * from typing import Optional             # <<<<<<<<<<<<<<
 * 
 * from libcpp.cast cimport static_cast
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_Optional);
  __Pyx_GIVEREF(__pyx_n_s_Optional);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Optional)) __PYX_ERR(27, 15, __pyx_L1_error);
  __pyx_t_7 = __Pyx_Import(__pyx_n_s_typing, __pyx_t_2, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(27, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_Optional); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Optional, __pyx_t_2) < 0) __PYX_ERR(27, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":19
 * from libcpp.cast cimport static_cast
 * 
 * from grpc import _observability             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(27, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_observability);
  __Pyx_GIVEREF(__pyx_n_s_observability);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_observability)) __PYX_ERR(27, 19, __pyx_L1_error);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_grpc, __pyx_t_7, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_observability); if (unlikely(!__pyx_t_7)) __PYX_ERR(27, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_observability, __pyx_t_7) < 0) __PYX_ERR(27, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":22
 * 
 * 
 * cdef const char* CLIENT_CALL_TRACER = "client_call_tracer"             # <<<<<<<<<<<<<<
 * cdef const char* SERVER_CALL_TRACER_FACTORY = "server_call_tracer_factory"
 * 
 */
  __pyx_v_4grpc_7_cython_6cygrpc_CLIENT_CALL_TRACER = ((char const *)"client_call_tracer");

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":23
 * 
 * cdef const char* CLIENT_CALL_TRACER = "client_call_tracer"
 * cdef const char* SERVER_CALL_TRACER_FACTORY = "server_call_tracer_factory"             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_4grpc_7_cython_6cygrpc_SERVER_CALL_TRACER_FACTORY = ((char const *)"server_call_tracer_factory");

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":26
 * 
 * 
 * def get_server_call_tracer_factory_address(object observability_plugin, bint xds) -> Optional[int]:             # <<<<<<<<<<<<<<
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)
 *   if capsule:
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_kp_s_Optional_int) < 0) __PYX_ERR(27, 26, __pyx_L1_error)
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_69get_server_call_tracer_factory_address, 0, __pyx_n_s_get_server_call_tracer_factory_a, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__353)); if (unlikely(!__pyx_t_7)) __PYX_ERR(27, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_7, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_server_call_tracer_factory_a, __pyx_t_7) < 0) __PYX_ERR(27, 26, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":34
 *     return None
 * 
 * def clear_server_call_tracer_factory() -> None:             # <<<<<<<<<<<<<<
 *   _register_server_call_tracer_factory(NULL)
 * 
 */
  __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(27, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_return, __pyx_n_s_None) < 0) __PYX_ERR(27, 34, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_71clear_server_call_tracer_factory, 0, __pyx_n_s_clear_server_call_tracer_factory, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__354)); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_7);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_clear_server_call_tracer_factory, __pyx_t_2) < 0) __PYX_ERR(27, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":38
 * 
 * 
 * def maybe_save_server_trace_context(RequestCallEvent event) -> None:             # <<<<<<<<<<<<<<
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_n_s_None) < 0) __PYX_ERR(27, 38, __pyx_L1_error)
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_73maybe_save_server_trace_context, 0, __pyx_n_s_maybe_save_server_trace_context, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__356)); if (unlikely(!__pyx_t_7)) __PYX_ERR(27, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_7, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_maybe_save_server_trace_context, __pyx_t_7) < 0) __PYX_ERR(27, 38, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":21
 * from cpython cimport Py_INCREF, Py_DECREF
 * 
 * import atexit             # <<<<<<<<<<<<<<
 * import errno
 * import sys
 */
  __pyx_t_7 = __Pyx_ImportDottedModule(__pyx_n_s_atexit, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(28, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_atexit, __pyx_t_7) < 0) __PYX_ERR(28, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":22
 * 
 * import atexit
 * import errno             # <<<<<<<<<<<<<<
 * import sys
 * 
 */
  __pyx_t_7 = __Pyx_ImportDottedModule(__pyx_n_s_errno, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(28, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_errno, __pyx_t_7) < 0) __PYX_ERR(28, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":23
 * import atexit
 * import errno
 * import sys             # <<<<<<<<<<<<<<
 * 
 * gevent_hub = None
 */
  __pyx_t_7 = __Pyx_ImportDottedModule(__pyx_n_s_sys, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(28, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_7) < 0) __PYX_ERR(28, 23, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":25
 * import sys
 * 
 * gevent_hub = None             # <<<<<<<<<<<<<<
 * g_gevent_pool = None
 * g_gevent_threadpool = None
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_gevent_hub, Py_None) < 0) __PYX_ERR(28, 25, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":26
 * 
 * gevent_hub = None
 * g_gevent_pool = None             # <<<<<<<<<<<<<<
 * g_gevent_threadpool = None
 * g_gevent_activated = False
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_g_gevent_pool, Py_None) < 0) __PYX_ERR(28, 26, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":27
 * gevent_hub = None
 * g_gevent_pool = None
 * g_gevent_threadpool = None             # <<<<<<<<<<<<<<
 * g_gevent_activated = False
 * 
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_g_gevent_threadpool, Py_None) < 0) __PYX_ERR(28, 27, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":28
 * g_gevent_pool = None
 * g_gevent_threadpool = None
 * g_gevent_activated = False             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_g_gevent_activated, Py_False) < 0) __PYX_ERR(28, 28, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":34
 * cdef condition_variable g_greenlets_cv
 * cdef mutex g_greenlets_mu
 * cdef bint g_shutdown_greenlets_to_run_queue = False             # <<<<<<<<<<<<<<
 * cdef int g_channel_count = 0
 * 
 */
  __pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_greenlets_to_run_queue = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":35
 * cdef mutex g_greenlets_mu
 * cdef bint g_shutdown_greenlets_to_run_queue = False
 * cdef int g_channel_count = 0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_4grpc_7_cython_6cygrpc_g_channel_count = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":49
 * 
 * 
 * cpdef void gevent_increment_channel_count():             # <<<<<<<<<<<<<<
 *   global g_channel_count
 *   cdef int old_channel_count
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_75gevent_increment_channel_count, 0, __pyx_n_s_gevent_increment_channel_count, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__357)); if (unlikely(!__pyx_t_7)) __PYX_ERR(28, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_gevent_increment_channel_count, __pyx_t_7) < 0) __PYX_ERR(28, 49, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":61
 * 
 * 
 * cpdef void gevent_decrement_channel_count():             # <<<<<<<<<<<<<<
 *   global g_channel_count
 *   with nogil:
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_77gevent_decrement_channel_count, 0, __pyx_n_s_gevent_decrement_channel_count, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__358)); if (unlikely(!__pyx_t_7)) __PYX_ERR(28, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_gevent_decrement_channel_count, __pyx_t_7) < 0) __PYX_ERR(28, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":93
 *   return to_call
 * 
 * def spawn_greenlets():             # <<<<<<<<<<<<<<
 *   while True:
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_79spawn_greenlets, 0, __pyx_n_s_spawn_greenlets, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__360)); if (unlikely(!__pyx_t_7)) __PYX_ERR(28, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_spawn_greenlets, __pyx_t_7) < 0) __PYX_ERR(28, 93, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":102
 *     fn(*args)
 * 
 * def run_spawn_greenlets():             # <<<<<<<<<<<<<<
 *   g_gevent_pool.spawn(spawn_greenlets)
 * 
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_81run_spawn_greenlets, 0, __pyx_n_s_run_spawn_greenlets, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__361)); if (unlikely(!__pyx_t_7)) __PYX_ERR(28, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_run_spawn_greenlets, __pyx_t_7) < 0) __PYX_ERR(28, 102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":105
 *   g_gevent_pool.spawn(spawn_greenlets)
 * 
 * def shutdown_await_next_greenlet():             # <<<<<<<<<<<<<<
 *   global g_shutdown_greenlets_to_run_queue
 *   cdef unique_lock[mutex]* lk
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_83shutdown_await_next_greenlet, 0, __pyx_n_s_shutdown_await_next_greenlet, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__363)); if (unlikely(!__pyx_t_7)) __PYX_ERR(28, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_shutdown_await_next_greenlet, __pyx_t_7) < 0) __PYX_ERR(28, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":114
 *   g_greenlets_cv.notify_all()
 * 
 * def init_grpc_gevent():             # <<<<<<<<<<<<<<
 *   # Lazily import gevent
 *   global gevent_hub
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_85init_grpc_gevent, 0, __pyx_n_s_init_grpc_gevent, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__365)); if (unlikely(!__pyx_t_7)) __PYX_ERR(28, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_init_grpc_gevent, __pyx_t_7) < 0) __PYX_ERR(28, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":15
 * # limitations under the License.
 * 
 * def _contextvars_supported():             # <<<<<<<<<<<<<<
 *     """Determines if the contextvars module is supported.
 * 
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_87_contextvars_supported, 0, __pyx_n_s_contextvars_supported, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__367)); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_contextvars_supported, __pyx_t_7) < 0) __PYX_ERR(29, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":33
 * 
 * 
 * def _run_with_context(target):             # <<<<<<<<<<<<<<
 *     """Runs a callable with contextvars propagated.
 * 
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_89_run_with_context, 0, __pyx_n_s_run_with_context, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__369)); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_run_with_context, __pyx_t_7) < 0) __PYX_ERR(29, 33, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":48
 * 
 * 
 * if _contextvars_supported():             # <<<<<<<<<<<<<<
 *     import contextvars
 *     def _run_with_context(target):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_contextvars_supported); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(29, 48, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_8) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":49
 * 
 * if _contextvars_supported():
 *     import contextvars             # <<<<<<<<<<<<<<
 *     def _run_with_context(target):
 *         ctx = contextvars.copy_context()
 */
    __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_contextvars, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 49, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_contextvars, __pyx_t_2) < 0) __PYX_ERR(29, 49, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":50
 * if _contextvars_supported():
 *     import contextvars
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         ctx = contextvars.copy_context()
 *         def _run(*args):
 */
    __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_91_run_with_context, 0, __pyx_n_s_run_with_context, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__371)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 50, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_run_with_context, __pyx_t_2) < 0) __PYX_ERR(29, 50, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":48
 * 
 * 
 * if _contextvars_supported():             # <<<<<<<<<<<<<<
 *     import contextvars
 *     def _run_with_context(target):
 */
    goto __pyx_L8;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":56
 *         return _run
 * else:
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         def _run(*args):
 *             target(*args)
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_93_run_with_context, 0, __pyx_n_s_run_with_context, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__373)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 56, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_run_with_context, __pyx_t_2) < 0) __PYX_ERR(29, 56, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L8:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":15
 * # limitations under the License.
 * 
 * import os             # <<<<<<<<<<<<<<
 * 
 * _AWAIT_THREADS_TIMEOUT_SECONDS = 5
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_os, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_2) < 0) __PYX_ERR(1, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":17
 * import os
 * 
 * _AWAIT_THREADS_TIMEOUT_SECONDS = 5             # <<<<<<<<<<<<<<
 * 
 * _TRUE_VALUES = ['yes',  'Yes',  'YES', 'true', 'True', 'TRUE', '1']
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_AWAIT_THREADS_TIMEOUT_SECONDS, __pyx_int_5) < 0) __PYX_ERR(1, 17, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":19
 * _AWAIT_THREADS_TIMEOUT_SECONDS = 5
 * 
 * _TRUE_VALUES = ['yes',  'Yes',  'YES', 'true', 'True', 'TRUE', '1']             # <<<<<<<<<<<<<<
 * 
 * # This flag enables experimental support within gRPC Python for applications
 */
  __pyx_t_2 = PyList_New(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_yes);
  __Pyx_GIVEREF(__pyx_n_s_yes);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_yes)) __PYX_ERR(1, 19, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_Yes);
  __Pyx_GIVEREF(__pyx_n_s_Yes);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_Yes)) __PYX_ERR(1, 19, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_YES);
  __Pyx_GIVEREF(__pyx_n_s_YES);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_YES)) __PYX_ERR(1, 19, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_true);
  __Pyx_GIVEREF(__pyx_n_s_true);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_true)) __PYX_ERR(1, 19, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_True);
  __Pyx_GIVEREF(__pyx_n_s_True);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_True)) __PYX_ERR(1, 19, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_TRUE);
  __Pyx_GIVEREF(__pyx_n_s_TRUE);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_TRUE)) __PYX_ERR(1, 19, __pyx_L1_error);
  __Pyx_INCREF(__pyx_kp_s_1);
  __Pyx_GIVEREF(__pyx_kp_s_1);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 6, __pyx_kp_s_1)) __PYX_ERR(1, 19, __pyx_L1_error);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TRUE_VALUES, __pyx_t_2) < 0) __PYX_ERR(1, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":33
 * # This flag is also not supported for non-native IO manager.
 * _GRPC_ENABLE_FORK_SUPPORT = (
 *     os.environ.get('GRPC_ENABLE_FORK_SUPPORT', '0')             # <<<<<<<<<<<<<<
 *         .lower() in _TRUE_VALUES)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_environ); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__374, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":34
 * _GRPC_ENABLE_FORK_SUPPORT = (
 *     os.environ.get('GRPC_ENABLE_FORK_SUPPORT', '0')
 *         .lower() in _TRUE_VALUES)             # <<<<<<<<<<<<<<
 * 
 * _fork_handler_failed = False
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_lower); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_TRUE_VALUES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_t_7, __pyx_t_2, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(1, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_GRPC_ENABLE_FORK_SUPPORT, __pyx_t_2) < 0) __PYX_ERR(1, 32, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":36
 *         .lower() in _TRUE_VALUES)
 * 
 * _fork_handler_failed = False             # <<<<<<<<<<<<<<
 * 
 * cdef void __prefork() noexcept nogil:
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_fork_handler_failed, Py_False) < 0) __PYX_ERR(1, 36, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":93
 * 
 * 
 * def fork_handlers_and_grpc_init():             # <<<<<<<<<<<<<<
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_95fork_handlers_and_grpc_init, 0, __pyx_n_s_fork_handlers_and_grpc_init, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__375)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_fork_handlers_and_grpc_init, __pyx_t_2) < 0) __PYX_ERR(1, 93, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":106
 * 
 * 
 * class ForkManagedThread(object):             # <<<<<<<<<<<<<<
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 */
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_tuple__377); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_2, __pyx_n_s_ForkManagedThread, __pyx_n_s_ForkManagedThread, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__pyx_t_2 != __pyx_tuple__377) {
    if (unlikely((PyDict_SetItemString(__pyx_t_6, "__orig_bases__", __pyx_tuple__377) < 0))) __PYX_ERR(1, 106, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":107
 * 
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_1__init__, 0, __pyx_n_s_ForkManagedThread___init, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__379)); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__380);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_init, __pyx_t_9) < 0) __PYX_ERR(1, 107, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":118
 *             self._thread = threading.Thread(target=_run_with_context(target), args=args)
 * 
 *     def setDaemon(self, daemonic):             # <<<<<<<<<<<<<<
 *         self._thread.daemon = daemonic
 * 
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_3setDaemon, 0, __pyx_n_s_ForkManagedThread_setDaemon, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__382)); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_setDaemon, __pyx_t_9) < 0) __PYX_ERR(1, 118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":121
 *         self._thread.daemon = daemonic
 * 
 *     def start(self):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             _fork_state.active_thread_count.increment()
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_5start, 0, __pyx_n_s_ForkManagedThread_start, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__383)); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_start, __pyx_t_9) < 0) __PYX_ERR(1, 121, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":126
 *         self._thread.start()
 * 
 *     def join(self):             # <<<<<<<<<<<<<<
 *         self._thread.join()
 * 
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_7join, 0, __pyx_n_s_ForkManagedThread_join, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__384)); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_join, __pyx_t_9) < 0) __PYX_ERR(1, 126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":106
 * 
 * 
 * class ForkManagedThread(object):             # <<<<<<<<<<<<<<
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 */
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_ForkManagedThread, __pyx_t_2, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ForkManagedThread, __pyx_t_9) < 0) __PYX_ERR(1, 106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":130
 * 
 * 
 * def block_if_fork_in_progress(postfork_state_to_reset=None):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_97block_if_fork_in_progress, 0, __pyx_n_s_block_if_fork_in_progress, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__386)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__241);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_block_if_fork_in_progress, __pyx_t_2) < 0) __PYX_ERR(1, 130, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":142
 * 
 * 
 * def enter_user_request_generator():             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.decrement()
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_99enter_user_request_generator, 0, __pyx_n_s_enter_user_request_generator, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__387)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_enter_user_request_generator, __pyx_t_2) < 0) __PYX_ERR(1, 142, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":147
 * 
 * 
 * def return_from_user_request_generator():             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.increment()
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_101return_from_user_request_generator, 0, __pyx_n_s_return_from_user_request_generat, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__388)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_return_from_user_request_generat, __pyx_t_2) < 0) __PYX_ERR(1, 147, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":153
 * 
 * 
 * def get_fork_epoch():             # <<<<<<<<<<<<<<
 *     return _fork_state.fork_epoch
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_103get_fork_epoch, 0, __pyx_n_s_get_fork_epoch, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__389)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_fork_epoch, __pyx_t_2) < 0) __PYX_ERR(1, 153, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":157
 * 
 * 
 * def is_fork_support_enabled():             # <<<<<<<<<<<<<<
 *     return _GRPC_ENABLE_FORK_SUPPORT
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_105is_fork_support_enabled, 0, __pyx_n_s_is_fork_support_enabled, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__390)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_fork_support_enabled, __pyx_t_2) < 0) __PYX_ERR(1, 157, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":161
 * 
 * 
 * def fork_register_channel(channel):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.add(channel)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_107fork_register_channel, 0, __pyx_n_s_fork_register_channel, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__392)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_fork_register_channel, __pyx_t_2) < 0) __PYX_ERR(1, 161, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":166
 * 
 * 
 * def fork_unregister_channel(channel):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.discard(channel)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_109fork_unregister_channel, 0, __pyx_n_s_fork_unregister_channel, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__393)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_fork_unregister_channel, __pyx_t_2) < 0) __PYX_ERR(1, 166, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":171
 * 
 * 
 * class _ActiveThreadCount(object):             # <<<<<<<<<<<<<<
 *     def __init__(self):
 *         self._num_active_threads = 0
 */
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_tuple__395); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_2, __pyx_n_s_ActiveThreadCount, __pyx_n_s_ActiveThreadCount, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__pyx_t_2 != __pyx_tuple__395) {
    if (unlikely((PyDict_SetItemString(__pyx_t_6, "__orig_bases__", __pyx_tuple__395) < 0))) __PYX_ERR(1, 171, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":172
 * 
 * class _ActiveThreadCount(object):
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self._num_active_threads = 0
 *         self._condition = threading.Condition()
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_1__init__, 0, __pyx_n_s_ActiveThreadCount___init, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__396)); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_init, __pyx_t_9) < 0) __PYX_ERR(1, 172, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":176
 *         self._condition = threading.Condition()
 * 
 *     def increment(self):             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             self._num_active_threads += 1
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_3increment, 0, __pyx_n_s_ActiveThreadCount_increment, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__397)); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_increment, __pyx_t_9) < 0) __PYX_ERR(1, 176, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":180
 *             self._num_active_threads += 1
 * 
 *     def decrement(self):             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             self._num_active_threads -= 1
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_5decrement, 0, __pyx_n_s_ActiveThreadCount_decrement, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__398)); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_decrement, __pyx_t_9) < 0) __PYX_ERR(1, 180, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":186
 *                 self._condition.notify_all()
 * 
 *     def await_zero_threads(self, timeout_secs):             # <<<<<<<<<<<<<<
 *         end_time = time.time() + timeout_secs
 *         wait_time = timeout_secs
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_7await_zero_threads, 0, __pyx_n_s_ActiveThreadCount_await_zero_th, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__400)); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_await_zero_threads, __pyx_t_9) < 0) __PYX_ERR(1, 186, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":171
 * 
 * 
 * class _ActiveThreadCount(object):             # <<<<<<<<<<<<<<
 *     def __init__(self):
 *         self._num_active_threads = 0
 */
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_ActiveThreadCount, __pyx_t_2, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ActiveThreadCount, __pyx_t_9) < 0) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":203
 * 
 * 
 * class _ForkState(object):             # <<<<<<<<<<<<<<
 *     def __init__(self):
 *         self.fork_in_progress_condition = threading.Condition()
 */
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_tuple__402); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_2, __pyx_n_s_ForkState, __pyx_n_s_ForkState, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__pyx_t_2 != __pyx_tuple__402) {
    if (unlikely((PyDict_SetItemString(__pyx_t_6, "__orig_bases__", __pyx_tuple__402) < 0))) __PYX_ERR(1, 203, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":204
 * 
 * class _ForkState(object):
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self.fork_in_progress_condition = threading.Condition()
 *         self.fork_in_progress = False
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10_ForkState_1__init__, 0, __pyx_n_s_ForkState___init, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__403)); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_init, __pyx_t_9) < 0) __PYX_ERR(1, 204, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":203
 * 
 * 
 * class _ForkState(object):             # <<<<<<<<<<<<<<
 *     def __init__(self):
 *         self.fork_in_progress_condition = threading.Condition()
 */
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_ForkState, __pyx_t_2, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ForkState, __pyx_t_9) < 0) __PYX_ERR(1, 203, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":215
 * 
 * 
 * _fork_state = _ForkState()             # <<<<<<<<<<<<<<
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ForkState); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_fork_state, __pyx_t_7) < 0) __PYX_ERR(1, 215, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":15
 * # limitations under the License.
 * 
 * import warnings             # <<<<<<<<<<<<<<
 * 
 * from cpython.version cimport PY_MAJOR_VERSION, PY_MINOR_VERSION
 */
  __pyx_t_7 = __Pyx_ImportDottedModule(__pyx_n_s_warnings, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_warnings, __pyx_t_7) < 0) __PYX_ERR(6, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":19
 * from cpython.version cimport PY_MAJOR_VERSION, PY_MINOR_VERSION
 * 
 * TYPE_METADATA_STRING = "Tuple[Tuple[str, Union[str, bytes]]...]"             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TYPE_METADATA_STRING, __pyx_kp_s_Tuple_Tuple_str_Union_str_bytes) < 0) __PYX_ERR(6, 19, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":59
 * 
 * 
 * class _EOF:             # <<<<<<<<<<<<<<
 * 
 *     def __bool__(self):
 */
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_EOF_2, __pyx_n_s_EOF_2, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":61
 * class _EOF:
 * 
 *     def __bool__(self):             # <<<<<<<<<<<<<<
 *         return False
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_1__bool__, 0, __pyx_n_s_EOF___bool, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__404)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_bool, __pyx_t_2) < 0) __PYX_ERR(6, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":64
 *         return False
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return 0
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_3__len__, 0, __pyx_n_s_EOF___len, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__405)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_len, __pyx_t_2) < 0) __PYX_ERR(6, 64, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":67
 *         return 0
 * 
 *     def _repr(self) -> str:             # <<<<<<<<<<<<<<
 *         return '<grpc.aio.EOF>'
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_n_s_str) < 0) __PYX_ERR(6, 67, __pyx_L1_error)
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_5_repr, 0, __pyx_n_s_EOF__repr, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__406)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_6, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_repr, __pyx_t_6) < 0) __PYX_ERR(6, 67, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":70
 *         return '<grpc.aio.EOF>'
 * 
 *     def __repr__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
 */
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_return, __pyx_n_s_str) < 0) __PYX_ERR(6, 70, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_7__repr__, 0, __pyx_n_s_EOF___repr, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__407)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_6);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_repr_2, __pyx_t_2) < 0) __PYX_ERR(6, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":73
 *         return self._repr()
 * 
 *     def __str__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_n_s_str) < 0) __PYX_ERR(6, 73, __pyx_L1_error)
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_9__str__, 0, __pyx_n_s_EOF___str, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__408)); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_6, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_str_2, __pyx_t_6) < 0) __PYX_ERR(6, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":59
 * 
 * 
 * class _EOF:             # <<<<<<<<<<<<<<
 * 
 *     def __bool__(self):
 */
  __pyx_t_6 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_EOF_2, __pyx_empty_tuple, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_EOF_2, __pyx_t_6) < 0) __PYX_ERR(6, 59, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":77
 * 
 * 
 * EOF = _EOF()             # <<<<<<<<<<<<<<
 * 
 * _COMPRESSION_METADATA_STRING_MAPPING = {
 */
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_EOF_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_EOF, __pyx_t_6) < 0) __PYX_ERR(6, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":80
 * 
 * _COMPRESSION_METADATA_STRING_MAPPING = {
 *     CompressionAlgorithm.none: 'identity',             # <<<<<<<<<<<<<<
 *     CompressionAlgorithm.deflate: 'deflate',
 *     CompressionAlgorithm.gzip: 'gzip',
 */
  __pyx_t_6 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CompressionAlgorithm); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_none); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_t_2, __pyx_n_s_identity) < 0) __PYX_ERR(6, 80, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":81
 * _COMPRESSION_METADATA_STRING_MAPPING = {
 *     CompressionAlgorithm.none: 'identity',
 *     CompressionAlgorithm.deflate: 'deflate',             # <<<<<<<<<<<<<<
 *     CompressionAlgorithm.gzip: 'gzip',
 * }
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CompressionAlgorithm); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_deflate); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_t_7, __pyx_n_s_deflate) < 0) __PYX_ERR(6, 80, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":82
 *     CompressionAlgorithm.none: 'identity',
 *     CompressionAlgorithm.deflate: 'deflate',
 *     CompressionAlgorithm.gzip: 'gzip',             # <<<<<<<<<<<<<<
 * }
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CompressionAlgorithm); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_gzip); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_t_2, __pyx_n_s_gzip) < 0) __PYX_ERR(6, 80, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_COMPRESSION_METADATA_STRING_MAP, __pyx_t_6) < 0) __PYX_ERR(6, 79, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":85
 * }
 * 
 * class BaseError(Exception):             # <<<<<<<<<<<<<<
 *     """The base class for exceptions generated by gRPC AsyncIO stack."""
 * 
 */
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]));
  __Pyx_GIVEREF((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]));
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])))) __PYX_ERR(6, 85, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_2, __pyx_n_s_BaseError, __pyx_n_s_BaseError, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_kp_s_The_base_class_for_exceptions_ge); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_2 != __pyx_t_6) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_6) < 0))) __PYX_ERR(6, 85, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_BaseError, __pyx_t_2, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_BaseError, __pyx_t_6) < 0) __PYX_ERR(6, 85, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":89
 * 
 * 
 * class UsageError(BaseError):             # <<<<<<<<<<<<<<
 *     """Raised when the usage of API by applications is inappropriate.
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_BaseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2)) __PYX_ERR(6, 89, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_2, __pyx_n_s_UsageError, __pyx_n_s_UsageError, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_kp_s_Raised_when_the_usage_of_API_by); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__pyx_t_2 != __pyx_t_7) {
    if (unlikely((PyDict_SetItemString(__pyx_t_6, "__orig_bases__", __pyx_t_7) < 0))) __PYX_ERR(6, 89, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_n_s_UsageError, __pyx_t_2, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_UsageError, __pyx_t_7) < 0) __PYX_ERR(6, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":98
 * 
 * 
 * class AbortError(BaseError):             # <<<<<<<<<<<<<<
 *     """Raised when calling abort in servicer methods.
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_BaseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2)) __PYX_ERR(6, 98, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_2, __pyx_n_s_AbortError, __pyx_n_s_AbortError, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_kp_s_Raised_when_calling_abort_in_ser); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_2 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(6, 98, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_AbortError, __pyx_t_2, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_AbortError, __pyx_t_9) < 0) __PYX_ERR(6, 98, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":106
 * 
 * 
 * class InternalError(BaseError):             # <<<<<<<<<<<<<<
 *     """Raised upon unexpected errors in native code."""
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_BaseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2)) __PYX_ERR(6, 106, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_2, __pyx_n_s_InternalError, __pyx_n_s_InternalError, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_kp_s_Raised_upon_unexpected_errors_in); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_2 != __pyx_t_6) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_6) < 0))) __PYX_ERR(6, 106, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_InternalError, __pyx_t_2, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InternalError, __pyx_t_6) < 0) __PYX_ERR(6, 106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":110
 * 
 * 
 * def schedule_coro_threadsafe(object coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         return loop.create_task(coro)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_111schedule_coro_threadsafe, 0, __pyx_n_s_schedule_coro_threadsafe, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__410)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_schedule_coro_threadsafe, __pyx_t_2) < 0) __PYX_ERR(6, 110, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":123
 * 
 * 
 * def async_generator_to_generator(object agen, object loop):             # <<<<<<<<<<<<<<
 *     """Converts an async generator into generator."""
 *     try:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_113async_generator_to_generator, 0, __pyx_n_s_async_generator_to_generator, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__44)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_async_generator_to_generator, __pyx_t_2) < 0) __PYX_ERR(6, 123, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":141
 * 
 * 
 * async def generator_to_async_generator(object gen, object loop, object thread_pool):             # <<<<<<<<<<<<<<
 *     """Converts a generator into async generator.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_116generator_to_async_generator, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_generator_to_async_generator, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_generator_to_async_generator, __pyx_t_2) < 0) __PYX_ERR(6, 141, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":176
 * 
 * 
 * if PY_MAJOR_VERSION >= 3 and PY_MINOR_VERSION >= 7:             # <<<<<<<<<<<<<<
 *     def get_working_loop():
 *         """Returns a running event loop.
 */
  __pyx_t_10 = (PY_MAJOR_VERSION >= 3);
  if (__pyx_t_10) {
  } else {
    __pyx_t_8 = __pyx_t_10;
    goto __pyx_L10_bool_binop_done;
  }
  __pyx_t_10 = (PY_MINOR_VERSION >= 7);
  __pyx_t_8 = __pyx_t_10;
  __pyx_L10_bool_binop_done:;
  if (__pyx_t_8) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":177
 * 
 * if PY_MAJOR_VERSION >= 3 and PY_MINOR_VERSION >= 7:
 *     def get_working_loop():             # <<<<<<<<<<<<<<
 *         """Returns a running event loop.
 * 
 */
    __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_119get_working_loop, 0, __pyx_n_s_get_working_loop, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__413)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_working_loop, __pyx_t_2) < 0) __PYX_ERR(6, 177, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":176
 * 
 * 
 * if PY_MAJOR_VERSION >= 3 and PY_MINOR_VERSION >= 7:             # <<<<<<<<<<<<<<
 *     def get_working_loop():
 *         """Returns a running event loop.
 */
    goto __pyx_L9;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":196
 *                     return asyncio.get_event_loop_policy().new_event_loop()
 * else:
 *     def get_working_loop():             # <<<<<<<<<<<<<<
 *         """Returns a running event loop."""
 *         return asyncio.get_event_loop()
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_121get_working_loop, 0, __pyx_n_s_get_working_loop, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__414)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_working_loop, __pyx_t_2) < 0) __PYX_ERR(6, 196, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L9:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":201
 * 
 * 
 * def raise_if_not_valid_trailing_metadata(object metadata):             # <<<<<<<<<<<<<<
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_123raise_if_not_valid_trailing_metadata, 0, __pyx_n_s_raise_if_not_valid_trailing_meta, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__416)); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_raise_if_not_valid_trailing_meta, __pyx_t_2) < 0) __PYX_ERR(6, 201, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":31
 *         self._debug_error_string = debug_error_string
 * 
 *     cpdef grpc_status_code code(self):             # <<<<<<<<<<<<<<
 *         return self._code
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_3code, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioRpcStatus_code, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__417)); if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus, __pyx_n_s_code, __pyx_t_2) < 0) __PYX_ERR(30, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":34
 *         return self._code
 * 
 *     cpdef str details(self):             # <<<<<<<<<<<<<<
 *         return self._details
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_5details, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioRpcStatus_details, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__418)); if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus, __pyx_n_s_details, __pyx_t_2) < 0) __PYX_ERR(30, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":37
 *         return self._details
 * 
 *     cpdef tuple trailing_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._trailing_metadata
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_7trailing_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioRpcStatus_trailing_metadata, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__419)); if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus, __pyx_n_s_trailing_metadata, __pyx_t_2) < 0) __PYX_ERR(30, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":40
 *         return self._trailing_metadata
 * 
 *     cpdef str debug_error_string(self):             # <<<<<<<<<<<<<<
 *         return self._debug_error_string
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_9debug_error_string, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioRpcStatus_debug_error_string, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__420)); if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus, __pyx_n_s_debug_error_string, __pyx_t_2) < 0) __PYX_ERR(30, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioRpcStatus___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__421)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioRpcStatus___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__422)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":15
 * # limitations under the License.
 * 
 * import socket             # <<<<<<<<<<<<<<
 * 
 * cdef gpr_timespec _GPR_INF_FUTURE = gpr_inf_future(GPR_CLOCK_REALTIME)
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_socket, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_socket, __pyx_t_2) < 0) __PYX_ERR(7, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":17
 * import socket
 * 
 * cdef gpr_timespec _GPR_INF_FUTURE = gpr_inf_future(GPR_CLOCK_REALTIME)             # <<<<<<<<<<<<<<
 * cdef float _POLL_AWAKE_INTERVAL_S = 0.2
 * 
 */
  __pyx_v_4grpc_7_cython_6cygrpc__GPR_INF_FUTURE = gpr_inf_future(GPR_CLOCK_REALTIME);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":18
 * 
 * cdef gpr_timespec _GPR_INF_FUTURE = gpr_inf_future(GPR_CLOCK_REALTIME)
 * cdef float _POLL_AWAKE_INTERVAL_S = 0.2             # <<<<<<<<<<<<<<
 * 
 * # This bool indicates if the event loop impl can monitor a given fd, or has
 */
  __pyx_v_4grpc_7_cython_6cygrpc__POLL_AWAKE_INTERVAL_S = 0.2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":22
 * # This bool indicates if the event loop impl can monitor a given fd, or has
 * # loop.add_reader method.
 * cdef bint _has_fd_monitoring = True             # <<<<<<<<<<<<<<
 * 
 * IF UNAME_SYSNAME == "Windows":
 */
  __pyx_v_4grpc_7_cython_6cygrpc__has_fd_monitoring = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":34
 * 
 * 
 * def _handle_callback_wrapper(CallbackWrapper callback_wrapper, int success):             # <<<<<<<<<<<<<<
 *     CallbackWrapper.functor_run(callback_wrapper.c_functor(), success)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_125_handle_callback_wrapper, 0, __pyx_n_s_handle_callback_wrapper, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__424)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_callback_wrapper, __pyx_t_2) < 0) __PYX_ERR(7, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BaseCompletionQueue___reduce_cyt, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__425)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BaseCompletionQueue___setstate_c, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__426)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":66
 *                 self._has_reader = False
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         if self.loop:
 *             if self._has_reader:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15_BoundEventLoop_3close, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BoundEventLoop_close, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__427)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop, __pyx_n_s_close, __pyx_t_2) < 0) __PYX_ERR(7, 66, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15_BoundEventLoop_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BoundEventLoop___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__428)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15_BoundEventLoop_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BoundEventLoop___setstate_cytho, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__429)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":91
 *         self._queue = cpp_event_queue()
 * 
 *     def bind_loop(self, object loop):             # <<<<<<<<<<<<<<
 *         if loop in self._loops:
 *             return
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_3bind_loop, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PollerCompletionQueue_bind_loop, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__431)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue, __pyx_n_s_bind_loop, __pyx_t_2) < 0) __PYX_ERR(7, 91, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":124
 *                         self._handle_events(None)
 * 
 *     def _poll_wrapper(self):             # <<<<<<<<<<<<<<
 *         with nogil:
 *             self._poll()
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_5_poll_wrapper, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PollerCompletionQueue__poll_wrap, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__432)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue, __pyx_n_s_poll_wrapper, __pyx_t_2) < 0) __PYX_ERR(7, 124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":143
 *         self._write_socket.close()
 * 
 *     def _handle_events(self, object context_loop):             # <<<<<<<<<<<<<<
 *         cdef bytes data
 *         if _has_fd_monitoring:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_7_handle_events, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PollerCompletionQueue__handle_ev, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__434)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue, __pyx_n_s_handle_events, __pyx_t_2) < 0) __PYX_ERR(7, 143, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PollerCompletionQueue___reduce_c, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__435)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PollerCompletionQueue___setstate, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__436)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CallbackFailureHandler___reduce, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__437)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CallbackFailureHandler___setstat, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__438)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CallbackWrapper_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CallbackWrapper___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__439)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CallbackWrapper_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CallbackWrapper___setstate_cytho, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__440)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":70
 *     'grpc_completion_queue_shutdown',
 *     'Unknown',
 *     InternalError)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_InternalError); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":67
 * 
 * 
 * cdef CallbackFailureHandler CQ_SHUTDOWN_FAILURE_HANDLER = CallbackFailureHandler(             # <<<<<<<<<<<<<<
 *     'grpc_completion_queue_shutdown',
 *     'Unknown',
 */
  __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(32, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_grpc_completion_queue_shutdown);
  __Pyx_GIVEREF(__pyx_n_s_grpc_completion_queue_shutdown);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_grpc_completion_queue_shutdown)) __PYX_ERR(32, 67, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_Unknown);
  __Pyx_GIVEREF(__pyx_n_s_Unknown);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_n_s_Unknown)) __PYX_ERR(32, 67, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_2)) __PYX_ERR(32, 67, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler), __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_XGOTREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc_CQ_SHUTDOWN_FAILURE_HANDLER);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc_CQ_SHUTDOWN_FAILURE_HANDLER, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_t_2));
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":73
 * 
 * 
 * class ExecuteBatchError(InternalError):             # <<<<<<<<<<<<<<
 *     """Raised when execute batch returns a failure from Core."""
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_InternalError); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(32, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2)) __PYX_ERR(32, 73, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(32, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_2, __pyx_n_s_ExecuteBatchError, __pyx_n_s_ExecuteBatchError, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_kp_s_Raised_when_execute_batch_return); if (unlikely(!__pyx_t_6)) __PYX_ERR(32, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__pyx_t_2 != __pyx_t_7) {
    if (unlikely((PyDict_SetItemString(__pyx_t_6, "__orig_bases__", __pyx_t_7) < 0))) __PYX_ERR(32, 73, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_n_s_ExecuteBatchError, __pyx_t_2, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(32, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ExecuteBatchError, __pyx_t_7) < 0) __PYX_ERR(32, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":77
 * 
 * 
 * async def execute_batch(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                tuple operations,
 *                                object loop):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_127execute_batch, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_execute_batch, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_execute_batch, __pyx_t_2) < 0) __PYX_ERR(32, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":115
 * 
 * 
 * async def _receive_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                            object loop):
 *     """Retrives parsed messages from Core.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_130_receive_message, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_receive_message, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_receive_message, __pyx_t_2) < 0) __PYX_ERR(32, 115, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":139
 * 
 * 
 * async def _send_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                         bytes message,
 *                         Operation send_initial_metadata_op,
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_133_send_message, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_send_message, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_message, __pyx_t_2) < 0) __PYX_ERR(32, 139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":151
 * 
 * 
 * async def _send_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                  tuple metadata,
 *                                  int flags,
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_136_send_initial_metadata, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_send_initial_metadata, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_initial_metadata, __pyx_t_2) < 0) __PYX_ERR(32, 151, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":162
 * 
 * 
 * async def _receive_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                     object loop):
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_139_receive_initial_metadata, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_receive_initial_metadata, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_receive_initial_metadata, __pyx_t_2) < 0) __PYX_ERR(32, 162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":169
 *     return op.initial_metadata()
 * 
 * async def _send_error_status_from_server(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                          grpc_status_code code,
 *                                          str details,
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_142_send_error_status_from_server, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_send_error_status_from_server, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_error_status_from_server, __pyx_t_2) < 0) __PYX_ERR(32, 169, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":15
 * # limitations under the License.
 * 
 * import enum             # <<<<<<<<<<<<<<
 * 
 * cdef str _GRPC_ASYNCIO_ENGINE = os.environ.get('GRPC_ASYNCIO_ENGINE', 'poller').upper()
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_enum, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_enum, __pyx_t_2) < 0) __PYX_ERR(33, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":17
 * import enum
 * 
 * cdef str _GRPC_ASYNCIO_ENGINE = os.environ.get('GRPC_ASYNCIO_ENGINE', 'poller').upper()             # <<<<<<<<<<<<<<
 * cdef _AioState _global_aio_state = _AioState()
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_environ); if (unlikely(!__pyx_t_9)) __PYX_ERR(33, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__447, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(33, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_upper); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(33, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(PyString_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_9))) __PYX_ERR(33, 17, __pyx_L1_error)
  __Pyx_XGOTREF(__pyx_v_4grpc_7_cython_6cygrpc__GRPC_ASYNCIO_ENGINE);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc__GRPC_ASYNCIO_ENGINE, ((PyObject*)__pyx_t_9));
  __Pyx_GIVEREF(__pyx_t_9);
  __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":18
 * 
 * cdef str _GRPC_ASYNCIO_ENGINE = os.environ.get('GRPC_ASYNCIO_ENGINE', 'poller').upper()
 * cdef _AioState _global_aio_state = _AioState()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_9 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioState)); if (unlikely(!__pyx_t_9)) __PYX_ERR(33, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_XGOTREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state, ((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)__pyx_t_9));
  __Pyx_GIVEREF(__pyx_t_9);
  __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":21
 * 
 * 
 * class AsyncIOEngine(enum.Enum):             # <<<<<<<<<<<<<<
 *     # NOTE(lidiz) the support for custom_io_manager is removed in favor of the
 *     # EventEngine project, which will be the only IO platform in Core.
 */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_enum); if (unlikely(!__pyx_t_9)) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2)) __PYX_ERR(33, 21, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_2, __pyx_n_s_AsyncIOEngine, __pyx_n_s_AsyncIOEngine, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_2 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(33, 21, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":24
 *     # NOTE(lidiz) the support for custom_io_manager is removed in favor of the
 *     # EventEngine project, which will be the only IO platform in Core.
 *     CUSTOM_IO_MANAGER = 'custom_io_manager'             # <<<<<<<<<<<<<<
 *     POLLER = 'poller'
 * 
 */
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_CUSTOM_IO_MANAGER, __pyx_n_s_custom_io_manager) < 0) __PYX_ERR(33, 24, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":25
 *     # EventEngine project, which will be the only IO platform in Core.
 *     CUSTOM_IO_MANAGER = 'custom_io_manager'
 *     POLLER = 'poller'             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_POLLER, __pyx_n_s_poller) < 0) __PYX_ERR(33, 25, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":21
 * 
 * 
 * class AsyncIOEngine(enum.Enum):             # <<<<<<<<<<<<<<
 *     # NOTE(lidiz) the support for custom_io_manager is removed in favor of the
 *     # EventEngine project, which will be the only IO platform in Core.
 */
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_AsyncIOEngine, __pyx_t_2, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_AsyncIOEngine, __pyx_t_9) < 0) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9_AioState_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioState___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__448)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9_AioState_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioState___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__449)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":68
 * 
 * 
 * def _grpc_shutdown_wrapper(_):             # <<<<<<<<<<<<<<
 *     """A thin Python wrapper of Core's shutdown function.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_145_grpc_shutdown_wrapper, 0, __pyx_n_s_grpc_shutdown_wrapper, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__451)); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_grpc_shutdown_wrapper, __pyx_t_2) < 0) __PYX_ERR(33, 68, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":91
 * 
 * 
 * cpdef init_grpc_aio():             # <<<<<<<<<<<<<<
 *     """Initializes the gRPC AsyncIO module.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_147init_grpc_aio, 0, __pyx_n_s_init_grpc_aio, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__452)); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_init_grpc_aio, __pyx_t_2) < 0) __PYX_ERR(33, 91, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":104
 * 
 * 
 * cpdef shutdown_grpc_aio():             # <<<<<<<<<<<<<<
 *     """Shuts down the gRPC AsyncIO module.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_149shutdown_grpc_aio, 0, __pyx_n_s_shutdown_grpc_aio, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__453)); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_shutdown_grpc_aio, __pyx_t_2) < 0) __PYX_ERR(33, 104, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":16
 * 
 * 
 * _EMPTY_FLAGS = 0             # <<<<<<<<<<<<<<
 * _EMPTY_MASK = 0
 * _IMMUTABLE_EMPTY_METADATA = tuple()
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_EMPTY_FLAGS, __pyx_int_0) < 0) __PYX_ERR(34, 16, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":17
 * 
 * _EMPTY_FLAGS = 0
 * _EMPTY_MASK = 0             # <<<<<<<<<<<<<<
 * _IMMUTABLE_EMPTY_METADATA = tuple()
 * 
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_EMPTY_MASK, __pyx_int_0) < 0) __PYX_ERR(34, 17, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":18
 * _EMPTY_FLAGS = 0
 * _EMPTY_MASK = 0
 * _IMMUTABLE_EMPTY_METADATA = tuple()             # <<<<<<<<<<<<<<
 * 
 * _UNKNOWN_CANCELLATION_DETAILS = 'RPC cancelled for unknown reason.'
 */
  __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_IMMUTABLE_EMPTY_METADATA, __pyx_t_2) < 0) __PYX_ERR(34, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":20
 * _IMMUTABLE_EMPTY_METADATA = tuple()
 * 
 * _UNKNOWN_CANCELLATION_DETAILS = 'RPC cancelled for unknown reason.'             # <<<<<<<<<<<<<<
 * _OK_CALL_REPRESENTATION = ('<{} of RPC that terminated with:\n'
 *                            '\tstatus = {}\n'
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_UNKNOWN_CANCELLATION_DETAILS, __pyx_kp_s_RPC_cancelled_for_unknown_reason) < 0) __PYX_ERR(34, 20, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":21
 * 
 * _UNKNOWN_CANCELLATION_DETAILS = 'RPC cancelled for unknown reason.'
 * _OK_CALL_REPRESENTATION = ('<{} of RPC that terminated with:\n'             # <<<<<<<<<<<<<<
 *                            '\tstatus = {}\n'
 *                            '\tdetails = "{}"\n'
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_OK_CALL_REPRESENTATION, __pyx_kp_s_of_RPC_that_terminated_with_sta) < 0) __PYX_ERR(34, 21, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":26
 *                            '>')
 * 
 * _NON_OK_CALL_REPRESENTATION = ('<{} of RPC that terminated with:\n'             # <<<<<<<<<<<<<<
 *                                '\tstatus = {}\n'
 *                                '\tdetails = "{}"\n'
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_NON_OK_CALL_REPRESENTATION, __pyx_kp_s_of_RPC_that_terminated_with_sta_2) < 0) __PYX_ERR(34, 26, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":69
 *         shutdown_grpc_aio()
 * 
 *     def _repr(self) -> str:             # <<<<<<<<<<<<<<
 *         """Assembles the RPC representation string."""
 *         # This needs to be loaded at run time once everything
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_n_s_str) < 0) __PYX_ERR(34, 69, __pyx_L1_error)
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_5_repr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioCall__repr, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__455)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_6, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_repr, __pyx_t_6) < 0) __PYX_ERR(34, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":170
 *         self._waiters_initial_metadata = []
 * 
 *     def add_done_callback(self, callback):             # <<<<<<<<<<<<<<
 *         if self.done():
 *             callback()
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_11add_done_callback, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioCall_add_done_callback, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__457)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_add_done_callback, __pyx_t_6) < 0) __PYX_ERR(34, 170, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":176
 *             self._done_callbacks.append(callback)
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         if self._deadline is None:
 *             return None
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_13time_remaining, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioCall_time_remaining, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__458)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_time_remaining, __pyx_t_6) < 0) __PYX_ERR(34, 176, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":182
 *             return max(0, self._deadline - time.time())
 * 
 *     def cancel(self, str details):             # <<<<<<<<<<<<<<
 *         """Cancels the RPC in Core with given RPC status.
 * 
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_15cancel, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioCall_cancel, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__460)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_cancel, __pyx_t_6) < 0) __PYX_ERR(34, 182, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":213
 *         assert error == GRPC_CALL_OK
 * 
 *     def done(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC call has finished.
 * 
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_17done, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioCall_done, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__461)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_done, __pyx_t_6) < 0) __PYX_ERR(34, 213, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":224
 *         return self._status is not None
 * 
 *     def cancelled(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC was cancelled.
 * 
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_19cancelled, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioCall_cancelled, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__462)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_cancelled, __pyx_t_6) < 0) __PYX_ERR(34, 224, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":235
 *         return self._status.code() == StatusCode.cancelled
 * 
 *     async def status(self):             # <<<<<<<<<<<<<<
 *         """Returns the status of the RPC call.
 * 
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_21status, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioCall_status, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_status, __pyx_t_6) < 0) __PYX_ERR(34, 235, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":254
 *         return self._status
 * 
 *     def is_ok(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC is ended with ok."""
 *         return self.done() and self._status.code() == StatusCode.ok
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_24is_ok, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioCall_is_ok, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__464)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_is_ok, __pyx_t_6) < 0) __PYX_ERR(34, 254, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":258
 *         return self.done() and self._status.code() == StatusCode.ok
 * 
 *     async def initial_metadata(self):             # <<<<<<<<<<<<<<
 *         """Returns the initial metadata of the RPC call.
 * 
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_26initial_metadata, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioCall_initial_metadata, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_initial_metadata, __pyx_t_6) < 0) __PYX_ERR(34, 258, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":276
 *         return self._initial_metadata
 * 
 *     def is_locally_cancelled(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC was cancelled locally.
 * 
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_29is_locally_cancelled, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioCall_is_locally_cancelled, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__465)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_is_locally_cancelled, __pyx_t_6) < 0) __PYX_ERR(34, 276, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":288
 *         return False
 * 
 *     def set_internal_error(self, str error_str):             # <<<<<<<<<<<<<<
 *         self._set_status(AioRpcStatus(
 *             StatusCode.internal,
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_31set_internal_error, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioCall_set_internal_error, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__467)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_set_internal_error, __pyx_t_6) < 0) __PYX_ERR(34, 288, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":296
 *         ))
 * 
 *     async def unary_unary(self,             # <<<<<<<<<<<<<<
 *                           bytes request,
 *                           tuple outbound_initial_metadata,
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_33unary_unary, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioCall_unary_unary, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__61)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_tuple__241);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_unary_unary, __pyx_t_6) < 0) __PYX_ERR(34, 296, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":347
 *             return None
 * 
 *     async def _handle_status_once_received(self):             # <<<<<<<<<<<<<<
 *         """Handles the status sent by peer once received."""
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_36_handle_status_once_received, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioCall__handle_status_once_rec, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_handle_status_once_received, __pyx_t_6) < 0) __PYX_ERR(34, 347, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":364
 *         ))
 * 
 *     async def receive_serialized_message(self):             # <<<<<<<<<<<<<<
 *         """Receives one single raw message in bytes."""
 *         cdef bytes received_message
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_39receive_serialized_message, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioCall_receive_serialized_mess, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_receive_serialized_message, __pyx_t_6) < 0) __PYX_ERR(34, 364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":381
 *             return EOF
 * 
 *     async def send_serialized_message(self, bytes message):             # <<<<<<<<<<<<<<
 *         """Sends one single raw message in bytes."""
 *         await _send_message(self,
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_42send_serialized_message, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioCall_send_serialized_message, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_send_serialized_message, __pyx_t_6) < 0) __PYX_ERR(34, 381, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":389
 *                             self._loop)
 * 
 *     async def send_receive_close(self):             # <<<<<<<<<<<<<<
 *         """Half close the RPC on the client-side."""
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_45send_receive_close, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioCall_send_receive_close, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__65)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_send_receive_close, __pyx_t_6) < 0) __PYX_ERR(34, 389, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":395
 *         await execute_batch(self, ops, self._loop)
 * 
 *     async def initiate_unary_stream(self,             # <<<<<<<<<<<<<<
 *                            bytes request,
 *                            tuple outbound_initial_metadata,
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_48initiate_unary_stream, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioCall_initiate_unary_stream, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_tuple__241);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_initiate_unary_stream, __pyx_t_6) < 0) __PYX_ERR(34, 395, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":437
 *             await status_task
 * 
 *     async def stream_unary(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_51stream_unary, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioCall_stream_unary, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_tuple__241);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_stream_unary, __pyx_t_6) < 0) __PYX_ERR(34, 437, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":496
 *             return None
 * 
 *     async def initiate_stream_stream(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_54initiate_stream_stream, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioCall_initiate_stream_stream, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__68)); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_tuple__241);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_n_s_initiate_stream_stream, __pyx_t_6) < 0) __PYX_ERR(34, 496, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_57__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioCall___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__475)); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_6) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_59__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioCall___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__476)); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_6) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":17
 * 
 * 
 * class _WatchConnectivityFailed(Exception):             # <<<<<<<<<<<<<<
 *     """Dedicated exception class for watch connectivity failed.
 * 
 */
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]));
  __Pyx_GIVEREF((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]));
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])))) __PYX_ERR(8, 17, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_2, __pyx_n_s_WatchConnectivityFailed, __pyx_n_s_WatchConnectivityFailed, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_kp_s_Dedicated_exception_class_for_wa); if (unlikely(!__pyx_t_9)) __PYX_ERR(8, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_2 != __pyx_t_6) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_6) < 0))) __PYX_ERR(8, 17, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_WatchConnectivityFailed, __pyx_t_2, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_WatchConnectivityFailed, __pyx_t_6) < 0) __PYX_ERR(8, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":25
 *     'watch_connectivity_state',
 *     'Timed out',
 *     _WatchConnectivityFailed)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_WatchConnectivityFailed); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":22
 *     It might be failed due to deadline exceeded.
 *     """
 * cdef CallbackFailureHandler _WATCH_CONNECTIVITY_FAILURE_HANDLER = CallbackFailureHandler(             # <<<<<<<<<<<<<<
 *     'watch_connectivity_state',
 *     'Timed out',
 */
  __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_watch_connectivity_state);
  __Pyx_GIVEREF(__pyx_n_s_watch_connectivity_state);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_watch_connectivity_state)) __PYX_ERR(8, 22, __pyx_L1_error);
  __Pyx_INCREF(__pyx_kp_s_Timed_out);
  __Pyx_GIVEREF(__pyx_kp_s_Timed_out);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_kp_s_Timed_out)) __PYX_ERR(8, 22, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_2)) __PYX_ERR(8, 22, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler), __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_XGOTREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc__WATCH_CONNECTIVITY_FAILURE_HANDLER);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc__WATCH_CONNECTIVITY_FAILURE_HANDLER, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_t_2));
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":61
 *         return f"<{class_name} {id_}>"
 * 
 *     def check_connectivity_state(self, bint try_to_connect):             # <<<<<<<<<<<<<<
 *         """A Cython wrapper for Core's check connectivity state API."""
 *         if self._status == AIO_CHANNEL_STATUS_DESTROYED:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_7check_connectivity_state, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioChannel_check_connectivity_st, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__477)); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel, __pyx_n_s_check_connectivity_state, __pyx_t_2) < 0) __PYX_ERR(8, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":71
 *             )
 * 
 *     async def watch_connectivity_state(self,             # <<<<<<<<<<<<<<
 *                                        grpc_connectivity_state last_observed_state,
 *                                        object deadline):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_9watch_connectivity_state, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioChannel_watch_connectivity_st, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel, __pyx_n_s_watch_connectivity_state, __pyx_t_2) < 0) __PYX_ERR(8, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":103
 *             return True
 * 
 *     def closing(self):             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_CLOSING
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_12closing, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioChannel_closing, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__479)); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel, __pyx_n_s_closing, __pyx_t_2) < 0) __PYX_ERR(8, 103, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":106
 *         self._status = AIO_CHANNEL_STATUS_CLOSING
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_DESTROYED
 *         grpc_channel_destroy(self.channel)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_14close, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioChannel_close, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__480)); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel, __pyx_n_s_close, __pyx_t_2) < 0) __PYX_ERR(8, 106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":110
 *         grpc_channel_destroy(self.channel)
 * 
 *     def closed(self):             # <<<<<<<<<<<<<<
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_16closed, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioChannel_closed, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__481)); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel, __pyx_n_s_closed, __pyx_t_2) < 0) __PYX_ERR(8, 110, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":113
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)
 * 
 *     def call(self,             # <<<<<<<<<<<<<<
 *              bytes method,
 *              object deadline,
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_18call, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioChannel_call, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__483)); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel, __pyx_n_s_call, __pyx_t_2) < 0) __PYX_ERR(8, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_20__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioChannel___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__484)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_22__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioChannel___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__485)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":16
 * 
 * 
 * import inspect             # <<<<<<<<<<<<<<
 * import traceback
 * import functools
 */
  __pyx_t_2 = __Pyx_patch_inspect(__Pyx_ImportDottedModule(__pyx_n_s_inspect, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_inspect, __pyx_t_2) < 0) __PYX_ERR(9, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":17
 * 
 * import inspect
 * import traceback             # <<<<<<<<<<<<<<
 * import functools
 * 
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_traceback, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_traceback, __pyx_t_2) < 0) __PYX_ERR(9, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":18
 * import inspect
 * import traceback
 * import functools             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_functools, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_functools, __pyx_t_2) < 0) __PYX_ERR(9, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":21
 * 
 * 
 * cdef int _EMPTY_FLAG = 0             # <<<<<<<<<<<<<<
 * cdef str _RPC_FINISHED_DETAILS = 'RPC already finished.'
 * cdef str _SERVER_STOPPED_DETAILS = 'Server already stopped.'
 */
  __pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":22
 * 
 * cdef int _EMPTY_FLAG = 0
 * cdef str _RPC_FINISHED_DETAILS = 'RPC already finished.'             # <<<<<<<<<<<<<<
 * cdef str _SERVER_STOPPED_DETAILS = 'Server already stopped.'
 * 
 */
  __Pyx_INCREF(__pyx_kp_s_RPC_already_finished);
  __Pyx_XGOTREF(__pyx_v_4grpc_7_cython_6cygrpc__RPC_FINISHED_DETAILS);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc__RPC_FINISHED_DETAILS, __pyx_kp_s_RPC_already_finished);
  __Pyx_GIVEREF(__pyx_kp_s_RPC_already_finished);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":23
 * cdef int _EMPTY_FLAG = 0
 * cdef str _RPC_FINISHED_DETAILS = 'RPC already finished.'
 * cdef str _SERVER_STOPPED_DETAILS = 'Server already stopped.'             # <<<<<<<<<<<<<<
 * 
 * cdef _augment_metadata(tuple metadata, object compression):
 */
  __Pyx_INCREF(__pyx_kp_s_Server_already_stopped);
  __Pyx_XGOTREF(__pyx_v_4grpc_7_cython_6cygrpc__SERVER_STOPPED_DETAILS);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc__SERVER_STOPPED_DETAILS, __pyx_kp_s_Server_already_stopped);
  __Pyx_GIVEREF(__pyx_kp_s_Server_already_stopped);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_HandlerCallDetails___reduce_cyt, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__486)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_HandlerCallDetails___setstate_c, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__487)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":41
 * 
 * 
 * class _ServerStoppedError(BaseError):             # <<<<<<<<<<<<<<
 *     """Raised if the server is stopped."""
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_BaseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2)) __PYX_ERR(9, 41, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_2, __pyx_n_s_ServerStoppedError, __pyx_n_s_ServerStoppedError, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_kp_s_Raised_if_the_server_is_stopped); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__pyx_t_2 != __pyx_t_7) {
    if (unlikely((PyDict_SetItemString(__pyx_t_6, "__orig_bases__", __pyx_t_7) < 0))) __PYX_ERR(9, 41, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_n_s_ServerStoppedError, __pyx_t_2, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ServerStoppedError, __pyx_t_7) < 0) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8RPCState_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RPCState___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__488)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8RPCState_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RPCState___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__489)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":127
 *         self._loop = loop
 * 
 *     async def read(self):             # <<<<<<<<<<<<<<
 *         cdef bytes raw_message
 *         self._rpc_state.raise_for_termination()
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_3read, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_ServicerContext_read, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__73)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_read, __pyx_t_2) < 0) __PYX_ERR(9, 127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":140
 *                             raw_message)
 * 
 *     async def write(self, object message):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_6write, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_ServicerContext_write, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_write, __pyx_t_2) < 0) __PYX_ERR(9, 140, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":150
 *         self._rpc_state.metadata_sent = True
 * 
 *     async def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_9send_initial_metadata, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_ServicerContext_send_initial_me, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__75)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_send_initial_metadata_2, __pyx_t_2) < 0) __PYX_ERR(9, 150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":167
 *               object code,
 *               str details='',
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.abort_exception is not None:
 *             raise UsageError('Abort already called!')
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(9, 167, __pyx_L1_error)
  __pyx_k__76 = ((PyObject*)__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":164
 *             self._rpc_state.metadata_sent = True
 * 
 *     async def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":167
 *               object code,
 *               str details='',
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.abort_exception is not None:
 *             raise UsageError('Abort already called!')
 */
  if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(9, 167, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":164
 *             self._rpc_state.metadata_sent = True
 * 
 *     async def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
 */
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(__pyx_kp_s__7);
  __Pyx_GIVEREF(__pyx_kp_s__7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_kp_s__7)) __PYX_ERR(9, 164, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_2)) __PYX_ERR(9, 164, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_12abort, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_ServicerContext_abort, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__77)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_9);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_abort, __pyx_t_2) < 0) __PYX_ERR(9, 164, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":203
 *             raise self._rpc_state.abort_exception
 * 
 *     async def abort_with_status(self, object status):             # <<<<<<<<<<<<<<
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_15abort_with_status, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_ServicerContext_abort_with_stat, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_abort_with_status, __pyx_t_2) < 0) __PYX_ERR(9, 203, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":206
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
 *     def set_trailing_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         raise_if_not_valid_trailing_metadata(metadata)
 *         self._rpc_state.trailing_metadata = tuple(metadata)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_18set_trailing_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_set_trailing_me, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__494)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_set_trailing_metadata, __pyx_t_2) < 0) __PYX_ERR(9, 206, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":210
 *         self._rpc_state.trailing_metadata = tuple(metadata)
 * 
 *     def trailing_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.trailing_metadata
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_20trailing_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_trailing_metada, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__495)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_trailing_metadata, __pyx_t_2) < 0) __PYX_ERR(9, 210, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":213
 *         return self._rpc_state.trailing_metadata
 * 
 *     def invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.invocation_metadata()
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_22invocation_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_invocation_meta, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__496)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_invocation_metadata, __pyx_t_2) < 0) __PYX_ERR(9, 213, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":216
 *         return self._rpc_state.invocation_metadata()
 * 
 *     def set_code(self, object code):             # <<<<<<<<<<<<<<
 *         self._rpc_state.status_code = get_status_code(code)
 *         self._rpc_state.py_status_code = code
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_24set_code, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_set_code, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__498)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_set_code, __pyx_t_2) < 0) __PYX_ERR(9, 216, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":220
 *         self._rpc_state.py_status_code = code
 * 
 *     def code(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.py_status_code
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_26code, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_code, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__499)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_code, __pyx_t_2) < 0) __PYX_ERR(9, 220, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":223
 *         return self._rpc_state.py_status_code
 * 
 *     def set_details(self, str details):             # <<<<<<<<<<<<<<
 *         self._rpc_state.status_details = details
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_28set_details, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_set_details, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__501)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_set_details, __pyx_t_2) < 0) __PYX_ERR(9, 223, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":226
 *         self._rpc_state.status_details = details
 * 
 *     def details(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_details
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_30details, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_details, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__502)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_details, __pyx_t_2) < 0) __PYX_ERR(9, 226, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":229
 *         return self._rpc_state.status_details
 * 
 *     def set_compression(self, object compression):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.metadata_sent:
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_32set_compression, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_set_compression, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__504)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_set_compression, __pyx_t_2) < 0) __PYX_ERR(9, 229, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":235
 *             self._rpc_state.compression_algorithm = compression
 * 
 *     def disable_next_message_compression(self):             # <<<<<<<<<<<<<<
 *         self._rpc_state.disable_next_compression = True
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_34disable_next_message_compression, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_disable_next_me, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__505)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_disable_next_message_compression, __pyx_t_2) < 0) __PYX_ERR(9, 235, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":238
 *         self._rpc_state.disable_next_compression = True
 * 
 *     def peer(self):             # <<<<<<<<<<<<<<
 *         cdef char *c_peer = NULL
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_36peer, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_peer, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__507)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_peer, __pyx_t_2) < 0) __PYX_ERR(9, 238, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":245
 *         return peer
 * 
 *     def peer_identities(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_38peer_identities, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_peer_identities, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__509)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_peer_identities, __pyx_t_2) < 0) __PYX_ERR(9, 245, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":252
 *         return identities
 * 
 *     def peer_identity_key(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_40peer_identity_key, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_peer_identity_k, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__511)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_peer_identity_key, __pyx_t_2) < 0) __PYX_ERR(9, 252, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":262
 *             return None
 * 
 *     def auth_context(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_42auth_context, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_auth_context, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__513)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_auth_context, __pyx_t_2) < 0) __PYX_ERR(9, 262, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":275
 *             return {}
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.details.deadline.seconds == _GPR_INF_FUTURE.seconds:
 *             return None
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_44time_remaining, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_time_remaining, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__514)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_time_remaining, __pyx_t_2) < 0) __PYX_ERR(9, 275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":281
 *             return max(_time_from_timespec(self._rpc_state.details.deadline) - time.time(), 0)
 * 
 *     def add_done_callback(self, callback):             # <<<<<<<<<<<<<<
 *         cb = functools.partial(callback, self)
 *         self._rpc_state.callbacks.append(cb)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_46add_done_callback, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_add_done_callba, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__516)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_add_done_callback, __pyx_t_2) < 0) __PYX_ERR(9, 281, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":285
 *         self._rpc_state.callbacks.append(cb)
 * 
 *     def done(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_sent
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_48done, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_done, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__517)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_done, __pyx_t_2) < 0) __PYX_ERR(9, 285, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":288
 *         return self._rpc_state.status_sent
 * 
 *     def cancelled(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_code == StatusCode.cancelled
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_50cancelled, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext_cancelled, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__518)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_n_s_cancelled, __pyx_t_2) < 0) __PYX_ERR(9, 288, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_52__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__519)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_54__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ServicerContext___setstate_cyth, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__520)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":304
 *               object code,
 *               str details='',
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):             # <<<<<<<<<<<<<<
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.abort(code, details, trailing_metadata),
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(9, 304, __pyx_L1_error)
  __pyx_k__80 = ((PyObject*)__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":301
 *         self._loop = context._loop
 * 
 *     def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":304
 *               object code,
 *               str details='',
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):             # <<<<<<<<<<<<<<
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.abort(code, details, trailing_metadata),
 */
  if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(9, 304, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":301
 *         self._loop = context._loop
 * 
 *     def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
 */
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(__pyx_kp_s__7);
  __Pyx_GIVEREF(__pyx_kp_s__7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_kp_s__7)) __PYX_ERR(9, 301, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_2)) __PYX_ERR(9, 301, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_3abort, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext_abort, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__522)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_9);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_n_s_abort, __pyx_t_2) < 0) __PYX_ERR(9, 301, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":311
 *         future.exception()
 * 
 *     def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.send_initial_metadata(metadata),
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_5send_initial_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext_send_initia, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__524)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_n_s_send_initial_metadata_2, __pyx_t_2) < 0) __PYX_ERR(9, 311, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":317
 *         future.result()
 * 
 *     def set_trailing_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._context.set_trailing_metadata(metadata)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_7set_trailing_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext_set_trailin, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__525)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_n_s_set_trailing_metadata, __pyx_t_2) < 0) __PYX_ERR(9, 317, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":320
 *         self._context.set_trailing_metadata(metadata)
 * 
 *     def invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._context.invocation_metadata()
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_9invocation_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext_invocation, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__526)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_n_s_invocation_metadata, __pyx_t_2) < 0) __PYX_ERR(9, 320, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":323
 *         return self._context.invocation_metadata()
 * 
 *     def set_code(self, object code):             # <<<<<<<<<<<<<<
 *         self._context.set_code(code)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_11set_code, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext_set_code, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__527)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_n_s_set_code, __pyx_t_2) < 0) __PYX_ERR(9, 323, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":326
 *         self._context.set_code(code)
 * 
 *     def set_details(self, str details):             # <<<<<<<<<<<<<<
 *         self._context.set_details(details)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_13set_details, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext_set_details, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__528)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_n_s_set_details, __pyx_t_2) < 0) __PYX_ERR(9, 326, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":329
 *         self._context.set_details(details)
 * 
 *     def set_compression(self, object compression):             # <<<<<<<<<<<<<<
 *         self._context.set_compression(compression)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_15set_compression, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext_set_compres, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__529)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_n_s_set_compression, __pyx_t_2) < 0) __PYX_ERR(9, 329, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":332
 *         self._context.set_compression(compression)
 * 
 *     def disable_next_message_compression(self):             # <<<<<<<<<<<<<<
 *         self._context.disable_next_message_compression()
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_17disable_next_message_compression, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext_disable_nex, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__530)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_n_s_disable_next_message_compression, __pyx_t_2) < 0) __PYX_ERR(9, 332, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":335
 *         self._context.disable_next_message_compression()
 * 
 *     def add_callback(self, object callback):             # <<<<<<<<<<<<<<
 *         self._callbacks.append(callback)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_19add_callback, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext_add_callbac, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__531)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_n_s_add_callback, __pyx_t_2) < 0) __PYX_ERR(9, 335, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":338
 *         self._callbacks.append(callback)
 * 
 *     def peer(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer()
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_21peer, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext_peer, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__532)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_n_s_peer, __pyx_t_2) < 0) __PYX_ERR(9, 338, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":341
 *         return self._context.peer()
 * 
 *     def peer_identities(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer_identities()
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_23peer_identities, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext_peer_identi, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__533)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_n_s_peer_identities, __pyx_t_2) < 0) __PYX_ERR(9, 341, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":344
 *         return self._context.peer_identities()
 * 
 *     def peer_identity_key(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer_identity_key()
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_25peer_identity_key, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext_peer_identi_2, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__534)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_n_s_peer_identity_key, __pyx_t_2) < 0) __PYX_ERR(9, 344, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":347
 *         return self._context.peer_identity_key()
 * 
 *     def auth_context(self):             # <<<<<<<<<<<<<<
 *         return self._context.auth_context()
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_27auth_context, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext_auth_contex, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__535)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_n_s_auth_context, __pyx_t_2) < 0) __PYX_ERR(9, 347, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":350
 *         return self._context.auth_context()
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         return self._context.time_remaining()
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_29time_remaining, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext_time_remain, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__536)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_n_s_time_remaining, __pyx_t_2) < 0) __PYX_ERR(9, 350, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_31__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext___reduce_cy, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__537)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_33__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SyncServicerContext___setstate, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__538)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":354
 * 
 * 
 * async def _run_interceptor(object interceptors, object query_handler,             # <<<<<<<<<<<<<<
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_151_run_interceptor, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_run_interceptor, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__81)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_run_interceptor, __pyx_t_2) < 0) __PYX_ERR(9, 354, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":365
 * 
 * 
 * def _is_async_handler(object handler):             # <<<<<<<<<<<<<<
 *     """Inspect if a method handler is async or sync."""
 *     return inspect.isawaitable(handler) or inspect.iscoroutinefunction(handler) or inspect.isasyncgenfunction(handler)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_154_is_async_handler, 0, __pyx_n_s_is_async_handler, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__541)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_async_handler, __pyx_t_2) < 0) __PYX_ERR(9, 365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":370
 * 
 * 
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,             # <<<<<<<<<<<<<<
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_156_find_method_handler, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_find_method_handler, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_find_method_handler, __pyx_t_2) < 0) __PYX_ERR(9, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":389
 * 
 * 
 * async def _finish_handler_with_unary_response(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                               object unary_handler,
 *                                               object request,
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_159_finish_handler_with_unary_response, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_finish_handler_with_unary_respo, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__85)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_finish_handler_with_unary_respo, __pyx_t_2) < 0) __PYX_ERR(9, 389, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":460
 * 
 * 
 * async def _finish_handler_with_stream_responses(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                                 object stream_handler,
 *                                                 object request,
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_162_finish_handler_with_stream_responses, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_finish_handler_with_stream_resp, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_finish_handler_with_stream_resp, __pyx_t_2) < 0) __PYX_ERR(9, 460, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":530
 * 
 * 
 * async def _handle_unary_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                   RPCState rpc_state,
 *                                   object loop):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_165_handle_unary_unary_rpc, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_handle_unary_unary_rpc, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__87)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_unary_unary_rpc, __pyx_t_2) < 0) __PYX_ERR(9, 530, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":564
 * 
 * 
 * async def _handle_unary_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_168_handle_unary_stream_rpc, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_handle_unary_stream_rpc, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_unary_stream_rpc, __pyx_t_2) < 0) __PYX_ERR(9, 564, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":603
 *         self._agen = None
 * 
 *     async def _async_message_receiver(self):             # <<<<<<<<<<<<<<
 *         """An async generator that receives messages."""
 *         cdef object message
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_MessageReceiver_3_async_message_receiver, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_MessageReceiver__async_message, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__89)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver, __pyx_n_s_async_message_receiver, __pyx_t_2) < 0) __PYX_ERR(9, 603, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_MessageReceiver_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MessageReceiver___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__546)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_MessageReceiver_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MessageReceiver___setstate_cyth, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__547)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":623
 * 
 * 
 * async def _handle_stream_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_171_handle_stream_unary_rpc, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_handle_stream_unary_rpc, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__90)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_stream_unary_rpc, __pyx_t_2) < 0) __PYX_ERR(9, 623, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":655
 * 
 * 
 * async def _handle_stream_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                     RPCState rpc_state,
 *                                     object loop):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_174_handle_stream_stream_rpc, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_handle_stream_stream_rpc, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__91)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_stream_stream_rpc, __pyx_t_2) < 0) __PYX_ERR(9, 655, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":686
 * 
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         try:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_177_handle_exceptions, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_handle_exceptions, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_exceptions, __pyx_t_2) < 0) __PYX_ERR(9, 686, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":755
 * 
 * 
 * async def _handle_cancellation_from_core(object rpc_task,             # <<<<<<<<<<<<<<
 *                                          RPCState rpc_state,
 *                                          object loop):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_180_handle_cancellation_from_core, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_handle_cancellation_from_core, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__95)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_cancellation_from_core, __pyx_t_2) < 0) __PYX_ERR(9, 755, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":772
 * 
 * 
 * async def _schedule_rpc_coro(object rpc_coro,             # <<<<<<<<<<<<<<
 *                              RPCState rpc_state,
 *                              object loop):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_183_schedule_rpc_coro, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_schedule_rpc_coro, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_schedule_rpc_coro, __pyx_t_2) < 0) __PYX_ERR(9, 772, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":795
 * 
 * 
 * async def _handle_rpc(list generic_handlers, tuple interceptors,             # <<<<<<<<<<<<<<
 *                       RPCState rpc_state, object loop, bint concurrency_exceeded):
 *     cdef object method_handler
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_186_handle_rpc, __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_handle_rpc, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__97)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_rpc, __pyx_t_2) < 0) __PYX_ERR(9, 795, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":858
 * 
 * 
 * class _RequestCallError(Exception): pass             # <<<<<<<<<<<<<<
 * 
 * cdef CallbackFailureHandler REQUEST_CALL_FAILURE_HANDLER = CallbackFailureHandler(
 */
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]));
  __Pyx_GIVEREF((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]));
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])))) __PYX_ERR(9, 858, __pyx_L1_error);
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_9, __pyx_n_s_RequestCallError, __pyx_n_s_RequestCallError, (PyObject *) NULL, __pyx_n_s_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_9 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(9, 858, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_RequestCallError, __pyx_t_9, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_RequestCallError, __pyx_t_2) < 0) __PYX_ERR(9, 858, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":861
 * 
 * cdef CallbackFailureHandler REQUEST_CALL_FAILURE_HANDLER = CallbackFailureHandler(
 *     'grpc_server_request_call', None, _RequestCallError)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_RequestCallError); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":860
 * class _RequestCallError(Exception): pass
 * 
 * cdef CallbackFailureHandler REQUEST_CALL_FAILURE_HANDLER = CallbackFailureHandler(             # <<<<<<<<<<<<<<
 *     'grpc_server_request_call', None, _RequestCallError)
 * 
 */
  __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_n_s_grpc_server_request_call);
  __Pyx_GIVEREF(__pyx_n_s_grpc_server_request_call);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_grpc_server_request_call)) __PYX_ERR(9, 860, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, Py_None)) __PYX_ERR(9, 860, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_9);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_9)) __PYX_ERR(9, 860, __pyx_L1_error);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler), __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_XGOTREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc_REQUEST_CALL_FAILURE_HANDLER);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc_REQUEST_CALL_FAILURE_HANDLER, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_t_9));
  __Pyx_GIVEREF(__pyx_t_9);
  __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":867
 *     'grpc_server_shutdown_and_notify',
 *     None,
 *     InternalError)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_InternalError); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":864
 * 
 * 
 * cdef CallbackFailureHandler SERVER_SHUTDOWN_FAILURE_HANDLER = CallbackFailureHandler(             # <<<<<<<<<<<<<<
 *     'grpc_server_shutdown_and_notify',
 *     None,
 */
  __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 864, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_n_s_grpc_server_shutdown_and_notify);
  __Pyx_GIVEREF(__pyx_n_s_grpc_server_shutdown_and_notify);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_grpc_server_shutdown_and_notify)) __PYX_ERR(9, 864, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, Py_None)) __PYX_ERR(9, 864, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_9);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_9)) __PYX_ERR(9, 864, __pyx_L1_error);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler), __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 864, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_XGOTREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc_SERVER_SHUTDOWN_FAILURE_HANDLER);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc_SERVER_SHUTDOWN_FAILURE_HANDLER, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_t_9));
  __Pyx_GIVEREF(__pyx_t_9);
  __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":879
 *         self.limiter_concurrency_exceeded = False
 * 
 *     def check_before_request_call(self):             # <<<<<<<<<<<<<<
 *         if self._active_rpcs >= self._maximum_concurrent_rpcs:
 *             self.limiter_concurrency_exceeded = True
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_3check_before_request_call, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ConcurrentRpcLimiter_check_befo, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__553)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter, __pyx_n_s_check_before_request_call, __pyx_t_9) < 0) __PYX_ERR(9, 879, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":885
 *             self._active_rpcs += 1
 * 
 *     def _decrease_active_rpcs_count(self, unused_future):             # <<<<<<<<<<<<<<
 *         self._active_rpcs -= 1
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_5_decrease_active_rpcs_count, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ConcurrentRpcLimiter__decrease, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__555)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter, __pyx_n_s_decrease_active_rpcs_count, __pyx_t_9) < 0) __PYX_ERR(9, 885, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":890
 *             self.limiter_concurrency_exceeded = False
 * 
 *     def decrease_once_finished(self, object rpc_task):             # <<<<<<<<<<<<<<
 *         rpc_task.add_done_callback(self._decrease_active_rpcs_count)
 * 
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_7decrease_once_finished, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ConcurrentRpcLimiter_decrease_o, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__557)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter, __pyx_n_s_decrease_once_finished, __pyx_t_9) < 0) __PYX_ERR(9, 890, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ConcurrentRpcLimiter___reduce_c, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__558)); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_9) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ConcurrentRpcLimiter___setstate, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__559)); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_9) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":932
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)
 * 
 *     def add_generic_rpc_handlers(self, object generic_rpc_handlers):             # <<<<<<<<<<<<<<
 *         self._generic_handlers.extend(generic_rpc_handlers)
 * 
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_3add_generic_rpc_handlers, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioServer_add_generic_rpc_handle, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__561)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_n_s_add_generic_rpc_handlers, __pyx_t_9) < 0) __PYX_ERR(9, 932, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":935
 *         self._generic_handlers.extend(generic_rpc_handlers)
 * 
 *     def add_insecure_port(self, address):             # <<<<<<<<<<<<<<
 *         return self._server.add_http2_port(address)
 * 
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_5add_insecure_port, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioServer_add_insecure_port, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__563)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 935, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_n_s_add_insecure_port, __pyx_t_9) < 0) __PYX_ERR(9, 935, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":938
 *         return self._server.add_http2_port(address)
 * 
 *     def add_secure_port(self, address, server_credentials):             # <<<<<<<<<<<<<<
 *         return self._server.add_http2_port(address,
 *                                            server_credentials._credentials)
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_7add_secure_port, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioServer_add_secure_port, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__565)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_n_s_add_secure_port, __pyx_t_9) < 0) __PYX_ERR(9, 938, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":942
 *                                            server_credentials._credentials)
 * 
 *     async def _request_call(self):             # <<<<<<<<<<<<<<
 *         cdef grpc_call_error error
 *         cdef RPCState rpc_state = RPCState(self)
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_9_request_call, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioServer__request_call, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__99)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_n_s_request_call, __pyx_t_9) < 0) __PYX_ERR(9, 942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":962
 *         return rpc_state
 * 
 *     async def _server_main_loop(self,             # <<<<<<<<<<<<<<
 *                                 object server_started):
 *         self._server.start(backup_queue=False)
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_12_server_main_loop, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioServer__server_main_loop, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__100)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_n_s_server_main_loop, __pyx_t_9) < 0) __PYX_ERR(9, 962, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1011
 *                 self._limiter.decrease_once_finished(rpc_task)
 * 
 *     def _serving_task_crash_handler(self, object task):             # <<<<<<<<<<<<<<
 *         """Shutdown the server immediately if unexpectedly exited."""
 *         if task.cancelled():
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_15_serving_task_crash_handler, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioServer__serving_task_crash_ha, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__569)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 1011, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_n_s_serving_task_crash_handler, __pyx_t_9) < 0) __PYX_ERR(9, 1011, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1022
 *             self._loop.create_task(self.shutdown(None))
 * 
 *     async def start(self):             # <<<<<<<<<<<<<<
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_17start, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioServer_start, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__101)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 1022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_n_s_start, __pyx_t_9) < 0) __PYX_ERR(9, 1022, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1036
 *         await server_started
 * 
 *     async def _start_shutting_down(self):             # <<<<<<<<<<<<<<
 *         """Prepares the server to shutting down.
 * 
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_20_start_shutting_down, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioServer__start_shutting_down, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 1036, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_n_s_start_shutting_down, __pyx_t_9) < 0) __PYX_ERR(9, 1036, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1053
 *             pass
 * 
 *     async def shutdown(self, grace):             # <<<<<<<<<<<<<<
 *         """Gracefully shutdown the Core server.
 * 
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_23shutdown, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioServer_shutdown, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__103)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 1053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_n_s_shutdown, __pyx_t_9) < 0) __PYX_ERR(9, 1053, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1093
 *                 self._status = AIO_SERVER_STATUS_STOPPED
 * 
 *     async def wait_for_termination(self, object timeout):             # <<<<<<<<<<<<<<
 *         if timeout is None:
 *             await self._shutdown_completed
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_26wait_for_termination, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_n_s_AioServer_wait_for_termination, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__104)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 1093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_n_s_wait_for_termination, __pyx_t_9) < 0) __PYX_ERR(9, 1093, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1126
 *         return self._thread_pool
 * 
 *     def is_running(self):             # <<<<<<<<<<<<<<
 *         return self._status == AIO_SERVER_STATUS_RUNNING
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_31is_running, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioServer_is_running, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__573)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 1126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_n_s_is_running, __pyx_t_9) < 0) __PYX_ERR(9, 1126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_33__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioServer___reduce_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__574)); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_n_s_reduce_cython, __pyx_t_9) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AioServer__set_state(self, __pyx_state)
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_35__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AioServer___setstate_cython, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__575)); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_n_s_setstate_cython, __pyx_t_9) < 0) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  PyType_Modified(__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);

  /* "grpc/_cython/cygrpc.pyx":88
 * 
 * 
 * _initialize()             # <<<<<<<<<<<<<<
 */
  __pyx_t_9 = __pyx_f_4grpc_7_cython_6cygrpc__initialize(); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_ChannelCredentials(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_189__pyx_unpickle_ChannelCredentials, 0, __pyx_n_s_pyx_unpickle_ChannelCredential, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__577)); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_ChannelCredential, __pyx_t_9) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_191__pyx_unpickle_InsecureChannelCredentials, 0, __pyx_n_s_pyx_unpickle_InsecureChannelCr, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__578)); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_InsecureChannelCr, __pyx_t_9) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle__Tag(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_193__pyx_unpickle__Tag, 0, __pyx_n_s_pyx_unpickle__Tag, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__579)); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle__Tag, __pyx_t_9) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_195__pyx_unpickle_CensusContext, 0, __pyx_n_s_pyx_unpickle_CensusContext, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__580)); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_CensusContext, __pyx_t_9) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_AioServer(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_197__pyx_unpickle_AioServer, 0, __pyx_n_s_pyx_unpickle_AioServer, NULL, __pyx_n_s_grpc__cython_cygrpc, __pyx_d, ((PyObject *)__pyx_codeobj__581)); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_AioServer, __pyx_t_9) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "grpc/_cython/cygrpc.pyx":1
 * # Copyright 2015 gRPC authors.             # <<<<<<<<<<<<<<
 * #
 * # Licensed under the Apache License, Version 2.0 (the "License");
 */
  __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_9) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  if (__pyx_m) {
    if (__pyx_d && stringtab_initialized) {
      __Pyx_AddTraceback("init grpc._cython.cygrpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    #if !CYTHON_USE_MODULE_STATE
    Py_CLEAR(__pyx_m);
    #else
    Py_DECREF(__pyx_m);
    if (pystate_addmodule_run) {
      PyObject *tp, *value, *tb;
      PyErr_Fetch(&tp, &value, &tb);
      PyState_RemoveModule(&__pyx_moduledef);
      PyErr_Restore(tp, value, tb);
    }
    #endif
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init grpc._cython.cygrpc");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  return (__pyx_m != NULL) ? 0 : -1;
  #elif PY_MAJOR_VERSION >= 3
  return __pyx_m;
  #else
  return;
  #endif
}
/* #### Code section: cleanup_globals ### */
/* #### Code section: cleanup_module ### */
/* #### Code section: main_method ### */
/* #### Code section: utility_code_pragmas ### */
#ifdef _MSC_VER
#pragma warning( push )
/* Warning 4127: conditional expression is constant
 * Cython uses constant conditional expressions to allow in inline functions to be optimized at
 * compile-time, so this warning is not useful
 */
#pragma warning( disable : 4127 )
#endif



/* #### Code section: utility_code_def ### */

/* --- Runtime support code --- */
/* Refnanny */
#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule(modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, "RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif

/* PyErrExceptionMatches */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
    int result;
    PyObject *exc_type;
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject *current_exception = tstate->current_exception;
    if (unlikely(!current_exception)) return 0;
    exc_type = (PyObject*) Py_TYPE(current_exception);
    if (exc_type == err) return 1;
#else
    exc_type = tstate->curexc_type;
    if (exc_type == err) return 1;
    if (unlikely(!exc_type)) return 0;
#endif
    #if CYTHON_AVOID_BORROWED_REFS
    Py_INCREF(exc_type);
    #endif
    if (unlikely(PyTuple_Check(err))) {
        result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
    } else {
        result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
    }
    #if CYTHON_AVOID_BORROWED_REFS
    Py_DECREF(exc_type);
    #endif
    return result;
}
#endif

/* PyErrFetchRestore */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject *tmp_value;
    assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
    if (value) {
        #if CYTHON_COMPILING_IN_CPYTHON
        if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
        #endif
            PyException_SetTraceback(value, tb);
    }
    tmp_value = tstate->current_exception;
    tstate->current_exception = value;
    Py_XDECREF(tmp_value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
#else
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#endif
}
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject* exc_value;
    exc_value = tstate->current_exception;
    tstate->current_exception = 0;
    *value = exc_value;
    *type = NULL;
    *tb = NULL;
    if (exc_value) {
        *type = (PyObject*) Py_TYPE(exc_value);
        Py_INCREF(*type);
        #if CYTHON_COMPILING_IN_CPYTHON
        *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
        Py_XINCREF(*tb);
        #else
        *tb = PyException_GetTraceback(exc_value);
        #endif
    }
#else
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#endif
}
#endif

/* PyObjectGetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro))
        return tp->tp_getattro(obj, attr_name);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_getattr))
        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
#endif
    return PyObject_GetAttr(obj, attr_name);
}
#endif

/* PyObjectGetAttrStrNoError */
#if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        __Pyx_PyErr_Clear();
}
#endif
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
    PyObject *result;
#if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
    (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
    return result;
#else
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
        return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
    }
#endif
    result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
    if (unlikely(!result)) {
        __Pyx_PyObject_GetAttrStr_ClearAttributeError();
    }
    return result;
#endif
}

/* GetBuiltinName */
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_b, name);
    if (unlikely(!result) && !PyErr_Occurred()) {
        PyErr_Format(PyExc_NameError,
#if PY_MAJOR_VERSION >= 3
            "name '%U' is not defined", name);
#else
            "name '%.200s' is not defined", PyString_AS_STRING(name));
#endif
    }
    return result;
}

/* TupleAndListFromArray */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
    PyObject *v;
    Py_ssize_t i;
    for (i = 0; i < length; i++) {
        v = dest[i] = src[i];
        Py_INCREF(v);
    }
}
static CYTHON_INLINE PyObject *
__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    if (n <= 0) {
        Py_INCREF(__pyx_empty_tuple);
        return __pyx_empty_tuple;
    }
    res = PyTuple_New(n);
    if (unlikely(res == NULL)) return NULL;
    __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n);
    return res;
}
static CYTHON_INLINE PyObject *
__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    if (n <= 0) {
        return PyList_New(0);
    }
    res = PyList_New(n);
    if (unlikely(res == NULL)) return NULL;
    __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n);
    return res;
}
#endif

/* BytesEquals */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    if (s1 == s2) {
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        const char *ps1, *ps2;
        Py_ssize_t length = PyBytes_GET_SIZE(s1);
        if (length != PyBytes_GET_SIZE(s2))
            return (equals == Py_NE);
        ps1 = PyBytes_AS_STRING(s1);
        ps2 = PyBytes_AS_STRING(s2);
        if (ps1[0] != ps2[0]) {
            return (equals == Py_NE);
        } else if (length == 1) {
            return (equals == Py_EQ);
        } else {
            int result;
#if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000)
            Py_hash_t hash1, hash2;
            hash1 = ((PyBytesObject*)s1)->ob_shash;
            hash2 = ((PyBytesObject*)s2)->ob_shash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                return (equals == Py_NE);
            }
#endif
            result = memcmp(ps1, ps2, (size_t)length);
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
        return (equals == Py_NE);
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
#endif
}

/* UnicodeEquals */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
    return PyObject_RichCompareBool(s1, s2, equals);
#else
#if PY_MAJOR_VERSION < 3
    PyObject* owned_ref = NULL;
#endif
    int s1_is_unicode, s2_is_unicode;
    if (s1 == s2) {
        goto return_eq;
    }
    s1_is_unicode = PyUnicode_CheckExact(s1);
    s2_is_unicode = PyUnicode_CheckExact(s2);
#if PY_MAJOR_VERSION < 3
    if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
        owned_ref = PyUnicode_FromObject(s2);
        if (unlikely(!owned_ref))
            return -1;
        s2 = owned_ref;
        s2_is_unicode = 1;
    } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
        owned_ref = PyUnicode_FromObject(s1);
        if (unlikely(!owned_ref))
            return -1;
        s1 = owned_ref;
        s1_is_unicode = 1;
    } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
        return __Pyx_PyBytes_Equals(s1, s2, equals);
    }
#endif
    if (s1_is_unicode & s2_is_unicode) {
        Py_ssize_t length;
        int kind;
        void *data1, *data2;
        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
            return -1;
        length = __Pyx_PyUnicode_GET_LENGTH(s1);
        if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
            goto return_ne;
        }
#if CYTHON_USE_UNICODE_INTERNALS
        {
            Py_hash_t hash1, hash2;
        #if CYTHON_PEP393_ENABLED
            hash1 = ((PyASCIIObject*)s1)->hash;
            hash2 = ((PyASCIIObject*)s2)->hash;
        #else
            hash1 = ((PyUnicodeObject*)s1)->hash;
            hash2 = ((PyUnicodeObject*)s2)->hash;
        #endif
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                goto return_ne;
            }
        }
#endif
        kind = __Pyx_PyUnicode_KIND(s1);
        if (kind != __Pyx_PyUnicode_KIND(s2)) {
            goto return_ne;
        }
        data1 = __Pyx_PyUnicode_DATA(s1);
        data2 = __Pyx_PyUnicode_DATA(s2);
        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
            goto return_ne;
        } else if (length == 1) {
            goto return_eq;
        } else {
            int result = memcmp(data1, data2, (size_t)(length * kind));
            #if PY_MAJOR_VERSION < 3
            Py_XDECREF(owned_ref);
            #endif
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & s2_is_unicode) {
        goto return_ne;
    } else if ((s2 == Py_None) & s1_is_unicode) {
        goto return_ne;
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        #if PY_MAJOR_VERSION < 3
        Py_XDECREF(owned_ref);
        #endif
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
return_eq:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_EQ);
return_ne:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_NE);
#endif
}

/* fastcall */
#if CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s)
{
    Py_ssize_t i, n = PyTuple_GET_SIZE(kwnames);
    for (i = 0; i < n; i++)
    {
        if (s == PyTuple_GET_ITEM(kwnames, i)) return kwvalues[i];
    }
    for (i = 0; i < n; i++)
    {
        int eq = __Pyx_PyUnicode_Equals(s, PyTuple_GET_ITEM(kwnames, i), Py_EQ);
        if (unlikely(eq != 0)) {
            if (unlikely(eq < 0)) return NULL;
            return kwvalues[i];
        }
    }
    return NULL;
}
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) {
    Py_ssize_t i, nkwargs = PyTuple_GET_SIZE(kwnames);
    PyObject *dict;
    dict = PyDict_New();
    if (unlikely(!dict))
        return NULL;
    for (i=0; i<nkwargs; i++) {
        PyObject *key = PyTuple_GET_ITEM(kwnames, i);
        if (unlikely(PyDict_SetItem(dict, key, kwvalues[i]) < 0))
            goto bad;
    }
    return dict;
bad:
    Py_DECREF(dict);
    return NULL;
}
#endif
#endif

/* RaiseDoubleKeywords */
static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        #if PY_MAJOR_VERSION >= 3
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
        #else
        "%s() got multiple values for keyword argument '%s'", func_name,
        PyString_AsString(kw_name));
        #endif
}

/* ParseKeywords */
static int __Pyx_ParseOptionalKeywords(
    PyObject *kwds,
    PyObject *const *kwvalues,
    PyObject **argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject *key = 0, *value = 0;
    Py_ssize_t pos = 0;
    PyObject*** name;
    PyObject*** first_kw_arg = argnames + num_pos_args;
    int kwds_is_tuple = CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds));
    while (1) {
        Py_XDECREF(key); key = NULL;
        Py_XDECREF(value); value = NULL;
        if (kwds_is_tuple) {
            Py_ssize_t size;
#if CYTHON_ASSUME_SAFE_MACROS
            size = PyTuple_GET_SIZE(kwds);
#else
            size = PyTuple_Size(kwds);
            if (size < 0) goto bad;
#endif
            if (pos >= size) break;
#if CYTHON_AVOID_BORROWED_REFS
            key = __Pyx_PySequence_ITEM(kwds, pos);
            if (!key) goto bad;
#elif CYTHON_ASSUME_SAFE_MACROS
            key = PyTuple_GET_ITEM(kwds, pos);
#else
            key = PyTuple_GetItem(kwds, pos);
            if (!key) goto bad;
#endif
            value = kwvalues[pos];
            pos++;
        }
        else
        {
            if (!PyDict_Next(kwds, &pos, &key, &value)) break;
#if CYTHON_AVOID_BORROWED_REFS
            Py_INCREF(key);
#endif
        }
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            values[name-argnames] = value;
#if CYTHON_AVOID_BORROWED_REFS
            Py_INCREF(value);
            Py_DECREF(key);
#endif
            key = NULL;
            value = NULL;
            continue;
        }
#if !CYTHON_AVOID_BORROWED_REFS
        Py_INCREF(key);
#endif
        Py_INCREF(value);
        name = first_kw_arg;
        #if PY_MAJOR_VERSION < 3
        if (likely(PyString_Check(key))) {
            while (*name) {
                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
                        && _PyString_Eq(**name, key)) {
                    values[name-argnames] = value;
#if CYTHON_AVOID_BORROWED_REFS
                    value = NULL;
#endif
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    if ((**argname == key) || (
                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
                             && _PyString_Eq(**argname, key))) {
                        goto arg_passed_twice;
                    }
                    argname++;
                }
            }
        } else
        #endif
        if (likely(PyUnicode_Check(key))) {
            while (*name) {
                int cmp = (
                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                    (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                #endif
                    PyUnicode_Compare(**name, key)
                );
                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                if (cmp == 0) {
                    values[name-argnames] = value;
#if CYTHON_AVOID_BORROWED_REFS
                    value = NULL;
#endif
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    int cmp = (**argname == key) ? 0 :
                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                        (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                    #endif
                        PyUnicode_Compare(**argname, key);
                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                    if (cmp == 0) goto arg_passed_twice;
                    argname++;
                }
            }
        } else
            goto invalid_keyword_type;
        if (kwds2) {
            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
        } else {
            goto invalid_keyword;
        }
    }
    Py_XDECREF(key);
    Py_XDECREF(value);
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
invalid_keyword:
    #if PY_MAJOR_VERSION < 3
    PyErr_Format(PyExc_TypeError,
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
    PyErr_Format(PyExc_TypeError,
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
bad:
    Py_XDECREF(key);
    Py_XDECREF(value);
    return -1;
}

/* RaiseArgTupleInvalid */
static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

/* ArgTypeTest */
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
{
    __Pyx_TypeName type_name;
    __Pyx_TypeName obj_type_name;
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    else if (exact) {
        #if PY_MAJOR_VERSION == 2
        if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
        #endif
    }
    else {
        if (likely(__Pyx_TypeCheck(obj, type))) return 1;
    }
    type_name = __Pyx_PyType_GetName(type);
    obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME
        ", got " __Pyx_FMT_TYPENAME ")", name, type_name, obj_type_name);
    __Pyx_DECREF_TypeName(type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return 0;
}

/* FixUpExtensionType */
#if CYTHON_USE_TYPE_SPECS
static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) {
#if PY_VERSION_HEX > 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    CYTHON_UNUSED_VAR(spec);
    CYTHON_UNUSED_VAR(type);
#else
    const PyType_Slot *slot = spec->slots;
    while (slot && slot->slot && slot->slot != Py_tp_members)
        slot++;
    if (slot && slot->slot == Py_tp_members) {
        int changed = 0;
#if !(PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON)
        const
#endif
            PyMemberDef *memb = (PyMemberDef*) slot->pfunc;
        while (memb && memb->name) {
            if (memb->name[0] == '_' && memb->name[1] == '_') {
#if PY_VERSION_HEX < 0x030900b1
                if (strcmp(memb->name, "__weaklistoffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_weaklistoffset = memb->offset;
                    changed = 1;
                }
                else if (strcmp(memb->name, "__dictoffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_dictoffset = memb->offset;
                    changed = 1;
                }
#if CYTHON_METH_FASTCALL
                else if (strcmp(memb->name, "__vectorcalloffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
#if PY_VERSION_HEX >= 0x030800b4
                    type->tp_vectorcall_offset = memb->offset;
#else
                    type->tp_print = (printfunc) memb->offset;
#endif
                    changed = 1;
                }
#endif
#else
                if ((0));
#endif
#if PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON
                else if (strcmp(memb->name, "__module__") == 0) {
                    PyObject *descr;
                    assert(memb->type == T_OBJECT);
                    assert(memb->flags == 0 || memb->flags == READONLY);
                    descr = PyDescr_NewMember(type, memb);
                    if (unlikely(!descr))
                        return -1;
                    if (unlikely(PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr) < 0)) {
                        Py_DECREF(descr);
                        return -1;
                    }
                    Py_DECREF(descr);
                    changed = 1;
                }
#endif
            }
            memb++;
        }
        if (changed)
            PyType_Modified(type);
    }
#endif
    return 0;
}
#endif

/* FetchSharedCythonModule */
static PyObject *__Pyx_FetchSharedCythonABIModule(void) {
    return __Pyx_PyImport_AddModuleRef((char*) __PYX_ABI_MODULE_NAME);
}

/* FetchCommonType */
static int __Pyx_VerifyCachedType(PyObject *cached_type,
                               const char *name,
                               Py_ssize_t basicsize,
                               Py_ssize_t expected_basicsize) {
    if (!PyType_Check(cached_type)) {
        PyErr_Format(PyExc_TypeError,
            "Shared Cython type %.200s is not a type object", name);
        return -1;
    }
    if (basicsize != expected_basicsize) {
        PyErr_Format(PyExc_TypeError,
            "Shared Cython type %.200s has the wrong size, try recompiling",
            name);
        return -1;
    }
    return 0;
}
#if !CYTHON_USE_TYPE_SPECS
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
    PyObject* abi_module;
    const char* object_name;
    PyTypeObject *cached_type = NULL;
    abi_module = __Pyx_FetchSharedCythonABIModule();
    if (!abi_module) return NULL;
    object_name = strrchr(type->tp_name, '.');
    object_name = object_name ? object_name+1 : type->tp_name;
    cached_type = (PyTypeObject*) PyObject_GetAttrString(abi_module, object_name);
    if (cached_type) {
        if (__Pyx_VerifyCachedType(
              (PyObject *)cached_type,
              object_name,
              cached_type->tp_basicsize,
              type->tp_basicsize) < 0) {
            goto bad;
        }
        goto done;
    }
    if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
    PyErr_Clear();
    if (PyType_Ready(type) < 0) goto bad;
    if (PyObject_SetAttrString(abi_module, object_name, (PyObject *)type) < 0)
        goto bad;
    Py_INCREF(type);
    cached_type = type;
done:
    Py_DECREF(abi_module);
    return cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}
#else
static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases) {
    PyObject *abi_module, *cached_type = NULL;
    const char* object_name = strrchr(spec->name, '.');
    object_name = object_name ? object_name+1 : spec->name;
    abi_module = __Pyx_FetchSharedCythonABIModule();
    if (!abi_module) return NULL;
    cached_type = PyObject_GetAttrString(abi_module, object_name);
    if (cached_type) {
        Py_ssize_t basicsize;
#if CYTHON_COMPILING_IN_LIMITED_API
        PyObject *py_basicsize;
        py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
        if (unlikely(!py_basicsize)) goto bad;
        basicsize = PyLong_AsSsize_t(py_basicsize);
        Py_DECREF(py_basicsize);
        py_basicsize = 0;
        if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
#else
        basicsize = likely(PyType_Check(cached_type)) ? ((PyTypeObject*) cached_type)->tp_basicsize : -1;
#endif
        if (__Pyx_VerifyCachedType(
              cached_type,
              object_name,
              basicsize,
              spec->basicsize) < 0) {
            goto bad;
        }
        goto done;
    }
    if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
    PyErr_Clear();
    CYTHON_UNUSED_VAR(module);
    cached_type = __Pyx_PyType_FromModuleAndSpec(abi_module, spec, bases);
    if (unlikely(!cached_type)) goto bad;
    if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad;
    if (PyObject_SetAttrString(abi_module, object_name, cached_type) < 0) goto bad;
done:
    Py_DECREF(abi_module);
    assert(cached_type == NULL || PyType_Check(cached_type));
    return (PyTypeObject *) cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}
#endif

/* PyVectorcallFastCallDict */
#if CYTHON_METH_FASTCALL
static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
{
    PyObject *res = NULL;
    PyObject *kwnames;
    PyObject **newargs;
    PyObject **kwvalues;
    Py_ssize_t i, pos;
    size_t j;
    PyObject *key, *value;
    unsigned long keys_are_strings;
    Py_ssize_t nkw = PyDict_GET_SIZE(kw);
    newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0]));
    if (unlikely(newargs == NULL)) {
        PyErr_NoMemory();
        return NULL;
    }
    for (j = 0; j < nargs; j++) newargs[j] = args[j];
    kwnames = PyTuple_New(nkw);
    if (unlikely(kwnames == NULL)) {
        PyMem_Free(newargs);
        return NULL;
    }
    kwvalues = newargs + nargs;
    pos = i = 0;
    keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
    while (PyDict_Next(kw, &pos, &key, &value)) {
        keys_are_strings &= Py_TYPE(key)->tp_flags;
        Py_INCREF(key);
        Py_INCREF(value);
        PyTuple_SET_ITEM(kwnames, i, key);
        kwvalues[i] = value;
        i++;
    }
    if (unlikely(!keys_are_strings)) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        goto cleanup;
    }
    res = vc(func, newargs, nargs, kwnames);
cleanup:
    Py_DECREF(kwnames);
    for (i = 0; i < nkw; i++)
        Py_DECREF(kwvalues[i]);
    PyMem_Free(newargs);
    return res;
}
static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
{
    if (likely(kw == NULL) || PyDict_GET_SIZE(kw) == 0) {
        return vc(func, args, nargs, NULL);
    }
    return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw);
}
#endif

/* CythonFunctionShared */
#if CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc) {
    if (__Pyx_CyFunction_Check(func)) {
        return PyCFunction_GetFunction(((__pyx_CyFunctionObject*)func)->func) == (PyCFunction) cfunc;
    } else if (PyCFunction_Check(func)) {
        return PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
    }
    return 0;
}
#else
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc) {
    return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
}
#endif
static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) {
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_Py_XDECREF_SET(
        __Pyx_CyFunction_GetClassObj(f),
            ((classobj) ? __Pyx_NewRef(classobj) : NULL));
#else
    __Pyx_Py_XDECREF_SET(
        ((PyCMethodObject *) (f))->mm_class,
        (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL));
#endif
}
static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure)
{
    CYTHON_UNUSED_VAR(closure);
    if (unlikely(op->func_doc == NULL)) {
#if CYTHON_COMPILING_IN_LIMITED_API
        op->func_doc = PyObject_GetAttrString(op->func, "__doc__");
        if (unlikely(!op->func_doc)) return NULL;
#else
        if (((PyCFunctionObject*)op)->m_ml->ml_doc) {
#if PY_MAJOR_VERSION >= 3
            op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
#else
            op->func_doc = PyString_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
#endif
            if (unlikely(op->func_doc == NULL))
                return NULL;
        } else {
            Py_INCREF(Py_None);
            return Py_None;
        }
#endif
    }
    Py_INCREF(op->func_doc);
    return op->func_doc;
}
static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (value == NULL) {
        value = Py_None;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_doc, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(op->func_name == NULL)) {
#if CYTHON_COMPILING_IN_LIMITED_API
        op->func_name = PyObject_GetAttrString(op->func, "__name__");
#elif PY_MAJOR_VERSION >= 3
        op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
#else
        op->func_name = PyString_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
#endif
        if (unlikely(op->func_name == NULL))
            return NULL;
    }
    Py_INCREF(op->func_name);
    return op->func_name;
}
static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_name, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(op->func_qualname);
    return op->func_qualname;
}
static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_qualname, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(op->func_dict == NULL)) {
        op->func_dict = PyDict_New();
        if (unlikely(op->func_dict == NULL))
            return NULL;
    }
    Py_INCREF(op->func_dict);
    return op->func_dict;
}
static int
__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL)) {
        PyErr_SetString(PyExc_TypeError,
               "function's dictionary may not be deleted");
        return -1;
    }
    if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
               "setting function's dictionary to a non-dict");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_dict, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(op->func_globals);
    return op->func_globals;
}
static PyObject *
__Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(op);
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(Py_None);
    return Py_None;
}
static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context)
{
    PyObject* result = (op->func_code) ? op->func_code : Py_None;
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
    int result = 0;
    PyObject *res = op->defaults_getter((PyObject *) op);
    if (unlikely(!res))
        return -1;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
    Py_INCREF(op->defaults_tuple);
    op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
    Py_INCREF(op->defaults_kwdict);
    #else
    op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0);
    if (unlikely(!op->defaults_tuple)) result = -1;
    else {
        op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1);
        if (unlikely(!op->defaults_kwdict)) result = -1;
    }
    #endif
    Py_DECREF(res);
    return result;
}
static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value) {
        value = Py_None;
    } else if (unlikely(value != Py_None && !PyTuple_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__defaults__ must be set to a tuple object");
        return -1;
    }
    PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not "
                 "currently affect the values used in function calls", 1);
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result = op->defaults_tuple;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
            result = op->defaults_tuple;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value) {
        value = Py_None;
    } else if (unlikely(value != Py_None && !PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__kwdefaults__ must be set to a dict object");
        return -1;
    }
    PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not "
                 "currently affect the values used in function calls", 1);
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result = op->defaults_kwdict;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
            result = op->defaults_kwdict;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value || value == Py_None) {
        value = NULL;
    } else if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__annotations__ must be set to a dict object");
        return -1;
    }
    Py_XINCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_annotations, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result = op->func_annotations;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!result)) {
        result = PyDict_New();
        if (unlikely(!result)) return NULL;
        op->func_annotations = result;
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) {
    int is_coroutine;
    CYTHON_UNUSED_VAR(context);
    if (op->func_is_coroutine) {
        return __Pyx_NewRef(op->func_is_coroutine);
    }
    is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE;
#if PY_VERSION_HEX >= 0x03050000
    if (is_coroutine) {
        PyObject *module, *fromlist, *marker = __pyx_n_s_is_coroutine;
        fromlist = PyList_New(1);
        if (unlikely(!fromlist)) return NULL;
        Py_INCREF(marker);
#if CYTHON_ASSUME_SAFE_MACROS
        PyList_SET_ITEM(fromlist, 0, marker);
#else
        if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
            Py_DECREF(marker);
            Py_DECREF(fromlist);
            return NULL;
        }
#endif
        module = PyImport_ImportModuleLevelObject(__pyx_n_s_asyncio_coroutines, NULL, NULL, fromlist, 0);
        Py_DECREF(fromlist);
        if (unlikely(!module)) goto ignore;
        op->func_is_coroutine = __Pyx_PyObject_GetAttrStr(module, marker);
        Py_DECREF(module);
        if (likely(op->func_is_coroutine)) {
            return __Pyx_NewRef(op->func_is_coroutine);
        }
ignore:
        PyErr_Clear();
    }
#endif
    op->func_is_coroutine = __Pyx_PyBool_FromLong(is_coroutine);
    return __Pyx_NewRef(op->func_is_coroutine);
}
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *
__Pyx_CyFunction_get_module(__pyx_CyFunctionObject *op, void *context) {
    CYTHON_UNUSED_VAR(context);
    return PyObject_GetAttrString(op->func, "__module__");
}
static int
__Pyx_CyFunction_set_module(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    return PyObject_SetAttrString(op->func, "__module__", value);
}
#endif
static PyGetSetDef __pyx_CyFunction_getsets[] = {
    {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
    {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
    {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
    {(char *) "_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0},
#if CYTHON_COMPILING_IN_LIMITED_API
    {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0},
#endif
    {0, 0, 0, 0, 0}
};
static PyMemberDef __pyx_CyFunction_members[] = {
#if !CYTHON_COMPILING_IN_LIMITED_API
    {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0},
#endif
#if CYTHON_USE_TYPE_SPECS
    {(char *) "__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0},
#if CYTHON_METH_FASTCALL
#if CYTHON_BACKPORT_VECTORCALL
    {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0},
#else
#if !CYTHON_COMPILING_IN_LIMITED_API
    {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0},
#endif
#endif
#endif
#if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
    {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0},
#else
    {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0},
#endif
#endif
    {0, 0, 0,  0, 0}
};
static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args)
{
    CYTHON_UNUSED_VAR(args);
#if PY_MAJOR_VERSION >= 3
    Py_INCREF(m->func_qualname);
    return m->func_qualname;
#else
    return PyString_FromString(((PyCFunctionObject*)m)->m_ml->ml_name);
#endif
}
static PyMethodDef __pyx_CyFunction_methods[] = {
    {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
    {0, 0, 0, 0}
};
#if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
#else
#define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist)
#endif
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
                                       PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
#if !CYTHON_COMPILING_IN_LIMITED_API
    PyCFunctionObject *cf = (PyCFunctionObject*) op;
#endif
    if (unlikely(op == NULL))
        return NULL;
#if CYTHON_COMPILING_IN_LIMITED_API
    op->func = PyCFunction_NewEx(ml, (PyObject*)op, module);
    if (unlikely(!op->func)) return NULL;
#endif
    op->flags = flags;
    __Pyx_CyFunction_weakreflist(op) = NULL;
#if !CYTHON_COMPILING_IN_LIMITED_API
    cf->m_ml = ml;
    cf->m_self = (PyObject *) op;
#endif
    Py_XINCREF(closure);
    op->func_closure = closure;
#if !CYTHON_COMPILING_IN_LIMITED_API
    Py_XINCREF(module);
    cf->m_module = module;
#endif
    op->func_dict = NULL;
    op->func_name = NULL;
    Py_INCREF(qualname);
    op->func_qualname = qualname;
    op->func_doc = NULL;
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    op->func_classobj = NULL;
#else
    ((PyCMethodObject*)op)->mm_class = NULL;
#endif
    op->func_globals = globals;
    Py_INCREF(op->func_globals);
    Py_XINCREF(code);
    op->func_code = code;
    op->defaults_pyobjects = 0;
    op->defaults_size = 0;
    op->defaults = NULL;
    op->defaults_tuple = NULL;
    op->defaults_kwdict = NULL;
    op->defaults_getter = NULL;
    op->func_annotations = NULL;
    op->func_is_coroutine = NULL;
#if CYTHON_METH_FASTCALL
    switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) {
    case METH_NOARGS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS;
        break;
    case METH_O:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O;
        break;
    case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD;
        break;
    case METH_FASTCALL | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS;
        break;
    case METH_VARARGS | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = NULL;
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
        Py_DECREF(op);
        return NULL;
    }
#endif
    return (PyObject *) op;
}
static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
{
    Py_CLEAR(m->func_closure);
#if CYTHON_COMPILING_IN_LIMITED_API
    Py_CLEAR(m->func);
#else
    Py_CLEAR(((PyCFunctionObject*)m)->m_module);
#endif
    Py_CLEAR(m->func_dict);
    Py_CLEAR(m->func_name);
    Py_CLEAR(m->func_qualname);
    Py_CLEAR(m->func_doc);
    Py_CLEAR(m->func_globals);
    Py_CLEAR(m->func_code);
#if !CYTHON_COMPILING_IN_LIMITED_API
#if PY_VERSION_HEX < 0x030900B1
    Py_CLEAR(__Pyx_CyFunction_GetClassObj(m));
#else
    {
        PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class;
        ((PyCMethodObject *) (m))->mm_class = NULL;
        Py_XDECREF(cls);
    }
#endif
#endif
    Py_CLEAR(m->defaults_tuple);
    Py_CLEAR(m->defaults_kwdict);
    Py_CLEAR(m->func_annotations);
    Py_CLEAR(m->func_is_coroutine);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_XDECREF(pydefaults[i]);
        PyObject_Free(m->defaults);
        m->defaults = NULL;
    }
    return 0;
}
static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    if (__Pyx_CyFunction_weakreflist(m) != NULL)
        PyObject_ClearWeakRefs((PyObject *) m);
    __Pyx_CyFunction_clear(m);
    __Pyx_PyHeapTypeObject_GC_Del(m);
}
static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    PyObject_GC_UnTrack(m);
    __Pyx__CyFunction_dealloc(m);
}
static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
{
    Py_VISIT(m->func_closure);
#if CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(m->func);
#else
    Py_VISIT(((PyCFunctionObject*)m)->m_module);
#endif
    Py_VISIT(m->func_dict);
    Py_VISIT(m->func_name);
    Py_VISIT(m->func_qualname);
    Py_VISIT(m->func_doc);
    Py_VISIT(m->func_globals);
    Py_VISIT(m->func_code);
#if !CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(__Pyx_CyFunction_GetClassObj(m));
#endif
    Py_VISIT(m->defaults_tuple);
    Py_VISIT(m->defaults_kwdict);
    Py_VISIT(m->func_is_coroutine);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_VISIT(pydefaults[i]);
    }
    return 0;
}
static PyObject*
__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
{
#if PY_MAJOR_VERSION >= 3
    return PyUnicode_FromFormat("<cyfunction %U at %p>",
                                op->func_qualname, (void *)op);
#else
    return PyString_FromFormat("<cyfunction %s at %p>",
                               PyString_AsString(op->func_qualname), (void *)op);
#endif
}
static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *f = ((__pyx_CyFunctionObject*)func)->func;
    PyObject *py_name = NULL;
    PyCFunction meth;
    int flags;
    meth = PyCFunction_GetFunction(f);
    if (unlikely(!meth)) return NULL;
    flags = PyCFunction_GetFlags(f);
    if (unlikely(flags < 0)) return NULL;
#else
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = f->m_ml->ml_meth;
    int flags = f->m_ml->ml_flags;
#endif
    Py_ssize_t size;
    switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
    case METH_VARARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0))
            return (*meth)(self, arg);
        break;
    case METH_VARARGS | METH_KEYWORDS:
        return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw);
    case METH_NOARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
#if CYTHON_ASSUME_SAFE_MACROS
            size = PyTuple_GET_SIZE(arg);
#else
            size = PyTuple_Size(arg);
            if (unlikely(size < 0)) return NULL;
#endif
            if (likely(size == 0))
                return (*meth)(self, NULL);
#if CYTHON_COMPILING_IN_LIMITED_API
            py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
            if (!py_name) return NULL;
            PyErr_Format(PyExc_TypeError,
                "%.200S() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
                py_name, size);
            Py_DECREF(py_name);
#else
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
#endif
            return NULL;
        }
        break;
    case METH_O:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
#if CYTHON_ASSUME_SAFE_MACROS
            size = PyTuple_GET_SIZE(arg);
#else
            size = PyTuple_Size(arg);
            if (unlikely(size < 0)) return NULL;
#endif
            if (likely(size == 1)) {
                PyObject *result, *arg0;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                arg0 = PyTuple_GET_ITEM(arg, 0);
                #else
                arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
                #endif
                result = (*meth)(self, arg0);
                #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
                Py_DECREF(arg0);
                #endif
                return result;
            }
#if CYTHON_COMPILING_IN_LIMITED_API
            py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
            if (!py_name) return NULL;
            PyErr_Format(PyExc_TypeError,
                "%.200S() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
                py_name, size);
            Py_DECREF(py_name);
#else
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
#endif
            return NULL;
        }
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
        return NULL;
    }
#if CYTHON_COMPILING_IN_LIMITED_API
    py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
    if (!py_name) return NULL;
    PyErr_Format(PyExc_TypeError, "%.200S() takes no keyword arguments",
                 py_name);
    Py_DECREF(py_name);
#else
    PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
                 f->m_ml->ml_name);
#endif
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *self, *result;
#if CYTHON_COMPILING_IN_LIMITED_API
    self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)func)->func);
    if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
    self = ((PyCFunctionObject*)func)->m_self;
#endif
    result = __Pyx_CyFunction_CallMethod(func, self, arg, kw);
    return result;
}
static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
    PyObject *result;
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
#if CYTHON_METH_FASTCALL
     __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc);
    if (vc) {
#if CYTHON_ASSUME_SAFE_MACROS
        return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw);
#else
        (void) &__Pyx_PyVectorcall_FastCallDict;
        return PyVectorcall_Call(func, args, kw);
#endif
    }
#endif
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        Py_ssize_t argc;
        PyObject *new_args;
        PyObject *self;
#if CYTHON_ASSUME_SAFE_MACROS
        argc = PyTuple_GET_SIZE(args);
#else
        argc = PyTuple_Size(args);
        if (unlikely(!argc) < 0) return NULL;
#endif
        new_args = PyTuple_GetSlice(args, 1, argc);
        if (unlikely(!new_args))
            return NULL;
        self = PyTuple_GetItem(args, 0);
        if (unlikely(!self)) {
            Py_DECREF(new_args);
#if PY_MAJOR_VERSION > 2
            PyErr_Format(PyExc_TypeError,
                         "unbound method %.200S() needs an argument",
                         cyfunc->func_qualname);
#else
            PyErr_SetString(PyExc_TypeError,
                            "unbound method needs an argument");
#endif
            return NULL;
        }
        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
        Py_DECREF(new_args);
    } else {
        result = __Pyx_CyFunction_Call(func, args, kw);
    }
    return result;
}
#if CYTHON_METH_FASTCALL
static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames)
{
    int ret = 0;
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        if (unlikely(nargs < 1)) {
            PyErr_Format(PyExc_TypeError, "%.200s() needs an argument",
                         ((PyCFunctionObject*)cyfunc)->m_ml->ml_name);
            return -1;
        }
        ret = 1;
    }
    if (unlikely(kwnames) && unlikely(PyTuple_GET_SIZE(kwnames))) {
        PyErr_Format(PyExc_TypeError,
                     "%.200s() takes no keyword arguments", ((PyCFunctionObject*)cyfunc)->m_ml->ml_name);
        return -1;
    }
    return ret;
}
static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
        self = ((PyCFunctionObject*)cyfunc)->m_self;
        break;
    default:
        return NULL;
    }
    if (unlikely(nargs != 0)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
            def->ml_name, nargs);
        return NULL;
    }
    return def->ml_meth(self, NULL);
}
static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
        self = ((PyCFunctionObject*)cyfunc)->m_self;
        break;
    default:
        return NULL;
    }
    if (unlikely(nargs != 1)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
            def->ml_name, nargs);
        return NULL;
    }
    return def->ml_meth(self, args[0]);
}
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
        self = ((PyCFunctionObject*)cyfunc)->m_self;
        break;
    default:
        return NULL;
    }
    return ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))def->ml_meth)(self, args, nargs, kwnames);
}
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
    PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc);
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
        self = ((PyCFunctionObject*)cyfunc)->m_self;
        break;
    default:
        return NULL;
    }
    return ((__Pyx_PyCMethod)(void(*)(void))def->ml_meth)(self, cls, args, (size_t)nargs, kwnames);
}
#endif
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_CyFunctionType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc},
    {Py_tp_repr, (void *)__Pyx_CyFunction_repr},
    {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod},
    {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse},
    {Py_tp_clear, (void *)__Pyx_CyFunction_clear},
    {Py_tp_methods, (void *)__pyx_CyFunction_methods},
    {Py_tp_members, (void *)__pyx_CyFunction_members},
    {Py_tp_getset, (void *)__pyx_CyFunction_getsets},
    {Py_tp_descr_get, (void *)__Pyx_PyMethod_New},
    {0, 0},
};
static PyType_Spec __pyx_CyFunctionType_spec = {
    __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
    Py_TPFLAGS_METHOD_DESCRIPTOR |
#endif
#if (defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL)
    _Py_TPFLAGS_HAVE_VECTORCALL |
#endif
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
    __pyx_CyFunctionType_slots
};
#else
static PyTypeObject __pyx_CyFunctionType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
    (destructor) __Pyx_CyFunction_dealloc,
#if !CYTHON_METH_FASTCALL
    0,
#elif CYTHON_BACKPORT_VECTORCALL
    (printfunc)offsetof(__pyx_CyFunctionObject, func_vectorcall),
#else
    offsetof(PyCFunctionObject, vectorcall),
#endif
    0,
    0,
#if PY_MAJOR_VERSION < 3
    0,
#else
    0,
#endif
    (reprfunc) __Pyx_CyFunction_repr,
    0,
    0,
    0,
    0,
    __Pyx_CyFunction_CallAsMethod,
    0,
    0,
    0,
    0,
#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
    Py_TPFLAGS_METHOD_DESCRIPTOR |
#endif
#if defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL
    _Py_TPFLAGS_HAVE_VECTORCALL |
#endif
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
    0,
    (traverseproc) __Pyx_CyFunction_traverse,
    (inquiry) __Pyx_CyFunction_clear,
    0,
#if PY_VERSION_HEX < 0x030500A0
    offsetof(__pyx_CyFunctionObject, func_weakreflist),
#else
    offsetof(PyCFunctionObject, m_weakreflist),
#endif
    0,
    0,
    __pyx_CyFunction_methods,
    __pyx_CyFunction_members,
    __pyx_CyFunction_getsets,
    0,
    0,
    __Pyx_PyMethod_New,
    0,
    offsetof(__pyx_CyFunctionObject, func_dict),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
    0,
#endif
#if __PYX_NEED_TP_PRINT_SLOT
    0,
#endif
#if PY_VERSION_HEX >= 0x030C0000
    0,
#endif
#if PY_VERSION_HEX >= 0x030d00A4
    0,
#endif
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
    0,
#endif
};
#endif
static int __pyx_CyFunction_init(PyObject *module) {
#if CYTHON_USE_TYPE_SPECS
    __pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CyFunctionType_spec, NULL);
#else
    CYTHON_UNUSED_VAR(module);
    __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
#endif
    if (unlikely(__pyx_CyFunctionType == NULL)) {
        return -1;
    }
    return 0;
}
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults = PyObject_Malloc(size);
    if (unlikely(!m->defaults))
        return PyErr_NoMemory();
    memset(m->defaults, 0, size);
    m->defaults_pyobjects = pyobjects;
    m->defaults_size = size;
    return m->defaults;
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_tuple = tuple;
    Py_INCREF(tuple);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_kwdict = dict;
    Py_INCREF(dict);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->func_annotations = dict;
    Py_INCREF(dict);
}

/* CythonFunction */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
                                      PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    PyObject *op = __Pyx_CyFunction_Init(
        PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType),
        ml, flags, qualname, closure, module, globals, code
    );
    if (likely(op)) {
        PyObject_GC_Track(op);
    }
    return op;
}

/* RaiseUnexpectedTypeError */
static int
__Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj)
{
    __Pyx_TypeName obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError, "Expected %s, got " __Pyx_FMT_TYPENAME,
                 expected, obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return 0;
}

/* PyFunctionFastCall */
#if CYTHON_FAST_PYCALL && !CYTHON_VECTORCALL
static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
                                               PyObject *globals) {
    PyFrameObject *f;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject **fastlocals;
    Py_ssize_t i;
    PyObject *result;
    assert(globals != NULL);
    /* XXX Perhaps we should create a specialized
       PyFrame_New() that doesn't take locals, but does
       take builtins without sanity checking them.
       */
    assert(tstate != NULL);
    f = PyFrame_New(tstate, co, globals, NULL);
    if (f == NULL) {
        return NULL;
    }
    fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
    for (i = 0; i < na; i++) {
        Py_INCREF(*args);
        fastlocals[i] = *args++;
    }
    result = PyEval_EvalFrameEx(f,0);
    ++tstate->recursion_depth;
    Py_DECREF(f);
    --tstate->recursion_depth;
    return result;
}
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
    PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
    PyObject *globals = PyFunction_GET_GLOBALS(func);
    PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
    PyObject *closure;
#if PY_MAJOR_VERSION >= 3
    PyObject *kwdefs;
#endif
    PyObject *kwtuple, **k;
    PyObject **d;
    Py_ssize_t nd;
    Py_ssize_t nk;
    PyObject *result;
    assert(kwargs == NULL || PyDict_Check(kwargs));
    nk = kwargs ? PyDict_Size(kwargs) : 0;
    #if PY_MAJOR_VERSION < 3
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) {
        return NULL;
    }
    #else
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object"))) {
        return NULL;
    }
    #endif
    if (
#if PY_MAJOR_VERSION >= 3
            co->co_kwonlyargcount == 0 &&
#endif
            likely(kwargs == NULL || nk == 0) &&
            co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
        if (argdefs == NULL && co->co_argcount == nargs) {
            result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
            goto done;
        }
        else if (nargs == 0 && argdefs != NULL
                 && co->co_argcount == Py_SIZE(argdefs)) {
            /* function called with no arguments, but all parameters have
               a default value: use default values as arguments .*/
            args = &PyTuple_GET_ITEM(argdefs, 0);
            result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
            goto done;
        }
    }
    if (kwargs != NULL) {
        Py_ssize_t pos, i;
        kwtuple = PyTuple_New(2 * nk);
        if (kwtuple == NULL) {
            result = NULL;
            goto done;
        }
        k = &PyTuple_GET_ITEM(kwtuple, 0);
        pos = i = 0;
        while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
            Py_INCREF(k[i]);
            Py_INCREF(k[i+1]);
            i += 2;
        }
        nk = i / 2;
    }
    else {
        kwtuple = NULL;
        k = NULL;
    }
    closure = PyFunction_GET_CLOSURE(func);
#if PY_MAJOR_VERSION >= 3
    kwdefs = PyFunction_GET_KW_DEFAULTS(func);
#endif
    if (argdefs != NULL) {
        d = &PyTuple_GET_ITEM(argdefs, 0);
        nd = Py_SIZE(argdefs);
    }
    else {
        d = NULL;
        nd = 0;
    }
#if PY_MAJOR_VERSION >= 3
    result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, kwdefs, closure);
#else
    result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, closure);
#endif
    Py_XDECREF(kwtuple);
done:
    Py_LeaveRecursiveCall();
    return result;
}
#endif

/* PyObjectCall */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = Py_TYPE(func)->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    #if PY_MAJOR_VERSION < 3
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    #else
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
        return NULL;
    #endif
    result = (*call)(func, arg, kw);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallMethO */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
    PyObject *self, *result;
    PyCFunction cfunc;
    cfunc = __Pyx_CyOrPyCFunction_GET_FUNCTION(func);
    self = __Pyx_CyOrPyCFunction_GET_SELF(func);
    #if PY_MAJOR_VERSION < 3
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    #else
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
        return NULL;
    #endif
    result = cfunc(self, arg);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectFastCall */
#if PY_VERSION_HEX < 0x03090000 || CYTHON_COMPILING_IN_LIMITED_API
static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs) {
    PyObject *argstuple;
    PyObject *result = 0;
    size_t i;
    argstuple = PyTuple_New((Py_ssize_t)nargs);
    if (unlikely(!argstuple)) return NULL;
    for (i = 0; i < nargs; i++) {
        Py_INCREF(args[i]);
        if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) < 0) goto bad;
    }
    result = __Pyx_PyObject_Call(func, argstuple, kwargs);
  bad:
    Py_DECREF(argstuple);
    return result;
}
#endif
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t _nargs, PyObject *kwargs) {
    Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs);
#if CYTHON_COMPILING_IN_CPYTHON
    if (nargs == 0 && kwargs == NULL) {
        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS))
            return __Pyx_PyObject_CallMethO(func, NULL);
    }
    else if (nargs == 1 && kwargs == NULL) {
        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O))
            return __Pyx_PyObject_CallMethO(func, args[0]);
    }
#endif
    #if PY_VERSION_HEX < 0x030800B1
    #if CYTHON_FAST_PYCCALL
    if (PyCFunction_Check(func)) {
        if (kwargs) {
            return _PyCFunction_FastCallDict(func, args, nargs, kwargs);
        } else {
            return _PyCFunction_FastCallKeywords(func, args, nargs, NULL);
        }
    }
    #if PY_VERSION_HEX >= 0x030700A1
    if (!kwargs && __Pyx_IS_TYPE(func, &PyMethodDescr_Type)) {
        return _PyMethodDescr_FastCallKeywords(func, args, nargs, NULL);
    }
    #endif
    #endif
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs);
    }
    #endif
    #endif
    if (kwargs == NULL) {
        #if CYTHON_VECTORCALL
        #if PY_VERSION_HEX < 0x03090000
        vectorcallfunc f = _PyVectorcall_Function(func);
        #else
        vectorcallfunc f = PyVectorcall_Function(func);
        #endif
        if (f) {
            return f(func, args, (size_t)nargs, NULL);
        }
        #elif defined(__Pyx_CyFunction_USED) && CYTHON_BACKPORT_VECTORCALL
        if (__Pyx_CyFunction_CheckExact(func)) {
            __pyx_vectorcallfunc f = __Pyx_CyFunction_func_vectorcall(func);
            if (f) return f(func, args, (size_t)nargs, NULL);
        }
        #endif
    }
    if (nargs == 0) {
        return __Pyx_PyObject_Call(func, __pyx_empty_tuple, kwargs);
    }
    #if PY_VERSION_HEX >= 0x03090000 && !CYTHON_COMPILING_IN_LIMITED_API
    return PyObject_VectorcallDict(func, args, (size_t)nargs, kwargs);
    #else
    return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs);
    #endif
}

/* PyObjectCallOneArg */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *args[2] = {NULL, arg};
    return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* RaiseException */
#if PY_MAJOR_VERSION < 3
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    __Pyx_PyThreadState_declare
    CYTHON_UNUSED_VAR(cause);
    Py_XINCREF(type);
    if (!value || value == Py_None)
        value = NULL;
    else
        Py_INCREF(value);
    if (!tb || tb == Py_None)
        tb = NULL;
    else {
        Py_INCREF(tb);
        if (!PyTraceBack_Check(tb)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: arg 3 must be a traceback or None");
            goto raise_error;
        }
    }
    if (PyType_Check(type)) {
#if CYTHON_COMPILING_IN_PYPY
        if (!value) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
#endif
        PyErr_NormalizeException(&type, &value, &tb);
    } else {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto raise_error;
        }
        value = type;
        type = (PyObject*) Py_TYPE(type);
        Py_INCREF(type);
        if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: exception class must be a subclass of BaseException");
            goto raise_error;
        }
    }
    __Pyx_PyThreadState_assign
    __Pyx_ErrRestore(type, value, tb);
    return;
raise_error:
    Py_XDECREF(value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
    return;
}
#else
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    PyObject* owned_instance = NULL;
    if (tb == Py_None) {
        tb = 0;
    } else if (tb && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto bad;
    }
    if (value == Py_None)
        value = 0;
    if (PyExceptionInstance_Check(type)) {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto bad;
        }
        value = type;
        type = (PyObject*) Py_TYPE(value);
    } else if (PyExceptionClass_Check(type)) {
        PyObject *instance_class = NULL;
        if (value && PyExceptionInstance_Check(value)) {
            instance_class = (PyObject*) Py_TYPE(value);
            if (instance_class != type) {
                int is_subclass = PyObject_IsSubclass(instance_class, type);
                if (!is_subclass) {
                    instance_class = NULL;
                } else if (unlikely(is_subclass == -1)) {
                    goto bad;
                } else {
                    type = instance_class;
                }
            }
        }
        if (!instance_class) {
            PyObject *args;
            if (!value)
                args = PyTuple_New(0);
            else if (PyTuple_Check(value)) {
                Py_INCREF(value);
                args = value;
            } else
                args = PyTuple_Pack(1, value);
            if (!args)
                goto bad;
            owned_instance = PyObject_Call(type, args, NULL);
            Py_DECREF(args);
            if (!owned_instance)
                goto bad;
            value = owned_instance;
            if (!PyExceptionInstance_Check(value)) {
                PyErr_Format(PyExc_TypeError,
                             "calling %R should have returned an instance of "
                             "BaseException, not %R",
                             type, Py_TYPE(value));
                goto bad;
            }
        }
    } else {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }
    if (cause) {
        PyObject *fixed_cause;
        if (cause == Py_None) {
            fixed_cause = NULL;
        } else if (PyExceptionClass_Check(cause)) {
            fixed_cause = PyObject_CallObject(cause, NULL);
            if (fixed_cause == NULL)
                goto bad;
        } else if (PyExceptionInstance_Check(cause)) {
            fixed_cause = cause;
            Py_INCREF(fixed_cause);
        } else {
            PyErr_SetString(PyExc_TypeError,
                            "exception causes must derive from "
                            "BaseException");
            goto bad;
        }
        PyException_SetCause(value, fixed_cause);
    }
    PyErr_SetObject(type, value);
    if (tb) {
      #if PY_VERSION_HEX >= 0x030C00A6
        PyException_SetTraceback(value, tb);
      #elif CYTHON_FAST_THREAD_STATE
        PyThreadState *tstate = __Pyx_PyThreadState_Current;
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#else
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}
#endif

/* decode_c_bytes */
static CYTHON_INLINE PyObject* __Pyx_decode_c_bytes(
         const char* cstring, Py_ssize_t length, Py_ssize_t start, Py_ssize_t stop,
         const char* encoding, const char* errors,
         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) {
    if (unlikely((start < 0) | (stop < 0))) {
        if (start < 0) {
            start += length;
            if (start < 0)
                start = 0;
        }
        if (stop < 0)
            stop += length;
    }
    if (stop > length)
        stop = length;
    if (unlikely(stop <= start))
        return __Pyx_NewRef(__pyx_empty_unicode);
    length = stop - start;
    cstring += start;
    if (decode_func) {
        return decode_func(cstring, length, errors);
    } else {
        return PyUnicode_Decode(cstring, length, encoding, errors);
    }
}

/* GetTopmostException */
#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
{
    _PyErr_StackItem *exc_info = tstate->exc_info;
    while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) &&
           exc_info->previous_item != NULL)
    {
        exc_info = exc_info->previous_item;
    }
    return exc_info;
}
#endif

/* SaveResetException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    PyObject *exc_value = exc_info->exc_value;
    if (exc_value == NULL || exc_value == Py_None) {
        *value = NULL;
        *type = NULL;
        *tb = NULL;
    } else {
        *value = exc_value;
        Py_INCREF(*value);
        *type = (PyObject*) Py_TYPE(exc_value);
        Py_INCREF(*type);
        *tb = PyException_GetTraceback(exc_value);
    }
  #elif CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    *type = exc_info->exc_type;
    *value = exc_info->exc_value;
    *tb = exc_info->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
  #else
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
  #endif
}
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = tstate->exc_info;
    PyObject *tmp_value = exc_info->exc_value;
    exc_info->exc_value = value;
    Py_XDECREF(tmp_value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
  #else
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = type;
    exc_info->exc_value = value;
    exc_info->exc_traceback = tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = type;
    tstate->exc_value = value;
    tstate->exc_traceback = tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
  #endif
}
#endif

/* GetException */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
#endif
{
    PyObject *local_type = NULL, *local_value, *local_tb = NULL;
#if CYTHON_FAST_THREAD_STATE
    PyObject *tmp_type, *tmp_value, *tmp_tb;
  #if PY_VERSION_HEX >= 0x030C00A6
    local_value = tstate->current_exception;
    tstate->current_exception = 0;
    if (likely(local_value)) {
        local_type = (PyObject*) Py_TYPE(local_value);
        Py_INCREF(local_type);
        local_tb = PyException_GetTraceback(local_value);
    }
  #else
    local_type = tstate->curexc_type;
    local_value = tstate->curexc_value;
    local_tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
  #endif
#else
    PyErr_Fetch(&local_type, &local_value, &local_tb);
#endif
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
#if CYTHON_FAST_THREAD_STATE && PY_VERSION_HEX >= 0x030C00A6
    if (unlikely(tstate->current_exception))
#elif CYTHON_FAST_THREAD_STATE
    if (unlikely(tstate->curexc_type))
#else
    if (unlikely(PyErr_Occurred()))
#endif
        goto bad;
    #if PY_MAJOR_VERSION >= 3
    if (local_tb) {
        if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
            goto bad;
    }
    #endif
    Py_XINCREF(local_tb);
    Py_XINCREF(local_type);
    Py_XINCREF(local_value);
    *type = local_type;
    *value = local_value;
    *tb = local_tb;
#if CYTHON_FAST_THREAD_STATE
    #if CYTHON_USE_EXC_INFO_STACK
    {
        _PyErr_StackItem *exc_info = tstate->exc_info;
      #if PY_VERSION_HEX >= 0x030B00a4
        tmp_value = exc_info->exc_value;
        exc_info->exc_value = local_value;
        tmp_type = NULL;
        tmp_tb = NULL;
        Py_XDECREF(local_type);
        Py_XDECREF(local_tb);
      #else
        tmp_type = exc_info->exc_type;
        tmp_value = exc_info->exc_value;
        tmp_tb = exc_info->exc_traceback;
        exc_info->exc_type = local_type;
        exc_info->exc_value = local_value;
        exc_info->exc_traceback = local_tb;
      #endif
    }
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = local_type;
    tstate->exc_value = local_value;
    tstate->exc_traceback = local_tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#else
    PyErr_SetExcInfo(local_type, local_value, local_tb);
#endif
    return 0;
bad:
    *type = 0;
    *value = 0;
    *tb = 0;
    Py_XDECREF(local_type);
    Py_XDECREF(local_value);
    Py_XDECREF(local_tb);
    return -1;
}

/* PyDictVersioning */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
    PyObject **dictptr = NULL;
    Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
    if (offset) {
#if CYTHON_COMPILING_IN_CPYTHON
        dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
#else
        dictptr = _PyObject_GetDictPtr(obj);
#endif
    }
    return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
        return 0;
    return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#endif

/* GetModuleGlobalName */
#if CYTHON_USE_DICT_VERSIONS
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
#else
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
#endif
{
    PyObject *result;
#if !CYTHON_AVOID_BORROWED_REFS
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && PY_VERSION_HEX < 0x030d0000
    result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    } else if (unlikely(PyErr_Occurred())) {
        return NULL;
    }
#elif CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(!__pyx_m)) {
        return NULL;
    }
    result = PyObject_GetAttr(__pyx_m, name);
    if (likely(result)) {
        return result;
    }
#else
    result = PyDict_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
#endif
#else
    result = PyObject_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
    PyErr_Clear();
#endif
    return __Pyx_GetBuiltinName(name);
}

/* KeywordStringCheck */
static int __Pyx_CheckKeywordStrings(
    PyObject *kw,
    const char* function_name,
    int kw_allowed)
{
    PyObject* key = 0;
    Py_ssize_t pos = 0;
#if CYTHON_COMPILING_IN_PYPY
    if (!kw_allowed && PyDict_Next(kw, &pos, &key, 0))
        goto invalid_keyword;
    return 1;
#else
    if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kw))) {
        Py_ssize_t kwsize;
#if CYTHON_ASSUME_SAFE_MACROS
        kwsize = PyTuple_GET_SIZE(kw);
#else
        kwsize = PyTuple_Size(kw);
        if (kwsize < 0) return 0;
#endif
        if (unlikely(kwsize == 0))
            return 1;
        if (!kw_allowed) {
#if CYTHON_ASSUME_SAFE_MACROS
            key = PyTuple_GET_ITEM(kw, 0);
#else
            key = PyTuple_GetItem(kw, pos);
            if (!key) return 0;
#endif
            goto invalid_keyword;
        }
#if PY_VERSION_HEX < 0x03090000
        for (pos = 0; pos < kwsize; pos++) {
#if CYTHON_ASSUME_SAFE_MACROS
            key = PyTuple_GET_ITEM(kw, pos);
#else
            key = PyTuple_GetItem(kw, pos);
            if (!key) return 0;
#endif
            if (unlikely(!PyUnicode_Check(key)))
                goto invalid_keyword_type;
        }
#endif
        return 1;
    }
    while (PyDict_Next(kw, &pos, &key, 0)) {
        #if PY_MAJOR_VERSION < 3
        if (unlikely(!PyString_Check(key)))
        #endif
            if (unlikely(!PyUnicode_Check(key)))
                goto invalid_keyword_type;
    }
    if (!kw_allowed && unlikely(key))
        goto invalid_keyword;
    return 1;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    return 0;
#endif
invalid_keyword:
    #if PY_MAJOR_VERSION < 3
    PyErr_Format(PyExc_TypeError,
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
    PyErr_Format(PyExc_TypeError,
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
    return 0;
}

/* PyObjectCallNoArg */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
    PyObject *arg[2] = {NULL, NULL};
    return __Pyx_PyObject_FastCall(func, arg + 1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* GetItemInt */
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (unlikely(!j)) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyList_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
        PyObject *r = PyList_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyTuple_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
        PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
                                                     CYTHON_NCP_UNUSED int wraparound,
                                                     CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
        if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
            PyObject *r = PyList_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    }
    else if (PyTuple_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
            PyObject *r = PyTuple_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    } else {
        PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
        PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
        if (mm && mm->mp_subscript) {
            PyObject *r, *key = PyInt_FromSsize_t(i);
            if (unlikely(!key)) return NULL;
            r = mm->mp_subscript(o, key);
            Py_DECREF(key);
            return r;
        }
        if (likely(sm && sm->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
                Py_ssize_t l = sm->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return NULL;
                    PyErr_Clear();
                }
            }
            return sm->sq_item(o, i);
        }
    }
#else
    if (is_list || !PyMapping_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
}

/* ExtTypeTest */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
    __Pyx_TypeName obj_type_name;
    __Pyx_TypeName type_name;
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (likely(__Pyx_TypeCheck(obj, type)))
        return 1;
    obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    type_name = __Pyx_PyType_GetName(type);
    PyErr_Format(PyExc_TypeError,
                 "Cannot convert " __Pyx_FMT_TYPENAME " to " __Pyx_FMT_TYPENAME,
                 obj_type_name, type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    __Pyx_DECREF_TypeName(type_name);
    return 0;
}

/* RaiseTooManyValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
}

/* RaiseNeedMoreValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
                 index, (index == 1) ? "" : "s");
}

/* IterFinish */
static CYTHON_INLINE int __Pyx_IterFinish(void) {
    PyObject* exc_type;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (unlikely(exc_type)) {
        if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))
            return -1;
        __Pyx_PyErr_Clear();
        return 0;
    }
    return 0;
}

/* UnpackItemEndCheck */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    }
    return __Pyx_IterFinish();
}

/* PyObjectCall2Args */
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
    PyObject *args[3] = {NULL, arg1, arg2};
    return __Pyx_PyObject_FastCall(function, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* PyObjectGetMethod */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
    PyObject *attr;
#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
    __Pyx_TypeName type_name;
    PyTypeObject *tp = Py_TYPE(obj);
    PyObject *descr;
    descrgetfunc f = NULL;
    PyObject **dictptr, *dict;
    int meth_found = 0;
    assert (*method == NULL);
    if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
        attr = __Pyx_PyObject_GetAttrStr(obj, name);
        goto try_unpack;
    }
    if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
        return 0;
    }
    descr = _PyType_Lookup(tp, name);
    if (likely(descr != NULL)) {
        Py_INCREF(descr);
#if defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR
        if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
#elif PY_MAJOR_VERSION >= 3
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type)))
        #endif
#else
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr)))
        #endif
#endif
        {
            meth_found = 1;
        } else {
            f = Py_TYPE(descr)->tp_descr_get;
            if (f != NULL && PyDescr_IsData(descr)) {
                attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
                Py_DECREF(descr);
                goto try_unpack;
            }
        }
    }
    dictptr = _PyObject_GetDictPtr(obj);
    if (dictptr != NULL && (dict = *dictptr) != NULL) {
        Py_INCREF(dict);
        attr = __Pyx_PyDict_GetItemStr(dict, name);
        if (attr != NULL) {
            Py_INCREF(attr);
            Py_DECREF(dict);
            Py_XDECREF(descr);
            goto try_unpack;
        }
        Py_DECREF(dict);
    }
    if (meth_found) {
        *method = descr;
        return 1;
    }
    if (f != NULL) {
        attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
        Py_DECREF(descr);
        goto try_unpack;
    }
    if (likely(descr != NULL)) {
        *method = descr;
        return 0;
    }
    type_name = __Pyx_PyType_GetName(tp);
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'",
                 type_name, name);
#else
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'",
                 type_name, PyString_AS_STRING(name));
#endif
    __Pyx_DECREF_TypeName(type_name);
    return 0;
#else
    attr = __Pyx_PyObject_GetAttrStr(obj, name);
    goto try_unpack;
#endif
try_unpack:
#if CYTHON_UNPACK_METHODS
    if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
        PyObject *function = PyMethod_GET_FUNCTION(attr);
        Py_INCREF(function);
        Py_DECREF(attr);
        *method = function;
        return 1;
    }
#endif
    *method = attr;
    return 0;
}

/* PyObjectCallMethod1 */
#if !(CYTHON_VECTORCALL && __PYX_LIMITED_VERSION_HEX >= 0x030C00A2)
static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {
    PyObject *result = __Pyx_PyObject_CallOneArg(method, arg);
    Py_DECREF(method);
    return result;
}
#endif
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
#if CYTHON_VECTORCALL && __PYX_LIMITED_VERSION_HEX >= 0x030C00A2
    PyObject *args[2] = {obj, arg};
    (void) __Pyx_PyObject_GetMethod;
    (void) __Pyx_PyObject_CallOneArg;
    (void) __Pyx_PyObject_Call2Args;
    return PyObject_VectorcallMethod(method_name, args, 2 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
#else
    PyObject *method = NULL, *result;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_Call2Args(method, obj, arg);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) return NULL;
    return __Pyx__PyObject_CallMethod1(method, arg);
#endif
}

/* append */
static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
    if (likely(PyList_CheckExact(L))) {
        if (unlikely(__Pyx_PyList_Append(L, x) < 0)) return -1;
    } else {
        PyObject* retval = __Pyx_PyObject_CallMethod1(L, __pyx_n_s_append, x);
        if (unlikely(!retval))
            return -1;
        Py_DECREF(retval);
    }
    return 0;
}

/* GetAttr */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
#if CYTHON_USE_TYPE_SLOTS
#if PY_MAJOR_VERSION >= 3
    if (likely(PyUnicode_Check(n)))
#else
    if (likely(PyString_Check(n)))
#endif
        return __Pyx_PyObject_GetAttrStr(o, n);
#endif
    return PyObject_GetAttr(o, n);
}

/* HasAttr */
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
    PyObject *r;
    if (unlikely(!__Pyx_PyBaseString_Check(n))) {
        PyErr_SetString(PyExc_TypeError,
                        "hasattr(): attribute name must be string");
        return -1;
    }
    r = __Pyx_GetAttr(o, n);
    if (!r) {
        PyErr_Clear();
        return 0;
    } else {
        Py_DECREF(r);
        return 1;
    }
}

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long x;
        long a = PyInt_AS_LONG(op1);
        
            x = (long)((unsigned long)a + (unsigned long)b);
            if (likely((x^a) >= 0 || (x^b) >= 0))
                return PyInt_FromLong(x);
            return PyLong_Type.tp_as_number->nb_add(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        if (unlikely(__Pyx_PyLong_IsZero(op1))) {
            return __Pyx_NewRef(op2);
        }
        if (likely(__Pyx_PyLong_IsCompact(op1))) {
            a = __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_add(op1, op2);
            }
        }
                x = a + b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla + llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double a = __pyx_PyFloat_AsDouble(op1);
#else
        double a = PyFloat_AS_DOUBLE(op1);
#endif
            double result;
            
            PyFPE_START_PROTECT("add", return NULL)
            result = ((double)a) + (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
}
#endif

/* PyObjectLookupSpecial */
#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error) {
    PyObject *res;
    PyTypeObject *tp = Py_TYPE(obj);
#if PY_MAJOR_VERSION < 3
    if (unlikely(PyInstance_Check(obj)))
        return with_error ? __Pyx_PyObject_GetAttrStr(obj, attr_name) : __Pyx_PyObject_GetAttrStrNoError(obj, attr_name);
#endif
    res = _PyType_Lookup(tp, attr_name);
    if (likely(res)) {
        descrgetfunc f = Py_TYPE(res)->tp_descr_get;
        if (!f) {
            Py_INCREF(res);
        } else {
            res = f(res, obj, (PyObject *)tp);
        }
    } else if (with_error) {
        PyErr_SetObject(PyExc_AttributeError, attr_name);
    }
    return res;
}
#endif

/* RaiseNoneIterError */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
}

/* UnpackUnboundCMethod */
static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) {
    PyObject *result;
    PyObject *selfless_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args));
    if (unlikely(!selfless_args)) return NULL;
    result = PyObject_Call(method, selfless_args, kwargs);
    Py_DECREF(selfless_args);
    return result;
}
static PyMethodDef __Pyx_UnboundCMethod_Def = {
     "CythonUnboundCMethod",
     __PYX_REINTERPRET_FUNCION(PyCFunction, __Pyx_SelflessCall),
     METH_VARARGS | METH_KEYWORDS,
     NULL
};
static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
    PyObject *method;
    method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
    if (unlikely(!method))
        return -1;
    target->method = method;
#if CYTHON_COMPILING_IN_CPYTHON
    #if PY_MAJOR_VERSION >= 3
    if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
    #else
    if (likely(!__Pyx_CyOrPyCFunction_Check(method)))
    #endif
    {
        PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
        target->func = descr->d_method->ml_meth;
        target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
    } else
#endif
#if CYTHON_COMPILING_IN_PYPY
#else
    if (PyCFunction_Check(method))
#endif
    {
        PyObject *self;
        int self_found;
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        self = PyObject_GetAttrString(method, "__self__");
        if (!self) {
            PyErr_Clear();
        }
#else
        self = PyCFunction_GET_SELF(method);
#endif
        self_found = (self && self != Py_None);
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        Py_XDECREF(self);
#endif
        if (self_found) {
            PyObject *unbound_method = PyCFunction_New(&__Pyx_UnboundCMethod_Def, method);
            if (unlikely(!unbound_method)) return -1;
            Py_DECREF(method);
            target->method = unbound_method;
        }
    }
    return 0;
}

/* CallUnboundCMethod2 */
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030600B1
static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) {
    if (likely(cfunc->func)) {
        PyObject *args[2] = {arg1, arg2};
        if (cfunc->flag == METH_FASTCALL) {
            #if PY_VERSION_HEX >= 0x030700A0
            return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, args, 2);
            #else
            return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, 2, NULL);
            #endif
        }
        #if PY_VERSION_HEX >= 0x030700A0
        if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
            return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, 2, NULL);
        #endif
    }
    return __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2);
}
#endif
static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){
    PyObject *args, *result = NULL;
    if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_COMPILING_IN_CPYTHON
    if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
        args = PyTuple_New(2);
        if (unlikely(!args)) goto bad;
        Py_INCREF(arg1);
        PyTuple_SET_ITEM(args, 0, arg1);
        Py_INCREF(arg2);
        PyTuple_SET_ITEM(args, 1, arg2);
        if (cfunc->flag & METH_KEYWORDS)
            result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL);
        else
            result = (*cfunc->func)(self, args);
    } else {
        args = PyTuple_New(3);
        if (unlikely(!args)) goto bad;
        Py_INCREF(self);
        PyTuple_SET_ITEM(args, 0, self);
        Py_INCREF(arg1);
        PyTuple_SET_ITEM(args, 1, arg1);
        Py_INCREF(arg2);
        PyTuple_SET_ITEM(args, 2, arg2);
        result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
    }
#else
    args = PyTuple_Pack(3, self, arg1, arg2);
    if (unlikely(!args)) goto bad;
    result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
#endif
bad:
    Py_XDECREF(args);
    return result;
}

/* CallUnboundCMethod1 */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg) {
    if (likely(cfunc->func)) {
        int flag = cfunc->flag;
        if (flag == METH_O) {
            return (*(cfunc->func))(self, arg);
        } else if ((PY_VERSION_HEX >= 0x030600B1) && flag == METH_FASTCALL) {
            #if PY_VERSION_HEX >= 0x030700A0
                return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, &arg, 1);
            #else
                return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL);
            #endif
        } else if ((PY_VERSION_HEX >= 0x030700A0) && flag == (METH_FASTCALL | METH_KEYWORDS)) {
            return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL);
        }
    }
    return __Pyx__CallUnboundCMethod1(cfunc, self, arg);
}
#endif
static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg){
    PyObject *args, *result = NULL;
    if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_COMPILING_IN_CPYTHON
    if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
        args = PyTuple_New(1);
        if (unlikely(!args)) goto bad;
        Py_INCREF(arg);
        PyTuple_SET_ITEM(args, 0, arg);
        if (cfunc->flag & METH_KEYWORDS)
            result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL);
        else
            result = (*cfunc->func)(self, args);
    } else {
        args = PyTuple_New(2);
        if (unlikely(!args)) goto bad;
        Py_INCREF(self);
        PyTuple_SET_ITEM(args, 0, self);
        Py_INCREF(arg);
        PyTuple_SET_ITEM(args, 1, arg);
        result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
    }
#else
    args = PyTuple_Pack(2, self, arg);
    if (unlikely(!args)) goto bad;
    result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
#endif
bad:
    Py_XDECREF(args);
    return result;
}

/* py_dict_pop */
static CYTHON_INLINE PyObject *__Pyx_PyDict_Pop(PyObject *d, PyObject *key, PyObject *default_value) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX > 0x030600B3 & PY_VERSION_HEX < 0x030d0000
    if ((1)) {
        return _PyDict_Pop(d, key, default_value);
    } else
#endif
    if (default_value) {
        return __Pyx_CallUnboundCMethod2(&__pyx_umethod_PyDict_Type_pop, d, key, default_value);
    } else {
        return __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_pop, d, key);
    }
}

/* pyfrozenset_new */
static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it) {
    if (it) {
        PyObject* result;
#if CYTHON_COMPILING_IN_PYPY
        PyObject* args;
        args = PyTuple_Pack(1, it);
        if (unlikely(!args))
            return NULL;
        result = PyObject_Call((PyObject*)&PyFrozenSet_Type, args, NULL);
        Py_DECREF(args);
        return result;
#else
        if (PyFrozenSet_CheckExact(it)) {
            Py_INCREF(it);
            return it;
        }
        result = PyFrozenSet_New(it);
        if (unlikely(!result))
            return NULL;
        if ((PY_VERSION_HEX >= 0x031000A1) || likely(PySet_GET_SIZE(result)))
            return result;
        Py_DECREF(result);
#endif
    }
#if CYTHON_USE_TYPE_SLOTS
    return PyFrozenSet_Type.tp_new(&PyFrozenSet_Type, __pyx_empty_tuple, NULL);
#else
    return PyObject_Call((PyObject*)&PyFrozenSet_Type, __pyx_empty_tuple, NULL);
#endif
}

/* py_set_discard_unhashable */
static int __Pyx_PySet_DiscardUnhashable(PyObject *set, PyObject *key) {
    PyObject *tmpkey;
    int rv;
    if (likely(!PySet_Check(key) || !PyErr_ExceptionMatches(PyExc_TypeError)))
        return -1;
    PyErr_Clear();
    tmpkey = __Pyx_PyFrozenSet_New(key);
    if (tmpkey == NULL)
        return -1;
    rv = PySet_Discard(set, tmpkey);
    Py_DECREF(tmpkey);
    return rv;
}

/* py_set_remove */
static int __Pyx_PySet_RemoveNotFound(PyObject *set, PyObject *key, int found) {
    if (unlikely(found < 0)) {
        found = __Pyx_PySet_DiscardUnhashable(set, key);
    }
    if (likely(found == 0)) {
        PyObject *tup;
        tup = PyTuple_Pack(1, key);
        if (!tup)
            return -1;
        PyErr_SetObject(PyExc_KeyError, tup);
        Py_DECREF(tup);
        return -1;
    }
    return found;
}
static CYTHON_INLINE int __Pyx_PySet_Remove(PyObject *set, PyObject *key) {
    int found = PySet_Discard(set, key);
    if (unlikely(found != 1)) {
        return __Pyx_PySet_RemoveNotFound(set, key, found);
    }
    return 0;
}

/* RaiseClosureNameError */
static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) {
    PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname);
}

/* set_iter */
static CYTHON_INLINE PyObject* __Pyx_set_iterator(PyObject* iterable, int is_set,
                                                  Py_ssize_t* p_orig_length, int* p_source_is_set) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    is_set = is_set || likely(PySet_CheckExact(iterable) || PyFrozenSet_CheckExact(iterable));
    *p_source_is_set = is_set;
    if (likely(is_set)) {
        *p_orig_length = PySet_Size(iterable);
        Py_INCREF(iterable);
        return iterable;
    }
#else
    CYTHON_UNUSED_VAR(is_set);
    *p_source_is_set = 0;
#endif
    *p_orig_length = 0;
    return PyObject_GetIter(iterable);
}
static CYTHON_INLINE int __Pyx_set_iter_next(
        PyObject* iter_obj, Py_ssize_t orig_length,
        Py_ssize_t* ppos, PyObject **value,
        int source_is_set) {
    if (!CYTHON_COMPILING_IN_CPYTHON || PY_VERSION_HEX >= 0x030d0000 || unlikely(!source_is_set)) {
        *value = PyIter_Next(iter_obj);
        if (unlikely(!*value)) {
            return __Pyx_IterFinish();
        }
        CYTHON_UNUSED_VAR(orig_length);
        CYTHON_UNUSED_VAR(ppos);
        return 1;
    }
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    if (unlikely(PySet_GET_SIZE(iter_obj) != orig_length)) {
        PyErr_SetString(
            PyExc_RuntimeError,
            "set changed size during iteration");
        return -1;
    }
    {
        Py_hash_t hash;
        int ret = _PySet_NextEntry(iter_obj, ppos, value, &hash);
        assert (ret != -1);
        if (likely(ret)) {
            Py_INCREF(*value);
            return 1;
        }
    }
#endif
    return 0;
}

/* CallUnboundCMethod0 */
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
    PyObject *args, *result = NULL;
    if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_ASSUME_SAFE_MACROS
    args = PyTuple_New(1);
    if (unlikely(!args)) goto bad;
    Py_INCREF(self);
    PyTuple_SET_ITEM(args, 0, self);
#else
    args = PyTuple_Pack(1, self);
    if (unlikely(!args)) goto bad;
#endif
    result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
    Py_DECREF(args);
bad:
    return result;
}

/* py_dict_values */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
    if (PY_MAJOR_VERSION >= 3)
        return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_values, d);
    else
        return PyDict_Values(d);
}

/* PyFloatBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyFloat_AddObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check) {
    const double b = floatval;
    double a, result;
    CYTHON_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    if (likely(PyFloat_CheckExact(op1))) {
#if CYTHON_COMPILING_IN_LIMITED_API
        a = __pyx_PyFloat_AsDouble(op1);
#else
        a = PyFloat_AS_DOUBLE(op1);
#endif
        
    } else
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        a = (double) PyInt_AS_LONG(op1);
        
    } else
    #endif
    if (likely(PyLong_CheckExact(op1))) {
        #if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsZero(op1)) {
            a = 0.0;
            
        } else if (__Pyx_PyLong_IsCompact(op1)) {
            a = (double) __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                case 2:
                    if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (1 * PyLong_SHIFT < 53))) {
                        a = (double) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -2)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                case 3:
                    if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53))) {
                        a = (double) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -3)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                case 4:
                    if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53))) {
                        a = (double) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (4 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -4)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                default:
        #endif
                    a = PyLong_AsDouble(op1);
                    if (unlikely(a == -1.0 && PyErr_Occurred())) return NULL;
        #if CYTHON_USE_PYLONG_INTERNALS
            }
        }
        #endif
    } else {
        return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
    }
        PyFPE_START_PROTECT("add", return NULL)
        result = a + b;
        PyFPE_END_PROTECT(result)
        return PyFloat_FromDouble(result);
}
#endif

/* py_dict_keys */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Keys(PyObject* d) {
    if (PY_MAJOR_VERSION >= 3)
        return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_keys, d);
    else
        return PyDict_Keys(d);
}

/* DictGetItem */
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
    PyObject *value;
    value = PyDict_GetItemWithError(d, key);
    if (unlikely(!value)) {
        if (!PyErr_Occurred()) {
            if (unlikely(PyTuple_Check(key))) {
                PyObject* args = PyTuple_Pack(1, key);
                if (likely(args)) {
                    PyErr_SetObject(PyExc_KeyError, args);
                    Py_DECREF(args);
                }
            } else {
                PyErr_SetObject(PyExc_KeyError, key);
            }
        }
        return NULL;
    }
    Py_INCREF(value);
    return value;
}
#endif

/* IterNext */
static PyObject *__Pyx_PyIter_Next2Default(PyObject* defval) {
    PyObject* exc_type;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (unlikely(exc_type)) {
        if (!defval || unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))
            return NULL;
        __Pyx_PyErr_Clear();
        Py_INCREF(defval);
        return defval;
    }
    if (defval) {
        Py_INCREF(defval);
        return defval;
    }
    __Pyx_PyErr_SetNone(PyExc_StopIteration);
    return NULL;
}
static void __Pyx_PyIter_Next_ErrorNoIterator(PyObject *iterator) {
    __Pyx_TypeName iterator_type_name = __Pyx_PyType_GetName(Py_TYPE(iterator));
    PyErr_Format(PyExc_TypeError,
        __Pyx_FMT_TYPENAME " object is not an iterator", iterator_type_name);
    __Pyx_DECREF_TypeName(iterator_type_name);
}
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject* iterator, PyObject* defval) {
    PyObject* next;
    iternextfunc iternext = Py_TYPE(iterator)->tp_iternext;
    if (likely(iternext)) {
#if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
        next = iternext(iterator);
        if (likely(next))
            return next;
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
        if (unlikely(iternext == &_PyObject_NextNotImplemented))
            return NULL;
#endif
#else
        next = PyIter_Next(iterator);
        if (likely(next))
            return next;
#endif
    } else if (CYTHON_USE_TYPE_SLOTS || unlikely(!PyIter_Check(iterator))) {
        __Pyx_PyIter_Next_ErrorNoIterator(iterator);
        return NULL;
    }
#if !CYTHON_USE_TYPE_SLOTS
    else {
        next = PyIter_Next(iterator);
        if (likely(next))
            return next;
    }
#endif
    return __Pyx_PyIter_Next2Default(defval);
}

/* GetAttr3 */
#if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        return NULL;
    __Pyx_PyErr_Clear();
    Py_INCREF(d);
    return d;
}
#endif
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
    PyObject *r;
#if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
    int res = PyObject_GetOptionalAttr(o, n, &r);
    return (res != 0) ? r : __Pyx_NewRef(d);
#else
  #if CYTHON_USE_TYPE_SLOTS
    if (likely(PyString_Check(n))) {
        r = __Pyx_PyObject_GetAttrStrNoError(o, n);
        if (unlikely(!r) && likely(!PyErr_Occurred())) {
            r = __Pyx_NewRef(d);
        }
        return r;
    }
  #endif
    r = PyObject_GetAttr(o, n);
    return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
#endif
}

/* WriteUnraisableException */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    __Pyx_PyThreadState_declare
#ifdef WITH_THREAD
    PyGILState_STATE state;
    if (nogil)
        state = PyGILState_Ensure();
    else state = (PyGILState_STATE)0;
#endif
    CYTHON_UNUSED_VAR(clineno);
    CYTHON_UNUSED_VAR(lineno);
    CYTHON_UNUSED_VAR(filename);
    CYTHON_MAYBE_UNUSED_VAR(nogil);
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
    if (full_traceback) {
        Py_XINCREF(old_exc);
        Py_XINCREF(old_val);
        Py_XINCREF(old_tb);
        __Pyx_ErrRestore(old_exc, old_val, old_tb);
        PyErr_PrintEx(0);
    }
    #if PY_MAJOR_VERSION < 3
    ctx = PyString_FromString(name);
    #else
    ctx = PyUnicode_FromString(name);
    #endif
    __Pyx_ErrRestore(old_exc, old_val, old_tb);
    if (!ctx) {
        PyErr_WriteUnraisable(Py_None);
    } else {
        PyErr_WriteUnraisable(ctx);
        Py_DECREF(ctx);
    }
#ifdef WITH_THREAD
    if (nogil)
        PyGILState_Release(state);
#endif
}

/* PyIntCompare */
static CYTHON_INLINE int __Pyx_PyInt_BoolEqObjC(PyObject *op1, PyObject *op2, long intval, long inplace) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_UNUSED_VAR(inplace);
    if (op1 == op2) {
        return 1;
    }
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long a = PyInt_AS_LONG(op1);
        return (a == b);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        int unequal;
        unsigned long uintval;
        Py_ssize_t size = __Pyx_PyLong_DigitCount(op1);
        const digit* digits = __Pyx_PyLong_Digits(op1);
        if (intval == 0) {
            return (__Pyx_PyLong_IsZero(op1) == 1);
        } else if (intval < 0) {
            if (__Pyx_PyLong_IsNonNeg(op1))
                return 0;
            intval = -intval;
        } else {
            if (__Pyx_PyLong_IsNeg(op1))
                return 0;
        }
        uintval = (unsigned long) intval;
#if PyLong_SHIFT * 4 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 4)) {
            unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 3 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 3)) {
            unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 2 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 2)) {
            unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 1 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 1)) {
            unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
            unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
        return (unequal == 0);
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double a = __pyx_PyFloat_AsDouble(op1);
#else
        double a = PyFloat_AS_DOUBLE(op1);
#endif
        return ((double)a == (double)b);
    }
    return __Pyx_PyObject_IsTrueAndDecref(
        PyObject_RichCompare(op1, op2, Py_EQ));
}

/* pep479 */
static void __Pyx_Generator_Replace_StopIteration(int in_async_gen) {
    PyObject *exc, *val, *tb, *cur_exc;
    __Pyx_PyThreadState_declare
    #ifdef __Pyx_StopAsyncIteration_USED
    int is_async_stopiteration = 0;
    #endif
    CYTHON_MAYBE_UNUSED_VAR(in_async_gen);
    cur_exc = PyErr_Occurred();
    if (likely(!__Pyx_PyErr_GivenExceptionMatches(cur_exc, PyExc_StopIteration))) {
        #ifdef __Pyx_StopAsyncIteration_USED
        if (in_async_gen && unlikely(__Pyx_PyErr_GivenExceptionMatches(cur_exc, __Pyx_PyExc_StopAsyncIteration))) {
            is_async_stopiteration = 1;
        } else
        #endif
            return;
    }
    __Pyx_PyThreadState_assign
    __Pyx_GetException(&exc, &val, &tb);
    Py_XDECREF(exc);
    Py_XDECREF(val);
    Py_XDECREF(tb);
    PyErr_SetString(PyExc_RuntimeError,
        #ifdef __Pyx_StopAsyncIteration_USED
        is_async_stopiteration ? "async generator raised StopAsyncIteration" :
        in_async_gen ? "async generator raised StopIteration" :
        #endif
        "generator raised StopIteration");
}

/* SliceObject */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,
        Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
        int has_cstart, int has_cstop, int wraparound) {
    __Pyx_TypeName obj_type_name;
#if CYTHON_USE_TYPE_SLOTS
    PyMappingMethods* mp;
#if PY_MAJOR_VERSION < 3
    PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
    if (likely(ms && ms->sq_slice)) {
        if (!has_cstart) {
            if (_py_start && (*_py_start != Py_None)) {
                cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
                if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
            } else
                cstart = 0;
        }
        if (!has_cstop) {
            if (_py_stop && (*_py_stop != Py_None)) {
                cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
                if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
            } else
                cstop = PY_SSIZE_T_MAX;
        }
        if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
            Py_ssize_t l = ms->sq_length(obj);
            if (likely(l >= 0)) {
                if (cstop < 0) {
                    cstop += l;
                    if (cstop < 0) cstop = 0;
                }
                if (cstart < 0) {
                    cstart += l;
                    if (cstart < 0) cstart = 0;
                }
            } else {
                if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                    goto bad;
                PyErr_Clear();
            }
        }
        return ms->sq_slice(obj, cstart, cstop);
    }
#else
    CYTHON_UNUSED_VAR(wraparound);
#endif
    mp = Py_TYPE(obj)->tp_as_mapping;
    if (likely(mp && mp->mp_subscript))
#else
    CYTHON_UNUSED_VAR(wraparound);
#endif
    {
        PyObject* result;
        PyObject *py_slice, *py_start, *py_stop;
        if (_py_slice) {
            py_slice = *_py_slice;
        } else {
            PyObject* owned_start = NULL;
            PyObject* owned_stop = NULL;
            if (_py_start) {
                py_start = *_py_start;
            } else {
                if (has_cstart) {
                    owned_start = py_start = PyInt_FromSsize_t(cstart);
                    if (unlikely(!py_start)) goto bad;
                } else
                    py_start = Py_None;
            }
            if (_py_stop) {
                py_stop = *_py_stop;
            } else {
                if (has_cstop) {
                    owned_stop = py_stop = PyInt_FromSsize_t(cstop);
                    if (unlikely(!py_stop)) {
                        Py_XDECREF(owned_start);
                        goto bad;
                    }
                } else
                    py_stop = Py_None;
            }
            py_slice = PySlice_New(py_start, py_stop, Py_None);
            Py_XDECREF(owned_start);
            Py_XDECREF(owned_stop);
            if (unlikely(!py_slice)) goto bad;
        }
#if CYTHON_USE_TYPE_SLOTS
        result = mp->mp_subscript(obj, py_slice);
#else
        result = PyObject_GetItem(obj, py_slice);
#endif
        if (!_py_slice) {
            Py_DECREF(py_slice);
        }
        return result;
    }
    obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'" __Pyx_FMT_TYPENAME "' object is unsliceable", obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
bad:
    return NULL;
}

/* decode_c_string */
static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
         const char* cstring, Py_ssize_t start, Py_ssize_t stop,
         const char* encoding, const char* errors,
         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) {
    Py_ssize_t length;
    if (unlikely((start < 0) | (stop < 0))) {
        size_t slen = strlen(cstring);
        if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) {
            PyErr_SetString(PyExc_OverflowError,
                            "c-string too long to convert to Python");
            return NULL;
        }
        length = (Py_ssize_t) slen;
        if (start < 0) {
            start += length;
            if (start < 0)
                start = 0;
        }
        if (stop < 0)
            stop += length;
    }
    if (unlikely(stop <= start))
        return __Pyx_NewRef(__pyx_empty_unicode);
    length = stop - start;
    cstring += start;
    if (decode_func) {
        return decode_func(cstring, length, errors);
    } else {
        return PyUnicode_Decode(cstring, length, encoding, errors);
    }
}

/* Import */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
    PyObject *module = 0;
    PyObject *empty_dict = 0;
    PyObject *empty_list = 0;
    #if PY_MAJOR_VERSION < 3
    PyObject *py_import;
    py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
    if (unlikely(!py_import))
        goto bad;
    if (!from_list) {
        empty_list = PyList_New(0);
        if (unlikely(!empty_list))
            goto bad;
        from_list = empty_list;
    }
    #endif
    empty_dict = PyDict_New();
    if (unlikely(!empty_dict))
        goto bad;
    {
        #if PY_MAJOR_VERSION >= 3
        if (level == -1) {
            if (strchr(__Pyx_MODULE_NAME, '.') != NULL) {
                module = PyImport_ImportModuleLevelObject(
                    name, __pyx_d, empty_dict, from_list, 1);
                if (unlikely(!module)) {
                    if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError)))
                        goto bad;
                    PyErr_Clear();
                }
            }
            level = 0;
        }
        #endif
        if (!module) {
            #if PY_MAJOR_VERSION < 3
            PyObject *py_level = PyInt_FromLong(level);
            if (unlikely(!py_level))
                goto bad;
            module = PyObject_CallFunctionObjArgs(py_import,
                name, __pyx_d, empty_dict, from_list, py_level, (PyObject *)NULL);
            Py_DECREF(py_level);
            #else
            module = PyImport_ImportModuleLevelObject(
                name, __pyx_d, empty_dict, from_list, level);
            #endif
        }
    }
bad:
    Py_XDECREF(empty_dict);
    Py_XDECREF(empty_list);
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(py_import);
    #endif
    return module;
}

/* ImportDottedModule */
#if PY_MAJOR_VERSION >= 3
static PyObject *__Pyx__ImportDottedModule_Error(PyObject *name, PyObject *parts_tuple, Py_ssize_t count) {
    PyObject *partial_name = NULL, *slice = NULL, *sep = NULL;
    if (unlikely(PyErr_Occurred())) {
        PyErr_Clear();
    }
    if (likely(PyTuple_GET_SIZE(parts_tuple) == count)) {
        partial_name = name;
    } else {
        slice = PySequence_GetSlice(parts_tuple, 0, count);
        if (unlikely(!slice))
            goto bad;
        sep = PyUnicode_FromStringAndSize(".", 1);
        if (unlikely(!sep))
            goto bad;
        partial_name = PyUnicode_Join(sep, slice);
    }
    PyErr_Format(
#if PY_MAJOR_VERSION < 3
        PyExc_ImportError,
        "No module named '%s'", PyString_AS_STRING(partial_name));
#else
#if PY_VERSION_HEX >= 0x030600B1
        PyExc_ModuleNotFoundError,
#else
        PyExc_ImportError,
#endif
        "No module named '%U'", partial_name);
#endif
bad:
    Py_XDECREF(sep);
    Py_XDECREF(slice);
    Py_XDECREF(partial_name);
    return NULL;
}
#endif
#if PY_MAJOR_VERSION >= 3
static PyObject *__Pyx__ImportDottedModule_Lookup(PyObject *name) {
    PyObject *imported_module;
#if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM  < 0x07030400)
    PyObject *modules = PyImport_GetModuleDict();
    if (unlikely(!modules))
        return NULL;
    imported_module = __Pyx_PyDict_GetItemStr(modules, name);
    Py_XINCREF(imported_module);
#else
    imported_module = PyImport_GetModule(name);
#endif
    return imported_module;
}
#endif
#if PY_MAJOR_VERSION >= 3
static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple) {
    Py_ssize_t i, nparts;
    nparts = PyTuple_GET_SIZE(parts_tuple);
    for (i=1; i < nparts && module; i++) {
        PyObject *part, *submodule;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        part = PyTuple_GET_ITEM(parts_tuple, i);
#else
        part = PySequence_ITEM(parts_tuple, i);
#endif
        submodule = __Pyx_PyObject_GetAttrStrNoError(module, part);
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
        Py_DECREF(part);
#endif
        Py_DECREF(module);
        module = submodule;
    }
    if (unlikely(!module)) {
        return __Pyx__ImportDottedModule_Error(name, parts_tuple, i);
    }
    return module;
}
#endif
static PyObject *__Pyx__ImportDottedModule(PyObject *name, PyObject *parts_tuple) {
#if PY_MAJOR_VERSION < 3
    PyObject *module, *from_list, *star = __pyx_n_s__38;
    CYTHON_UNUSED_VAR(parts_tuple);
    from_list = PyList_New(1);
    if (unlikely(!from_list))
        return NULL;
    Py_INCREF(star);
    PyList_SET_ITEM(from_list, 0, star);
    module = __Pyx_Import(name, from_list, 0);
    Py_DECREF(from_list);
    return module;
#else
    PyObject *imported_module;
    PyObject *module = __Pyx_Import(name, NULL, 0);
    if (!parts_tuple || unlikely(!module))
        return module;
    imported_module = __Pyx__ImportDottedModule_Lookup(name);
    if (likely(imported_module)) {
        Py_DECREF(module);
        return imported_module;
    }
    PyErr_Clear();
    return __Pyx_ImportDottedModule_WalkParts(module, name, parts_tuple);
#endif
}
static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030400B1
    PyObject *module = __Pyx__ImportDottedModule_Lookup(name);
    if (likely(module)) {
        PyObject *spec = __Pyx_PyObject_GetAttrStrNoError(module, __pyx_n_s_spec);
        if (likely(spec)) {
            PyObject *unsafe = __Pyx_PyObject_GetAttrStrNoError(spec, __pyx_n_s_initializing);
            if (likely(!unsafe || !__Pyx_PyObject_IsTrue(unsafe))) {
                Py_DECREF(spec);
                spec = NULL;
            }
            Py_XDECREF(unsafe);
        }
        if (likely(!spec)) {
            PyErr_Clear();
            return module;
        }
        Py_DECREF(spec);
        Py_DECREF(module);
    } else if (PyErr_Occurred()) {
        PyErr_Clear();
    }
#endif
    return __Pyx__ImportDottedModule(name, parts_tuple);
}

/* PyObjectSetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_setattro))
        return tp->tp_setattro(obj, attr_name, value);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_setattr))
        return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
#endif
    return PyObject_SetAttr(obj, attr_name, value);
}
#endif

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_TrueDivideObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long a = PyInt_AS_LONG(op1);
        
            if (8 * sizeof(long) <= 53 || likely(labs(a) <= ((PY_LONG_LONG)1 << 53))) {
                return PyFloat_FromDouble((double)a / (double)b);
            }
            return PyInt_Type.tp_as_number->nb_true_divide(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
        if (unlikely(__Pyx_PyLong_IsZero(op1))) {
        }
        if (likely(__Pyx_PyLong_IsCompact(op1))) {
            a = __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT && 1 * PyLong_SHIFT < 53) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT && 1 * PyLong_SHIFT < 53) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT && 2 * PyLong_SHIFT < 53) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT && 2 * PyLong_SHIFT < 53) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT && 3 * PyLong_SHIFT < 53) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT && 3 * PyLong_SHIFT < 53) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_true_divide(op1, op2);
            }
        }
                if ((8 * sizeof(long) <= 53 || likely(labs(a) <= ((PY_LONG_LONG)1 << 53)))
                        || __Pyx_PyLong_DigitCount(op1) <= 52 / PyLong_SHIFT) {
                    return PyFloat_FromDouble((double)a / (double)b);
                }
                return PyLong_Type.tp_as_number->nb_true_divide(op1, op2);
            return PyLong_FromLong(x);
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double a = __pyx_PyFloat_AsDouble(op1);
#else
        double a = PyFloat_AS_DOUBLE(op1);
#endif
            double result;
            
            PyFPE_START_PROTECT("divide", return NULL)
            result = ((double)a) / (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceTrueDivide : PyNumber_TrueDivide)(op1, op2);
}
#endif

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_MultiplyObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long a = PyInt_AS_LONG(op1);
        
#ifdef HAVE_LONG_LONG
            if (sizeof(PY_LONG_LONG) > sizeof(long)) {
                PY_LONG_LONG result = (PY_LONG_LONG)a * (PY_LONG_LONG)b;
                return (result >= LONG_MIN && result <= LONG_MAX) ?
                    PyInt_FromLong((long)result) : PyLong_FromLongLong(result);
            }
#endif
#if CYTHON_USE_TYPE_SLOTS
            return PyInt_Type.tp_as_number->nb_multiply(op1, op2);
#else
            return PyNumber_Multiply(op1, op2);
#endif
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        if (unlikely(__Pyx_PyLong_IsZero(op1))) {
            return __Pyx_NewRef(op1);
        }
        if (likely(__Pyx_PyLong_IsCompact(op1))) {
            a = __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_multiply(op1, op2);
            }
        }
                CYTHON_UNUSED_VAR(a);
                CYTHON_UNUSED_VAR(b);
                #ifdef HAVE_LONG_LONG
                lla = a;
                goto long_long;
                #else
                return PyLong_Type.tp_as_number->nb_multiply(op1, op2);
                #endif
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla * llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double a = __pyx_PyFloat_AsDouble(op1);
#else
        double a = PyFloat_AS_DOUBLE(op1);
#endif
            double result;
            
            PyFPE_START_PROTECT("multiply", return NULL)
            result = ((double)a) * (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceMultiply : PyNumber_Multiply)(op1, op2);
}
#endif

/* SwapException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_value = exc_info->exc_value;
    exc_info->exc_value = *value;
    if (tmp_value == NULL || tmp_value == Py_None) {
        Py_XDECREF(tmp_value);
        tmp_value = NULL;
        tmp_type = NULL;
        tmp_tb = NULL;
    } else {
        tmp_type = (PyObject*) Py_TYPE(tmp_value);
        Py_INCREF(tmp_type);
        #if CYTHON_COMPILING_IN_CPYTHON
        tmp_tb = ((PyBaseExceptionObject*) tmp_value)->traceback;
        Py_XINCREF(tmp_tb);
        #else
        tmp_tb = PyException_GetTraceback(tmp_value);
        #endif
    }
  #elif CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = *type;
    exc_info->exc_value = *value;
    exc_info->exc_traceback = *tb;
  #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = *type;
    tstate->exc_value = *value;
    tstate->exc_traceback = *tb;
  #endif
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
    PyErr_SetExcInfo(*type, *value, *tb);
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#endif

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long x;
        long a = PyInt_AS_LONG(op1);
        
            x = (long)((unsigned long)a - (unsigned long)b);
            if (likely((x^a) >= 0 || (x^~b) >= 0))
                return PyInt_FromLong(x);
            return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        if (unlikely(__Pyx_PyLong_IsZero(op1))) {
            return PyLong_FromLong(-intval);
        }
        if (likely(__Pyx_PyLong_IsCompact(op1))) {
            a = __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
            }
        }
                x = a - b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla - llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double a = __pyx_PyFloat_AsDouble(op1);
#else
        double a = PyFloat_AS_DOUBLE(op1);
#endif
            double result;
            
            PyFPE_START_PROTECT("subtract", return NULL)
            result = ((double)a) - (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2);
}
#endif

/* FastTypeChecks */
#if CYTHON_COMPILING_IN_CPYTHON
static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
    while (a) {
        a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*);
        if (a == b)
            return 1;
    }
    return b == &PyBaseObject_Type;
}
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (a == b) return 1;
    mro = a->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(a, b);
}
static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (cls == a || cls == b) return 1;
    mro = cls->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            PyObject *base = PyTuple_GET_ITEM(mro, i);
            if (base == (PyObject *)a || base == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b);
}
#if PY_MAJOR_VERSION == 2
static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
    PyObject *exception, *value, *tb;
    int res;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&exception, &value, &tb);
    res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
    if (unlikely(res == -1)) {
        PyErr_WriteUnraisable(err);
        res = 0;
    }
    if (!res) {
        res = PyObject_IsSubclass(err, exc_type2);
        if (unlikely(res == -1)) {
            PyErr_WriteUnraisable(err);
            res = 0;
        }
    }
    __Pyx_ErrRestore(exception, value, tb);
    return res;
}
#else
static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
    if (exc_type1) {
        return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2);
    } else {
        return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
    }
}
#endif
static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    assert(PyExceptionClass_Check(exc_type));
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        PyObject *t = PyTuple_GET_ITEM(tuple, i);
        #if PY_MAJOR_VERSION < 3
        if (likely(exc_type == t)) return 1;
        #endif
        if (likely(PyExceptionClass_Check(t))) {
            if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
        } else {
        }
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
    if (likely(err == exc_type)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        if (likely(PyExceptionClass_Check(exc_type))) {
            return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
        } else if (likely(PyTuple_Check(exc_type))) {
            return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
        } else {
        }
    }
    return PyErr_GivenExceptionMatches(err, exc_type);
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
    assert(PyExceptionClass_Check(exc_type1));
    assert(PyExceptionClass_Check(exc_type2));
    if (likely(err == exc_type1 || err == exc_type2)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
    }
    return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
}
#endif

/* StopAsyncIteration */
#if PY_VERSION_HEX < 0x030500B1
#if CYTHON_USE_TYPE_SPECS
#error Using async coroutines with type specs requires Python 3.5 or later.
#else
static PyTypeObject __Pyx__PyExc_StopAsyncIteration_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "StopAsyncIteration",
    sizeof(PyBaseExceptionObject),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC,
    PyDoc_STR("Signal the end from iterator.__anext__()."),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
    0,
#endif
};
#endif
#endif
static int __pyx_StopAsyncIteration_init(PyObject *module) {
    CYTHON_UNUSED_VAR(module);
#if PY_VERSION_HEX >= 0x030500B1
    __Pyx_PyExc_StopAsyncIteration = PyExc_StopAsyncIteration;
#else
    PyObject *builtins = PyEval_GetBuiltins();
    if (likely(builtins)) {
        PyObject *exc = PyMapping_GetItemString(builtins, (char*) "StopAsyncIteration");
        if (exc) {
            __Pyx_PyExc_StopAsyncIteration = exc;
            return 0;
        }
    }
    PyErr_Clear();
    __Pyx__PyExc_StopAsyncIteration_type.tp_traverse = ((PyTypeObject*)PyExc_BaseException)->tp_traverse;
    __Pyx__PyExc_StopAsyncIteration_type.tp_clear = ((PyTypeObject*)PyExc_BaseException)->tp_clear;
    __Pyx__PyExc_StopAsyncIteration_type.tp_dictoffset = ((PyTypeObject*)PyExc_BaseException)->tp_dictoffset;
    __Pyx__PyExc_StopAsyncIteration_type.tp_base = (PyTypeObject*)PyExc_Exception;
    __Pyx_PyExc_StopAsyncIteration = (PyObject*) __Pyx_FetchCommonType(&__Pyx__PyExc_StopAsyncIteration_type);
    if (unlikely(!__Pyx_PyExc_StopAsyncIteration))
        return -1;
    if (likely(builtins) && unlikely(PyMapping_SetItemString(builtins, (char*) "StopAsyncIteration", __Pyx_PyExc_StopAsyncIteration) < 0))
        return -1;
#endif
    return 0;
}

/* CoroutineBase */
#include <frameobject.h>
#if PY_VERSION_HEX >= 0x030b00a6
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
#define __Pyx_Coroutine_Undelegate(gen) Py_CLEAR((gen)->yieldfrom)
static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *__pyx_tstate, PyObject **pvalue) {
    PyObject *et, *ev, *tb;
    PyObject *value = NULL;
    CYTHON_UNUSED_VAR(__pyx_tstate);
    __Pyx_ErrFetch(&et, &ev, &tb);
    if (!et) {
        Py_XDECREF(tb);
        Py_XDECREF(ev);
        Py_INCREF(Py_None);
        *pvalue = Py_None;
        return 0;
    }
    if (likely(et == PyExc_StopIteration)) {
        if (!ev) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
#if PY_VERSION_HEX >= 0x030300A0
        else if (likely(__Pyx_IS_TYPE(ev, (PyTypeObject*)PyExc_StopIteration))) {
            value = ((PyStopIterationObject *)ev)->value;
            Py_INCREF(value);
            Py_DECREF(ev);
        }
#endif
        else if (unlikely(PyTuple_Check(ev))) {
            if (PyTuple_GET_SIZE(ev) >= 1) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                value = PyTuple_GET_ITEM(ev, 0);
                Py_INCREF(value);
#else
                value = PySequence_ITEM(ev, 0);
#endif
            } else {
                Py_INCREF(Py_None);
                value = Py_None;
            }
            Py_DECREF(ev);
        }
        else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) {
            value = ev;
        }
        if (likely(value)) {
            Py_XDECREF(tb);
            Py_DECREF(et);
            *pvalue = value;
            return 0;
        }
    } else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    PyErr_NormalizeException(&et, &ev, &tb);
    if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    Py_XDECREF(tb);
    Py_DECREF(et);
#if PY_VERSION_HEX >= 0x030300A0
    value = ((PyStopIterationObject *)ev)->value;
    Py_INCREF(value);
    Py_DECREF(ev);
#else
    {
        PyObject* args = __Pyx_PyObject_GetAttrStr(ev, __pyx_n_s_args);
        Py_DECREF(ev);
        if (likely(args)) {
            value = PySequence_GetItem(args, 0);
            Py_DECREF(args);
        }
        if (unlikely(!value)) {
            __Pyx_ErrRestore(NULL, NULL, NULL);
            Py_INCREF(Py_None);
            value = Py_None;
        }
    }
#endif
    *pvalue = value;
    return 0;
}
static CYTHON_INLINE
void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) {
#if PY_VERSION_HEX >= 0x030B00a4
    Py_CLEAR(exc_state->exc_value);
#else
    PyObject *t, *v, *tb;
    t = exc_state->exc_type;
    v = exc_state->exc_value;
    tb = exc_state->exc_traceback;
    exc_state->exc_type = NULL;
    exc_state->exc_value = NULL;
    exc_state->exc_traceback = NULL;
    Py_XDECREF(t);
    Py_XDECREF(v);
    Py_XDECREF(tb);
#endif
}
#define __Pyx_Coroutine_AlreadyRunningError(gen)  (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL)
static void __Pyx__Coroutine_AlreadyRunningError(__pyx_CoroutineObject *gen) {
    const char *msg;
    CYTHON_MAYBE_UNUSED_VAR(gen);
    if ((0)) {
    #ifdef __Pyx_Coroutine_USED
    } else if (__Pyx_Coroutine_Check((PyObject*)gen)) {
        msg = "coroutine already executing";
    #endif
    #ifdef __Pyx_AsyncGen_USED
    } else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) {
        msg = "async generator already executing";
    #endif
    } else {
        msg = "generator already executing";
    }
    PyErr_SetString(PyExc_ValueError, msg);
}
#define __Pyx_Coroutine_NotStartedError(gen)  (__Pyx__Coroutine_NotStartedError(gen), (PyObject*)NULL)
static void __Pyx__Coroutine_NotStartedError(PyObject *gen) {
    const char *msg;
    CYTHON_MAYBE_UNUSED_VAR(gen);
    if ((0)) {
    #ifdef __Pyx_Coroutine_USED
    } else if (__Pyx_Coroutine_Check(gen)) {
        msg = "can't send non-None value to a just-started coroutine";
    #endif
    #ifdef __Pyx_AsyncGen_USED
    } else if (__Pyx_AsyncGen_CheckExact(gen)) {
        msg = "can't send non-None value to a just-started async generator";
    #endif
    } else {
        msg = "can't send non-None value to a just-started generator";
    }
    PyErr_SetString(PyExc_TypeError, msg);
}
#define __Pyx_Coroutine_AlreadyTerminatedError(gen, value, closing)  (__Pyx__Coroutine_AlreadyTerminatedError(gen, value, closing), (PyObject*)NULL)
static void __Pyx__Coroutine_AlreadyTerminatedError(PyObject *gen, PyObject *value, int closing) {
    CYTHON_MAYBE_UNUSED_VAR(gen);
    CYTHON_MAYBE_UNUSED_VAR(closing);
    #ifdef __Pyx_Coroutine_USED
    if (!closing && __Pyx_Coroutine_Check(gen)) {
        PyErr_SetString(PyExc_RuntimeError, "cannot reuse already awaited coroutine");
    } else
    #endif
    if (value) {
        #ifdef __Pyx_AsyncGen_USED
        if (__Pyx_AsyncGen_CheckExact(gen))
            PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration);
        else
        #endif
        PyErr_SetNone(PyExc_StopIteration);
    }
}
static
PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, int closing) {
    __Pyx_PyThreadState_declare
    PyThreadState *tstate;
    __Pyx_ExcInfoStruct *exc_state;
    PyObject *retval;
    assert(!self->is_running);
    if (unlikely(self->resume_label == 0)) {
        if (unlikely(value && value != Py_None)) {
            return __Pyx_Coroutine_NotStartedError((PyObject*)self);
        }
    }
    if (unlikely(self->resume_label == -1)) {
        return __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)self, value, closing);
    }
#if CYTHON_FAST_THREAD_STATE
    __Pyx_PyThreadState_assign
    tstate = __pyx_tstate;
#else
    tstate = __Pyx_PyThreadState_Current;
#endif
    exc_state = &self->gi_exc_state;
    if (exc_state->exc_value) {
        #if CYTHON_COMPILING_IN_PYPY
        #else
        PyObject *exc_tb;
        #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_CPYTHON
        exc_tb = PyException_GetTraceback(exc_state->exc_value);
        #elif PY_VERSION_HEX >= 0x030B00a4
        exc_tb = ((PyBaseExceptionObject*) exc_state->exc_value)->traceback;
        #else
        exc_tb = exc_state->exc_traceback;
        #endif
        if (exc_tb) {
            PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
            PyFrameObject *f = tb->tb_frame;
            assert(f->f_back == NULL);
            #if PY_VERSION_HEX >= 0x030B00A1
            f->f_back = PyThreadState_GetFrame(tstate);
            #else
            Py_XINCREF(tstate->frame);
            f->f_back = tstate->frame;
            #endif
            #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_CPYTHON
            Py_DECREF(exc_tb);
            #endif
        }
        #endif
    }
#if CYTHON_USE_EXC_INFO_STACK
    exc_state->previous_item = tstate->exc_info;
    tstate->exc_info = exc_state;
#else
    if (exc_state->exc_type) {
        __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    } else {
        __Pyx_Coroutine_ExceptionClear(exc_state);
        __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    }
#endif
    self->is_running = 1;
    retval = self->body(self, tstate, value);
    self->is_running = 0;
#if CYTHON_USE_EXC_INFO_STACK
    exc_state = &self->gi_exc_state;
    tstate->exc_info = exc_state->previous_item;
    exc_state->previous_item = NULL;
    __Pyx_Coroutine_ResetFrameBackpointer(exc_state);
#endif
    return retval;
}
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) {
#if CYTHON_COMPILING_IN_PYPY
    CYTHON_UNUSED_VAR(exc_state);
#else
    PyObject *exc_tb;
    #if PY_VERSION_HEX >= 0x030B00a4
    if (!exc_state->exc_value) return;
    exc_tb = PyException_GetTraceback(exc_state->exc_value);
    #else
    exc_tb = exc_state->exc_traceback;
    #endif
    if (likely(exc_tb)) {
        PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
        PyFrameObject *f = tb->tb_frame;
        Py_CLEAR(f->f_back);
        #if PY_VERSION_HEX >= 0x030B00a4
        Py_DECREF(exc_tb);
        #endif
    }
#endif
}
static CYTHON_INLINE
PyObject *__Pyx_Coroutine_MethodReturn(PyObject* gen, PyObject *retval) {
    CYTHON_MAYBE_UNUSED_VAR(gen);
    if (unlikely(!retval)) {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        if (!__Pyx_PyErr_Occurred()) {
            PyObject *exc = PyExc_StopIteration;
            #ifdef __Pyx_AsyncGen_USED
            if (__Pyx_AsyncGen_CheckExact(gen))
                exc = __Pyx_PyExc_StopAsyncIteration;
            #endif
            __Pyx_PyErr_SetNone(exc);
        }
    }
    return retval;
}
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
static CYTHON_INLINE
PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) {
#if PY_VERSION_HEX <= 0x030A00A1
    return _PyGen_Send(gen, arg);
#else
    PyObject *result;
    if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) {
        if (PyAsyncGen_CheckExact(gen)) {
            assert(result == Py_None);
            PyErr_SetNone(PyExc_StopAsyncIteration);
        }
        else if (result == Py_None) {
            PyErr_SetNone(PyExc_StopIteration);
        }
        else {
#if PY_VERSION_HEX < 0x030d00A1
            _PyGen_SetStopIterationValue(result);
#else
            if (!PyTuple_Check(result) && !PyExceptionInstance_Check(result)) {
                PyErr_SetObject(PyExc_StopIteration, result);
            } else {
                PyObject *exc = __Pyx_PyObject_CallOneArg(PyExc_StopIteration, result);
                if (likely(exc != NULL)) {
                    PyErr_SetObject(PyExc_StopIteration, exc);
                    Py_DECREF(exc);
                }
            }
#endif
        }
        Py_DECREF(result);
        result = NULL;
    }
    return result;
#endif
}
#endif
static CYTHON_INLINE
PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) {
    PyObject *ret;
    PyObject *val = NULL;
    __Pyx_Coroutine_Undelegate(gen);
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val);
    ret = __Pyx_Coroutine_SendEx(gen, val, 0);
    Py_XDECREF(val);
    return ret;
}
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
    PyObject *retval;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        gen->is_running = 1;
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_Check(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_AsyncGen_USED
        if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
            ret = __Pyx_async_gen_asend_send(yf, value);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyGen_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyCoro_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        #endif
        {
            if (value == Py_None)
                ret = __Pyx_PyObject_GetIterNextFunc(yf)(yf);
            else
                ret = __Pyx_PyObject_CallMethod1(yf, __pyx_n_s_send, value);
        }
        gen->is_running = 0;
        if (likely(ret)) {
            return ret;
        }
        retval = __Pyx_Coroutine_FinishDelegation(gen);
    } else {
        retval = __Pyx_Coroutine_SendEx(gen, value, 0);
    }
    return __Pyx_Coroutine_MethodReturn(self, retval);
}
static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) {
    PyObject *retval = NULL;
    int err = 0;
    #ifdef __Pyx_Generator_USED
    if (__Pyx_Generator_CheckExact(yf)) {
        retval = __Pyx_Coroutine_Close(yf);
        if (!retval)
            return -1;
    } else
    #endif
    #ifdef __Pyx_Coroutine_USED
    if (__Pyx_Coroutine_Check(yf)) {
        retval = __Pyx_Coroutine_Close(yf);
        if (!retval)
            return -1;
    } else
    if (__Pyx_CoroutineAwait_CheckExact(yf)) {
        retval = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf, NULL);
        if (!retval)
            return -1;
    } else
    #endif
    #ifdef __Pyx_AsyncGen_USED
    if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
        retval = __Pyx_async_gen_asend_close(yf, NULL);
    } else
    if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) {
        retval = __Pyx_async_gen_athrow_close(yf, NULL);
    } else
    #endif
    {
        PyObject *meth;
        gen->is_running = 1;
        meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_n_s_close);
        if (unlikely(!meth)) {
            if (unlikely(PyErr_Occurred())) {
                PyErr_WriteUnraisable(yf);
            }
        } else {
            retval = __Pyx_PyObject_CallNoArg(meth);
            Py_DECREF(meth);
            if (unlikely(!retval))
                err = -1;
        }
        gen->is_running = 0;
    }
    Py_XDECREF(retval);
    return err;
}
static PyObject *__Pyx_Generator_Next(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        gen->is_running = 1;
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Generator_Next(yf);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyGen_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_Check(yf)) {
            ret = __Pyx_Coroutine_Send(yf, Py_None);
        } else
        #endif
            ret = __Pyx_PyObject_GetIterNextFunc(yf)(yf);
        gen->is_running = 0;
        if (likely(ret)) {
            return ret;
        }
        return __Pyx_Coroutine_FinishDelegation(gen);
    }
    return __Pyx_Coroutine_SendEx(gen, Py_None, 0);
}
static PyObject *__Pyx_Coroutine_Close_Method(PyObject *self, PyObject *arg) {
    CYTHON_UNUSED_VAR(arg);
    return __Pyx_Coroutine_Close(self);
}
static PyObject *__Pyx_Coroutine_Close(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject *retval, *raised_exception;
    PyObject *yf = gen->yieldfrom;
    int err = 0;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        Py_INCREF(yf);
        err = __Pyx_Coroutine_CloseIter(gen, yf);
        __Pyx_Coroutine_Undelegate(gen);
        Py_DECREF(yf);
    }
    if (err == 0)
        PyErr_SetNone(PyExc_GeneratorExit);
    retval = __Pyx_Coroutine_SendEx(gen, NULL, 1);
    if (unlikely(retval)) {
        const char *msg;
        Py_DECREF(retval);
        if ((0)) {
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_Coroutine_Check(self)) {
            msg = "coroutine ignored GeneratorExit";
        #endif
        #ifdef __Pyx_AsyncGen_USED
        } else if (__Pyx_AsyncGen_CheckExact(self)) {
#if PY_VERSION_HEX < 0x03060000
            msg = "async generator ignored GeneratorExit - might require Python 3.6+ finalisation (PEP 525)";
#else
            msg = "async generator ignored GeneratorExit";
#endif
        #endif
        } else {
            msg = "generator ignored GeneratorExit";
        }
        PyErr_SetString(PyExc_RuntimeError, msg);
        return NULL;
    }
    raised_exception = PyErr_Occurred();
    if (likely(!raised_exception || __Pyx_PyErr_GivenExceptionMatches2(raised_exception, PyExc_GeneratorExit, PyExc_StopIteration))) {
        if (raised_exception) PyErr_Clear();
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
}
static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject *val, PyObject *tb,
                                        PyObject *args, int close_on_genexit) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        Py_INCREF(yf);
        if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) {
            int err = __Pyx_Coroutine_CloseIter(gen, yf);
            Py_DECREF(yf);
            __Pyx_Coroutine_Undelegate(gen);
            if (err < 0)
                return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0));
            goto throw_here;
        }
        gen->is_running = 1;
        if (0
        #ifdef __Pyx_Generator_USED
            || __Pyx_Generator_CheckExact(yf)
        #endif
        #ifdef __Pyx_Coroutine_USED
            || __Pyx_Coroutine_Check(yf)
        #endif
            ) {
            ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit);
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_CoroutineAwait_CheckExact(yf)) {
            ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit);
        #endif
        } else {
            PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_n_s_throw);
            if (unlikely(!meth)) {
                Py_DECREF(yf);
                if (unlikely(PyErr_Occurred())) {
                    gen->is_running = 0;
                    return NULL;
                }
                __Pyx_Coroutine_Undelegate(gen);
                gen->is_running = 0;
                goto throw_here;
            }
            if (likely(args)) {
                ret = __Pyx_PyObject_Call(meth, args, NULL);
            } else {
                PyObject *cargs[4] = {NULL, typ, val, tb};
                ret = __Pyx_PyObject_FastCall(meth, cargs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
            }
            Py_DECREF(meth);
        }
        gen->is_running = 0;
        Py_DECREF(yf);
        if (!ret) {
            ret = __Pyx_Coroutine_FinishDelegation(gen);
        }
        return __Pyx_Coroutine_MethodReturn(self, ret);
    }
throw_here:
    __Pyx_Raise(typ, val, tb, NULL);
    return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0));
}
static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) {
    PyObject *typ;
    PyObject *val = NULL;
    PyObject *tb = NULL;
    if (unlikely(!PyArg_UnpackTuple(args, (char *)"throw", 1, 3, &typ, &val, &tb)))
        return NULL;
    return __Pyx__Coroutine_Throw(self, typ, val, tb, args, 1);
}
static CYTHON_INLINE int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit, void *arg) {
#if PY_VERSION_HEX >= 0x030B00a4
    Py_VISIT(exc_state->exc_value);
#else
    Py_VISIT(exc_state->exc_type);
    Py_VISIT(exc_state->exc_value);
    Py_VISIT(exc_state->exc_traceback);
#endif
    return 0;
}
static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit, void *arg) {
    Py_VISIT(gen->closure);
    Py_VISIT(gen->classobj);
    Py_VISIT(gen->yieldfrom);
    return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg);
}
static int __Pyx_Coroutine_clear(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    Py_CLEAR(gen->closure);
    Py_CLEAR(gen->classobj);
    Py_CLEAR(gen->yieldfrom);
    __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer);
    }
#endif
    Py_CLEAR(gen->gi_code);
    Py_CLEAR(gen->gi_frame);
    Py_CLEAR(gen->gi_name);
    Py_CLEAR(gen->gi_qualname);
    Py_CLEAR(gen->gi_modulename);
    return 0;
}
static void __Pyx_Coroutine_dealloc(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject_GC_UnTrack(gen);
    if (gen->gi_weakreflist != NULL)
        PyObject_ClearWeakRefs(self);
    if (gen->resume_label >= 0) {
        PyObject_GC_Track(self);
#if PY_VERSION_HEX >= 0x030400a1 && CYTHON_USE_TP_FINALIZE
        if (unlikely(PyObject_CallFinalizerFromDealloc(self)))
#else
        Py_TYPE(gen)->tp_del(self);
        if (unlikely(Py_REFCNT(self) > 0))
#endif
        {
            return;
        }
        PyObject_GC_UnTrack(self);
    }
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        /* We have to handle this case for asynchronous generators
           right here, because this code has to be between UNTRACK
           and GC_Del. */
        Py_CLEAR(((__pyx_PyAsyncGenObject*)self)->ag_finalizer);
    }
#endif
    __Pyx_Coroutine_clear(self);
    __Pyx_PyHeapTypeObject_GC_Del(gen);
}
static void __Pyx_Coroutine_del(PyObject *self) {
    PyObject *error_type, *error_value, *error_traceback;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    __Pyx_PyThreadState_declare
    if (gen->resume_label < 0) {
        return;
    }
#if !CYTHON_USE_TP_FINALIZE
    assert(self->ob_refcnt == 0);
    __Pyx_SET_REFCNT(self, 1);
#endif
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&error_type, &error_value, &error_traceback);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)self;
        PyObject *finalizer = agen->ag_finalizer;
        if (finalizer && !agen->ag_closed) {
            PyObject *res = __Pyx_PyObject_CallOneArg(finalizer, self);
            if (unlikely(!res)) {
                PyErr_WriteUnraisable(self);
            } else {
                Py_DECREF(res);
            }
            __Pyx_ErrRestore(error_type, error_value, error_traceback);
            return;
        }
    }
#endif
    if (unlikely(gen->resume_label == 0 && !error_value)) {
#ifdef __Pyx_Coroutine_USED
#ifdef __Pyx_Generator_USED
    if (!__Pyx_Generator_CheckExact(self))
#endif
        {
        PyObject_GC_UnTrack(self);
#if PY_MAJOR_VERSION >= 3  || defined(PyErr_WarnFormat)
        if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1, "coroutine '%.50S' was never awaited", gen->gi_qualname) < 0))
            PyErr_WriteUnraisable(self);
#else
        {PyObject *msg;
        char *cmsg;
        #if CYTHON_COMPILING_IN_PYPY
        msg = NULL;
        cmsg = (char*) "coroutine was never awaited";
        #else
        char *cname;
        PyObject *qualname;
        qualname = gen->gi_qualname;
        cname = PyString_AS_STRING(qualname);
        msg = PyString_FromFormat("coroutine '%.50s' was never awaited", cname);
        if (unlikely(!msg)) {
            PyErr_Clear();
            cmsg = (char*) "coroutine was never awaited";
        } else {
            cmsg = PyString_AS_STRING(msg);
        }
        #endif
        if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, cmsg, 1) < 0))
            PyErr_WriteUnraisable(self);
        Py_XDECREF(msg);}
#endif
        PyObject_GC_Track(self);
        }
#endif
    } else {
        PyObject *res = __Pyx_Coroutine_Close(self);
        if (unlikely(!res)) {
            if (PyErr_Occurred())
                PyErr_WriteUnraisable(self);
        } else {
            Py_DECREF(res);
        }
    }
    __Pyx_ErrRestore(error_type, error_value, error_traceback);
#if !CYTHON_USE_TP_FINALIZE
    assert(Py_REFCNT(self) > 0);
    if (likely(--self->ob_refcnt == 0)) {
        return;
    }
    {
        Py_ssize_t refcnt = Py_REFCNT(self);
        _Py_NewReference(self);
        __Pyx_SET_REFCNT(self, refcnt);
    }
#if CYTHON_COMPILING_IN_CPYTHON
    assert(PyType_IS_GC(Py_TYPE(self)) &&
           _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED);
    _Py_DEC_REFTOTAL;
#endif
#ifdef COUNT_ALLOCS
    --Py_TYPE(self)->tp_frees;
    --Py_TYPE(self)->tp_allocs;
#endif
#endif
}
static PyObject *
__Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, void *context)
{
    PyObject *name = self->gi_name;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(self->gi_name, value);
    return 0;
}
static PyObject *
__Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, void *context)
{
    PyObject *name = self->gi_qualname;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(self->gi_qualname, value);
    return 0;
}
static PyObject *
__Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, void *context)
{
    PyObject *frame = self->gi_frame;
    CYTHON_UNUSED_VAR(context);
    if (!frame) {
        if (unlikely(!self->gi_code)) {
            Py_RETURN_NONE;
        }
        frame = (PyObject *) PyFrame_New(
            PyThreadState_Get(),            /*PyThreadState *tstate,*/
            (PyCodeObject*) self->gi_code,  /*PyCodeObject *code,*/
            __pyx_d,                 /*PyObject *globals,*/
            0                               /*PyObject *locals*/
        );
        if (unlikely(!frame))
            return NULL;
        self->gi_frame = frame;
    }
    Py_INCREF(frame);
    return frame;
}
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
            PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type);
    if (unlikely(!gen))
        return NULL;
    return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name);
}
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    gen->body = body;
    gen->closure = closure;
    Py_XINCREF(closure);
    gen->is_running = 0;
    gen->resume_label = 0;
    gen->classobj = NULL;
    gen->yieldfrom = NULL;
    #if PY_VERSION_HEX >= 0x030B00a4
    gen->gi_exc_state.exc_value = NULL;
    #else
    gen->gi_exc_state.exc_type = NULL;
    gen->gi_exc_state.exc_value = NULL;
    gen->gi_exc_state.exc_traceback = NULL;
    #endif
#if CYTHON_USE_EXC_INFO_STACK
    gen->gi_exc_state.previous_item = NULL;
#endif
    gen->gi_weakreflist = NULL;
    Py_XINCREF(qualname);
    gen->gi_qualname = qualname;
    Py_XINCREF(name);
    gen->gi_name = name;
    Py_XINCREF(module_name);
    gen->gi_modulename = module_name;
    Py_XINCREF(code);
    gen->gi_code = code;
    gen->gi_frame = NULL;
    PyObject_GC_Track(gen);
    return gen;
}

/* PyObject_GenericGetAttrNoDict */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) {
    __Pyx_TypeName type_name = __Pyx_PyType_GetName(tp);
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'",
                 type_name, attr_name);
#else
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'",
                 type_name, PyString_AS_STRING(attr_name));
#endif
    __Pyx_DECREF_TypeName(type_name);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) {
    PyObject *descr;
    PyTypeObject *tp = Py_TYPE(obj);
    if (unlikely(!PyString_Check(attr_name))) {
        return PyObject_GenericGetAttr(obj, attr_name);
    }
    assert(!tp->tp_dictoffset);
    descr = _PyType_Lookup(tp, attr_name);
    if (unlikely(!descr)) {
        return __Pyx_RaiseGenericGetAttributeError(tp, attr_name);
    }
    Py_INCREF(descr);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS)))
    #endif
    {
        descrgetfunc f = Py_TYPE(descr)->tp_descr_get;
        if (unlikely(f)) {
            PyObject *res = f(descr, obj, (PyObject *)tp);
            Py_DECREF(descr);
            return res;
        }
    }
    return descr;
}
#endif

/* PatchModuleWithCoroutine */
static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) {
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
    int result;
    PyObject *globals, *result_obj;
    globals = PyDict_New();  if (unlikely(!globals)) goto ignore;
    result = PyDict_SetItemString(globals, "_cython_coroutine_type",
    #ifdef __Pyx_Coroutine_USED
        (PyObject*)__pyx_CoroutineType);
    #else
        Py_None);
    #endif
    if (unlikely(result < 0)) goto ignore;
    result = PyDict_SetItemString(globals, "_cython_generator_type",
    #ifdef __Pyx_Generator_USED
        (PyObject*)__pyx_GeneratorType);
    #else
        Py_None);
    #endif
    if (unlikely(result < 0)) goto ignore;
    if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)) goto ignore;
    if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)) goto ignore;
    result_obj = PyRun_String(py_code, Py_file_input, globals, globals);
    if (unlikely(!result_obj)) goto ignore;
    Py_DECREF(result_obj);
    Py_DECREF(globals);
    return module;
ignore:
    Py_XDECREF(globals);
    PyErr_WriteUnraisable(module);
    if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)) {
        Py_DECREF(module);
        module = NULL;
    }
#else
    py_code++;
#endif
    return module;
}

/* PatchGeneratorABC */
#ifndef CYTHON_REGISTER_ABCS
#define CYTHON_REGISTER_ABCS 1
#endif
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
static PyObject* __Pyx_patch_abc_module(PyObject *module);
static PyObject* __Pyx_patch_abc_module(PyObject *module) {
    module = __Pyx_Coroutine_patch_module(
        module, ""
"if _cython_generator_type is not None:\n"
"    try: Generator = _module.Generator\n"
"    except AttributeError: pass\n"
"    else: Generator.register(_cython_generator_type)\n"
"if _cython_coroutine_type is not None:\n"
"    try: Coroutine = _module.Coroutine\n"
"    except AttributeError: pass\n"
"    else: Coroutine.register(_cython_coroutine_type)\n"
    );
    return module;
}
#endif
static int __Pyx_patch_abc(void) {
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
    static int abc_patched = 0;
    if (CYTHON_REGISTER_ABCS && !abc_patched) {
        PyObject *module;
        module = PyImport_ImportModule((PY_MAJOR_VERSION >= 3) ? "collections.abc" : "collections");
        if (unlikely(!module)) {
            PyErr_WriteUnraisable(NULL);
            if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning,
                    ((PY_MAJOR_VERSION >= 3) ?
                        "Cython module failed to register with collections.abc module" :
                        "Cython module failed to register with collections module"), 1) < 0)) {
                return -1;
            }
        } else {
            module = __Pyx_patch_abc_module(module);
            abc_patched = 1;
            if (unlikely(!module))
                return -1;
            Py_DECREF(module);
        }
        module = PyImport_ImportModule("backports_abc");
        if (module) {
            module = __Pyx_patch_abc_module(module);
            Py_XDECREF(module);
        }
        if (!module) {
            PyErr_Clear();
        }
    }
#else
    if ((0)) __Pyx_Coroutine_patch_module(NULL, NULL);
#endif
    return 0;
}

/* Coroutine */
static void __Pyx_CoroutineAwait_dealloc(PyObject *self) {
    PyObject_GC_UnTrack(self);
    Py_CLEAR(((__pyx_CoroutineAwaitObject*)self)->coroutine);
    __Pyx_PyHeapTypeObject_GC_Del(self);
}
static int __Pyx_CoroutineAwait_traverse(__pyx_CoroutineAwaitObject *self, visitproc visit, void *arg) {
    Py_VISIT(self->coroutine);
    return 0;
}
static int __Pyx_CoroutineAwait_clear(__pyx_CoroutineAwaitObject *self) {
    Py_CLEAR(self->coroutine);
    return 0;
}
static PyObject *__Pyx_CoroutineAwait_Next(__pyx_CoroutineAwaitObject *self) {
    return __Pyx_Generator_Next(self->coroutine);
}
static PyObject *__Pyx_CoroutineAwait_Send(__pyx_CoroutineAwaitObject *self, PyObject *value) {
    return __Pyx_Coroutine_Send(self->coroutine, value);
}
static PyObject *__Pyx_CoroutineAwait_Throw(__pyx_CoroutineAwaitObject *self, PyObject *args) {
    return __Pyx_Coroutine_Throw(self->coroutine, args);
}
static PyObject *__Pyx_CoroutineAwait_Close(__pyx_CoroutineAwaitObject *self, PyObject *arg) {
    CYTHON_UNUSED_VAR(arg);
    return __Pyx_Coroutine_Close(self->coroutine);
}
static PyObject *__Pyx_CoroutineAwait_self(PyObject *self) {
    Py_INCREF(self);
    return self;
}
#if !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_CoroutineAwait_no_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) {
    CYTHON_UNUSED_VAR(type);
    CYTHON_UNUSED_VAR(args);
    CYTHON_UNUSED_VAR(kwargs);
    PyErr_SetString(PyExc_TypeError, "cannot instantiate type, use 'await coroutine' instead");
    return NULL;
}
#endif
static PyObject *__Pyx_CoroutineAwait_reduce_ex(__pyx_CoroutineAwaitObject *self, PyObject *arg) {
    CYTHON_UNUSED_VAR(arg);
    PyErr_Format(PyExc_TypeError, "cannot pickle '%.200s' object",
                         Py_TYPE(self)->tp_name);
    return NULL;
}
static PyMethodDef __pyx_CoroutineAwait_methods[] = {
    {"send", (PyCFunction) __Pyx_CoroutineAwait_Send, METH_O,
     (char*) PyDoc_STR("send(arg) -> send 'arg' into coroutine,\nreturn next yielded value or raise StopIteration.")},
    {"throw", (PyCFunction) __Pyx_CoroutineAwait_Throw, METH_VARARGS,
     (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in coroutine,\nreturn next yielded value or raise StopIteration.")},
    {"close", (PyCFunction) __Pyx_CoroutineAwait_Close, METH_NOARGS,
     (char*) PyDoc_STR("close() -> raise GeneratorExit inside coroutine.")},
    {"__reduce_ex__", (PyCFunction) __Pyx_CoroutineAwait_reduce_ex, METH_O, 0},
    {"__reduce__", (PyCFunction) __Pyx_CoroutineAwait_reduce_ex, METH_NOARGS, 0},
    {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_CoroutineAwaitType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_CoroutineAwait_dealloc},
    {Py_tp_traverse, (void *)__Pyx_CoroutineAwait_traverse},
    {Py_tp_clear, (void *)__Pyx_CoroutineAwait_clear},
#if !CYTHON_COMPILING_IN_PYPY
    {Py_tp_new, (void *)__Pyx_CoroutineAwait_no_new},
#endif
    {Py_tp_methods, (void *)__pyx_CoroutineAwait_methods},
    {Py_tp_iter, (void *)__Pyx_CoroutineAwait_self},
    {Py_tp_iternext, (void *)__Pyx_CoroutineAwait_Next},
    {0, 0},
};
static PyType_Spec __pyx_CoroutineAwaitType_spec = {
    __PYX_TYPE_MODULE_PREFIX "coroutine_wrapper",
    sizeof(__pyx_CoroutineAwaitObject),
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    __pyx_CoroutineAwaitType_slots
};
#else
static PyTypeObject __pyx_CoroutineAwaitType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    __PYX_TYPE_MODULE_PREFIX "coroutine_wrapper",
    sizeof(__pyx_CoroutineAwaitObject),
    0,
    (destructor) __Pyx_CoroutineAwait_dealloc,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    PyDoc_STR("A wrapper object implementing __await__ for coroutines."),
    (traverseproc) __Pyx_CoroutineAwait_traverse,
    (inquiry) __Pyx_CoroutineAwait_clear,
    0,
    0,
    __Pyx_CoroutineAwait_self,
    (iternextfunc) __Pyx_CoroutineAwait_Next,
    __pyx_CoroutineAwait_methods,
    0                         ,
    0                      ,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if !CYTHON_COMPILING_IN_PYPY
    __Pyx_CoroutineAwait_no_new,
#else
    0,
#endif
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
    0,
#endif
#if __PYX_NEED_TP_PRINT_SLOT
    0,
#endif
#if PY_VERSION_HEX >= 0x030C0000
    0,
#endif
#if PY_VERSION_HEX >= 0x030d00A4
    0,
#endif
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
    0,
#endif
};
#endif
#if PY_VERSION_HEX < 0x030500B1 || defined(__Pyx_IterableCoroutine_USED) || CYTHON_USE_ASYNC_SLOTS
static CYTHON_INLINE PyObject *__Pyx__Coroutine_await(PyObject *coroutine) {
    __pyx_CoroutineAwaitObject *await = PyObject_GC_New(__pyx_CoroutineAwaitObject, __pyx_CoroutineAwaitType);
    if (unlikely(!await)) return NULL;
    Py_INCREF(coroutine);
    await->coroutine = coroutine;
    PyObject_GC_Track(await);
    return (PyObject*)await;
}
#endif
#if PY_VERSION_HEX < 0x030500B1
static PyObject *__Pyx_Coroutine_await_method(PyObject *coroutine, PyObject *arg) {
    CYTHON_UNUSED_VAR(arg);
    return __Pyx__Coroutine_await(coroutine);
}
#endif
#if defined(__Pyx_IterableCoroutine_USED) || CYTHON_USE_ASYNC_SLOTS
static PyObject *__Pyx_Coroutine_await(PyObject *coroutine) {
    if (unlikely(!coroutine || !__Pyx_Coroutine_Check(coroutine))) {
        PyErr_SetString(PyExc_TypeError, "invalid input, expected coroutine");
        return NULL;
    }
    return __Pyx__Coroutine_await(coroutine);
}
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 && PY_VERSION_HEX < 0x030500B1
static PyObject *__Pyx_Coroutine_compare(PyObject *obj, PyObject *other, int op) {
    PyObject* result;
    switch (op) {
        case Py_EQ: result = (other == obj) ? Py_True : Py_False; break;
        case Py_NE: result = (other != obj) ? Py_True : Py_False; break;
        default:
            result = Py_NotImplemented;
    }
    Py_INCREF(result);
    return result;
}
#endif
static PyMethodDef __pyx_Coroutine_methods[] = {
    {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O,
     (char*) PyDoc_STR("send(arg) -> send 'arg' into coroutine,\nreturn next iterated value or raise StopIteration.")},
    {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS,
     (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in coroutine,\nreturn next iterated value or raise StopIteration.")},
    {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS,
     (char*) PyDoc_STR("close() -> raise GeneratorExit inside coroutine.")},
#if PY_VERSION_HEX < 0x030500B1
    {"__await__", (PyCFunction) __Pyx_Coroutine_await_method, METH_NOARGS,
     (char*) PyDoc_STR("__await__() -> return an iterator to be used in await expression.")},
#endif
    {0, 0, 0, 0}
};
static PyMemberDef __pyx_Coroutine_memberlist[] = {
    {(char *) "cr_running", T_BOOL, offsetof(__pyx_CoroutineObject, is_running), READONLY, NULL},
    {(char*) "cr_await", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY,
     (char*) PyDoc_STR("object being awaited, or None")},
    {(char*) "cr_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL},
    {(char *) "__module__", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_modulename), 0, 0},
#if CYTHON_USE_TYPE_SPECS
    {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CoroutineObject, gi_weakreflist), READONLY, 0},
#endif
    {0, 0, 0, 0, 0}
};
static PyGetSetDef __pyx_Coroutine_getsets[] = {
    {(char *) "__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
     (char*) PyDoc_STR("name of the coroutine"), 0},
    {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
     (char*) PyDoc_STR("qualified name of the coroutine"), 0},
    {(char *) "cr_frame", (getter)__Pyx_Coroutine_get_frame, NULL,
     (char*) PyDoc_STR("Frame of the coroutine"), 0},
    {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_CoroutineType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_Coroutine_dealloc},
    {Py_am_await, (void *)&__Pyx_Coroutine_await},
    {Py_tp_traverse, (void *)__Pyx_Coroutine_traverse},
    {Py_tp_methods, (void *)__pyx_Coroutine_methods},
    {Py_tp_members, (void *)__pyx_Coroutine_memberlist},
    {Py_tp_getset, (void *)__pyx_Coroutine_getsets},
    {Py_tp_getattro, (void *) __Pyx_PyObject_GenericGetAttrNoDict},
#if CYTHON_USE_TP_FINALIZE
    {Py_tp_finalize, (void *)__Pyx_Coroutine_del},
#endif
    {0, 0},
};
static PyType_Spec __pyx_CoroutineType_spec = {
    __PYX_TYPE_MODULE_PREFIX "coroutine",
    sizeof(__pyx_CoroutineObject),
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
    __pyx_CoroutineType_slots
};
#else
#if CYTHON_USE_ASYNC_SLOTS
static __Pyx_PyAsyncMethodsStruct __pyx_Coroutine_as_async = {
    __Pyx_Coroutine_await,
    0,
    0,
#if PY_VERSION_HEX >= 0x030A00A3
    0,
#endif
};
#endif
static PyTypeObject __pyx_CoroutineType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    __PYX_TYPE_MODULE_PREFIX "coroutine",
    sizeof(__pyx_CoroutineObject),
    0,
    (destructor) __Pyx_Coroutine_dealloc,
    0,
    0,
    0,
#if CYTHON_USE_ASYNC_SLOTS
    &__pyx_Coroutine_as_async,
#else
    0,
#endif
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
    0,
    (traverseproc) __Pyx_Coroutine_traverse,
    0,
#if CYTHON_USE_ASYNC_SLOTS && CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 && PY_VERSION_HEX < 0x030500B1
    __Pyx_Coroutine_compare,
#else
    0,
#endif
    offsetof(__pyx_CoroutineObject, gi_weakreflist),
    0,
    0,
    __pyx_Coroutine_methods,
    __pyx_Coroutine_memberlist,
    __pyx_Coroutine_getsets,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if CYTHON_USE_TP_FINALIZE
    0,
#else
    __Pyx_Coroutine_del,
#endif
    0,
#if CYTHON_USE_TP_FINALIZE
    __Pyx_Coroutine_del,
#elif PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
    0,
#endif
#if __PYX_NEED_TP_PRINT_SLOT
    0,
#endif
#if PY_VERSION_HEX >= 0x030C0000
    0,
#endif
#if PY_VERSION_HEX >= 0x030d00A4
    0,
#endif
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
    0,
#endif
};
#endif
static int __pyx_Coroutine_init(PyObject *module) {
    CYTHON_MAYBE_UNUSED_VAR(module);
#if CYTHON_USE_TYPE_SPECS
    __pyx_CoroutineType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CoroutineType_spec, NULL);
#else
    __pyx_CoroutineType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
    __pyx_CoroutineType = __Pyx_FetchCommonType(&__pyx_CoroutineType_type);
#endif
    if (unlikely(!__pyx_CoroutineType))
        return -1;
#ifdef __Pyx_IterableCoroutine_USED
    if (unlikely(__pyx_IterableCoroutine_init(module) == -1))
        return -1;
#endif
#if CYTHON_USE_TYPE_SPECS
    __pyx_CoroutineAwaitType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CoroutineAwaitType_spec, NULL);
#else
    __pyx_CoroutineAwaitType = __Pyx_FetchCommonType(&__pyx_CoroutineAwaitType_type);
#endif
    if (unlikely(!__pyx_CoroutineAwaitType))
        return -1;
    return 0;
}

/* GetAwaitIter */
static CYTHON_INLINE PyObject *__Pyx_Coroutine_GetAwaitableIter(PyObject *o) {
#ifdef __Pyx_Coroutine_USED
    if (__Pyx_Coroutine_Check(o)) {
        return __Pyx_NewRef(o);
    }
#endif
    return __Pyx__Coroutine_GetAwaitableIter(o);
}
static void __Pyx_Coroutine_AwaitableIterError(PyObject *source) {
#if PY_VERSION_HEX >= 0x030600B3 && PY_VERSION_HEX < 0x030d0000 || defined(_PyErr_FormatFromCause)
    __Pyx_TypeName source_type_name = __Pyx_PyType_GetName(Py_TYPE(source));
    _PyErr_FormatFromCause(PyExc_TypeError,
        "'async for' received an invalid object from __anext__: " __Pyx_FMT_TYPENAME, source_type_name);
    __Pyx_DECREF_TypeName(source_type_name);
#elif PY_MAJOR_VERSION >= 3
    PyObject *exc, *val, *val2, *tb;
    __Pyx_TypeName source_type_name = __Pyx_PyType_GetName(Py_TYPE(source));
    assert(PyErr_Occurred());
    PyErr_Fetch(&exc, &val, &tb);
    PyErr_NormalizeException(&exc, &val, &tb);
    if (tb != NULL) {
        PyException_SetTraceback(val, tb);
        Py_DECREF(tb);
    }
    Py_DECREF(exc);
    assert(!PyErr_Occurred());
    PyErr_Format(PyExc_TypeError,
        "'async for' received an invalid object from __anext__: " __Pyx_FMT_TYPENAME, source_type_name);
    __Pyx_DECREF_TypeName(source_type_name);
    PyErr_Fetch(&exc, &val2, &tb);
    PyErr_NormalizeException(&exc, &val2, &tb);
    Py_INCREF(val);
    PyException_SetCause(val2, val);
    PyException_SetContext(val2, val);
    PyErr_Restore(exc, val2, tb);
#else
    CYTHON_UNUSED_VAR(source);
#endif
}
static PyObject *__Pyx__Coroutine_GetAwaitableIter(PyObject *obj) {
    PyObject *res;
#if CYTHON_USE_ASYNC_SLOTS
    __Pyx_PyAsyncMethodsStruct* am = __Pyx_PyType_AsAsync(obj);
    if (likely(am && am->am_await)) {
        res = (*am->am_await)(obj);
    } else
#endif
#if PY_VERSION_HEX >= 0x030500B2 || defined(PyCoro_CheckExact)
    if (PyCoro_CheckExact(obj)) {
        return __Pyx_NewRef(obj);
    } else
#endif
#if CYTHON_COMPILING_IN_CPYTHON && defined(CO_ITERABLE_COROUTINE)
#if PY_VERSION_HEX >= 0x030C00A6
    if (PyGen_CheckExact(obj) && (PyGen_GetCode((PyGenObject*)obj)->co_flags & CO_ITERABLE_COROUTINE)) {
#else
    if (PyGen_CheckExact(obj) && ((PyGenObject*)obj)->gi_code && ((PyCodeObject *)((PyGenObject*)obj)->gi_code)->co_flags & CO_ITERABLE_COROUTINE) {
#endif
        return __Pyx_NewRef(obj);
    } else
#endif
    {
        PyObject *method = NULL;
        int is_method = __Pyx_PyObject_GetMethod(obj, __pyx_n_s_await, &method);
        if (likely(is_method)) {
            res = __Pyx_PyObject_CallOneArg(method, obj);
        } else if (likely(method)) {
            res = __Pyx_PyObject_CallNoArg(method);
        } else
            goto slot_error;
        Py_DECREF(method);
    }
    if (unlikely(!res)) {
        __Pyx_Coroutine_AwaitableIterError(obj);
        goto bad;
    }
    if (unlikely(!PyIter_Check(res))) {
        __Pyx_TypeName res_type_name = __Pyx_PyType_GetName(Py_TYPE(res));
        PyErr_Format(PyExc_TypeError,
            "__await__() returned non-iterator of type '" __Pyx_FMT_TYPENAME "'", res_type_name);
        __Pyx_DECREF_TypeName(res_type_name);
        Py_CLEAR(res);
    } else {
        int is_coroutine = 0;
        #ifdef __Pyx_Coroutine_USED
        is_coroutine |= __Pyx_Coroutine_Check(res);
        #endif
        #if PY_VERSION_HEX >= 0x030500B2 || defined(PyCoro_CheckExact)
        is_coroutine |= PyCoro_CheckExact(res);
        #endif
        if (unlikely(is_coroutine)) {
            /* __await__ must return an *iterator*, not
               a coroutine or another awaitable (see PEP 492) */
            PyErr_SetString(PyExc_TypeError,
                            "__await__() returned a coroutine");
            Py_CLEAR(res);
        }
    }
    return res;
slot_error:
    {
        __Pyx_TypeName obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
        PyErr_Format(PyExc_TypeError,
            "object " __Pyx_FMT_TYPENAME " can't be used in 'await' expression", obj_type_name);
        __Pyx_DECREF_TypeName(obj_type_name);
    }
bad:
    return NULL;
}

/* CoroutineYieldFrom */
  static PyObject* __Pyx__Coroutine_Yield_From_Generic(__pyx_CoroutineObject *gen, PyObject *source) {
    PyObject *retval;
    PyObject *source_gen = __Pyx__Coroutine_GetAwaitableIter(source);
    if (unlikely(!source_gen)) {
        return NULL;
    }
    if (__Pyx_Coroutine_Check(source_gen)) {
        retval = __Pyx_Generator_Next(source_gen);
    } else {
        retval = __Pyx_PyObject_GetIterNextFunc(source_gen)(source_gen);
    }
    if (retval) {
        gen->yieldfrom = source_gen;
        return retval;
    }
    Py_DECREF(source_gen);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_Coroutine_Yield_From(__pyx_CoroutineObject *gen, PyObject *source) {
    PyObject *retval;
    if (__Pyx_Coroutine_Check(source)) {
        if (unlikely(((__pyx_CoroutineObject*)source)->yieldfrom)) {
            PyErr_SetString(
                PyExc_RuntimeError,
                "coroutine is being awaited already");
            return NULL;
        }
        retval = __Pyx_Generator_Next(source);
#ifdef __Pyx_AsyncGen_USED
    } else if (__pyx_PyAsyncGenASend_CheckExact(source)) {
        retval = __Pyx_async_gen_asend_iternext(source);
#endif
    } else {
        return __Pyx__Coroutine_Yield_From_Generic(gen, source);
    }
    if (retval) {
        Py_INCREF(source);
        gen->yieldfrom = source;
    }
    return retval;
}

/* JoinPyUnicode */
  static PyObject* __Pyx_PyUnicode_Join(PyObject* value_tuple, Py_ssize_t value_count, Py_ssize_t result_ulength,
                                      Py_UCS4 max_char) {
#if CYTHON_USE_UNICODE_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    PyObject *result_uval;
    int result_ukind, kind_shift;
    Py_ssize_t i, char_pos;
    void *result_udata;
    CYTHON_MAYBE_UNUSED_VAR(max_char);
#if CYTHON_PEP393_ENABLED
    result_uval = PyUnicode_New(result_ulength, max_char);
    if (unlikely(!result_uval)) return NULL;
    result_ukind = (max_char <= 255) ? PyUnicode_1BYTE_KIND : (max_char <= 65535) ? PyUnicode_2BYTE_KIND : PyUnicode_4BYTE_KIND;
    kind_shift = (result_ukind == PyUnicode_4BYTE_KIND) ? 2 : result_ukind - 1;
    result_udata = PyUnicode_DATA(result_uval);
#else
    result_uval = PyUnicode_FromUnicode(NULL, result_ulength);
    if (unlikely(!result_uval)) return NULL;
    result_ukind = sizeof(Py_UNICODE);
    kind_shift = (result_ukind == 4) ? 2 : result_ukind - 1;
    result_udata = PyUnicode_AS_UNICODE(result_uval);
#endif
    assert(kind_shift == 2 || kind_shift == 1 || kind_shift == 0);
    char_pos = 0;
    for (i=0; i < value_count; i++) {
        int ukind;
        Py_ssize_t ulength;
        void *udata;
        PyObject *uval = PyTuple_GET_ITEM(value_tuple, i);
        if (unlikely(__Pyx_PyUnicode_READY(uval)))
            goto bad;
        ulength = __Pyx_PyUnicode_GET_LENGTH(uval);
        if (unlikely(!ulength))
            continue;
        if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - ulength < char_pos))
            goto overflow;
        ukind = __Pyx_PyUnicode_KIND(uval);
        udata = __Pyx_PyUnicode_DATA(uval);
        if (!CYTHON_PEP393_ENABLED || ukind == result_ukind) {
            memcpy((char *)result_udata + (char_pos << kind_shift), udata, (size_t) (ulength << kind_shift));
        } else {
            #if PY_VERSION_HEX >= 0x030d0000
            if (unlikely(PyUnicode_CopyCharacters(result_uval, char_pos, uval, 0, ulength) < 0)) goto bad;
            #elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030300F0 || defined(_PyUnicode_FastCopyCharacters)
            _PyUnicode_FastCopyCharacters(result_uval, char_pos, uval, 0, ulength);
            #else
            Py_ssize_t j;
            for (j=0; j < ulength; j++) {
                Py_UCS4 uchar = __Pyx_PyUnicode_READ(ukind, udata, j);
                __Pyx_PyUnicode_WRITE(result_ukind, result_udata, char_pos+j, uchar);
            }
            #endif
        }
        char_pos += ulength;
    }
    return result_uval;
overflow:
    PyErr_SetString(PyExc_OverflowError, "join() result is too long for a Python string");
bad:
    Py_DECREF(result_uval);
    return NULL;
#else
    CYTHON_UNUSED_VAR(max_char);
    CYTHON_UNUSED_VAR(result_ulength);
    CYTHON_UNUSED_VAR(value_count);
    return PyUnicode_Join(__pyx_empty_unicode, value_tuple);
#endif
}

/* ErrOccurredWithGIL */
  static CYTHON_INLINE int __Pyx_ErrOccurredWithGIL(void) {
  int err;
  #ifdef WITH_THREAD
  PyGILState_STATE _save = PyGILState_Ensure();
  #endif
  err = !!PyErr_Occurred();
  #ifdef WITH_THREAD
  PyGILState_Release(_save);
  #endif
  return err;
}

/* PyObjectCallMethod0 */
  static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
    PyObject *method = NULL, *result = NULL;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_CallOneArg(method, obj);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) goto bad;
    result = __Pyx_PyObject_CallNoArg(method);
    Py_DECREF(method);
bad:
    return result;
}

/* UnpackTupleError */
  static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {
    if (t == Py_None) {
      __Pyx_RaiseNoneNotIterableError();
    } else if (PyTuple_GET_SIZE(t) < index) {
      __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t));
    } else {
      __Pyx_RaiseTooManyValuesError(index);
    }
}

/* UnpackTuple2 */
  static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
        PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) {
    PyObject *value1 = NULL, *value2 = NULL;
#if CYTHON_COMPILING_IN_PYPY
    value1 = PySequence_ITEM(tuple, 0);  if (unlikely(!value1)) goto bad;
    value2 = PySequence_ITEM(tuple, 1);  if (unlikely(!value2)) goto bad;
#else
    value1 = PyTuple_GET_ITEM(tuple, 0);  Py_INCREF(value1);
    value2 = PyTuple_GET_ITEM(tuple, 1);  Py_INCREF(value2);
#endif
    if (decref_tuple) {
        Py_DECREF(tuple);
    }
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
#if CYTHON_COMPILING_IN_PYPY
bad:
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
#endif
}
static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2,
                                       int has_known_size, int decref_tuple) {
    Py_ssize_t index;
    PyObject *value1 = NULL, *value2 = NULL, *iter = NULL;
    iternextfunc iternext;
    iter = PyObject_GetIter(tuple);
    if (unlikely(!iter)) goto bad;
    if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; }
    iternext = __Pyx_PyObject_GetIterNextFunc(iter);
    value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; }
    value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; }
    if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad;
    Py_DECREF(iter);
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
unpacking_failed:
    if (!has_known_size && __Pyx_IterFinish() == 0)
        __Pyx_RaiseNeedMoreValuesError(index);
bad:
    Py_XDECREF(iter);
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
}

/* dict_iter */
  #if CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
#include <string.h>
#endif
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_source_is_dict) {
    is_dict = is_dict || likely(PyDict_CheckExact(iterable));
    *p_source_is_dict = is_dict;
    if (is_dict) {
#if !CYTHON_COMPILING_IN_PYPY
        *p_orig_length = PyDict_Size(iterable);
        Py_INCREF(iterable);
        return iterable;
#elif PY_MAJOR_VERSION >= 3
        static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL;
        PyObject **pp = NULL;
        if (method_name) {
            const char *name = PyUnicode_AsUTF8(method_name);
            if (strcmp(name, "iteritems") == 0) pp = &py_items;
            else if (strcmp(name, "iterkeys") == 0) pp = &py_keys;
            else if (strcmp(name, "itervalues") == 0) pp = &py_values;
            if (pp) {
                if (!*pp) {
                    *pp = PyUnicode_FromString(name + 4);
                    if (!*pp)
                        return NULL;
                }
                method_name = *pp;
            }
        }
#endif
    }
    *p_orig_length = 0;
    if (method_name) {
        PyObject* iter;
        iterable = __Pyx_PyObject_CallMethod0(iterable, method_name);
        if (!iterable)
            return NULL;
#if !CYTHON_COMPILING_IN_PYPY
        if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable))
            return iterable;
#endif
        iter = PyObject_GetIter(iterable);
        Py_DECREF(iterable);
        return iter;
    }
    return PyObject_GetIter(iterable);
}
static CYTHON_INLINE int __Pyx_dict_iter_next(
        PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,
        PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) {
    PyObject* next_item;
#if !CYTHON_COMPILING_IN_PYPY
    if (source_is_dict) {
        PyObject *key, *value;
        if (unlikely(orig_length != PyDict_Size(iter_obj))) {
            PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration");
            return -1;
        }
        if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) {
            return 0;
        }
        if (pitem) {
            PyObject* tuple = PyTuple_New(2);
            if (unlikely(!tuple)) {
                return -1;
            }
            Py_INCREF(key);
            Py_INCREF(value);
            PyTuple_SET_ITEM(tuple, 0, key);
            PyTuple_SET_ITEM(tuple, 1, value);
            *pitem = tuple;
        } else {
            if (pkey) {
                Py_INCREF(key);
                *pkey = key;
            }
            if (pvalue) {
                Py_INCREF(value);
                *pvalue = value;
            }
        }
        return 1;
    } else if (PyTuple_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0;
        *ppos = pos + 1;
        next_item = PyTuple_GET_ITEM(iter_obj, pos);
        Py_INCREF(next_item);
    } else if (PyList_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0;
        *ppos = pos + 1;
        next_item = PyList_GET_ITEM(iter_obj, pos);
        Py_INCREF(next_item);
    } else
#endif
    {
        next_item = PyIter_Next(iter_obj);
        if (unlikely(!next_item)) {
            return __Pyx_IterFinish();
        }
    }
    if (pitem) {
        *pitem = next_item;
    } else if (pkey && pvalue) {
        if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1))
            return -1;
    } else if (pkey) {
        *pkey = next_item;
    } else {
        *pvalue = next_item;
    }
    return 1;
}

/* dict_getitem_default */
  static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) {
    PyObject* value;
#if PY_MAJOR_VERSION >= 3 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000)
    value = PyDict_GetItemWithError(d, key);
    if (unlikely(!value)) {
        if (unlikely(PyErr_Occurred()))
            return NULL;
        value = default_value;
    }
    Py_INCREF(value);
    if ((1));
#else
    if (PyString_CheckExact(key) || PyUnicode_CheckExact(key) || PyInt_CheckExact(key)) {
        value = PyDict_GetItem(d, key);
        if (unlikely(!value)) {
            value = default_value;
        }
        Py_INCREF(value);
    }
#endif
    else {
        if (default_value == Py_None)
            value = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_get, d, key);
        else
            value = __Pyx_CallUnboundCMethod2(&__pyx_umethod_PyDict_Type_get, d, key, default_value);
    }
    return value;
}

/* ReturnWithStopIteration */
  static void __Pyx__ReturnWithStopIteration(PyObject* value) {
    PyObject *exc, *args;
#if CYTHON_COMPILING_IN_CPYTHON
    __Pyx_PyThreadState_declare
    if (PY_VERSION_HEX >= 0x030C00A6
            || unlikely(PyTuple_Check(value) || PyExceptionInstance_Check(value))) {
        args = PyTuple_New(1);
        if (unlikely(!args)) return;
        Py_INCREF(value);
        PyTuple_SET_ITEM(args, 0, value);
        exc = PyType_Type.tp_call(PyExc_StopIteration, args, NULL);
        Py_DECREF(args);
        if (!exc) return;
    } else {
        Py_INCREF(value);
        exc = value;
    }
    #if CYTHON_FAST_THREAD_STATE
    __Pyx_PyThreadState_assign
    #if CYTHON_USE_EXC_INFO_STACK
    if (!__pyx_tstate->exc_info->exc_value)
    #else
    if (!__pyx_tstate->exc_type)
    #endif
    {
        Py_INCREF(PyExc_StopIteration);
        __Pyx_ErrRestore(PyExc_StopIteration, exc, NULL);
        return;
    }
    #endif
#else
    args = PyTuple_Pack(1, value);
    if (unlikely(!args)) return;
    exc = PyObject_Call(PyExc_StopIteration, args, NULL);
    Py_DECREF(args);
    if (unlikely(!exc)) return;
#endif
    PyErr_SetObject(PyExc_StopIteration, exc);
    Py_DECREF(exc);
}

/* ImportFrom */
  static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
        const char* module_name_str = 0;
        PyObject* module_name = 0;
        PyObject* module_dot = 0;
        PyObject* full_name = 0;
        PyErr_Clear();
        module_name_str = PyModule_GetName(module);
        if (unlikely(!module_name_str)) { goto modbad; }
        module_name = PyUnicode_FromString(module_name_str);
        if (unlikely(!module_name)) { goto modbad; }
        module_dot = PyUnicode_Concat(module_name, __pyx_kp_u__58);
        if (unlikely(!module_dot)) { goto modbad; }
        full_name = PyUnicode_Concat(module_dot, name);
        if (unlikely(!full_name)) { goto modbad; }
        #if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM  < 0x07030400)
        {
            PyObject *modules = PyImport_GetModuleDict();
            if (unlikely(!modules))
                goto modbad;
            value = PyObject_GetItem(modules, full_name);
        }
        #else
        value = PyImport_GetModule(full_name);
        #endif
      modbad:
        Py_XDECREF(full_name);
        Py_XDECREF(module_dot);
        Py_XDECREF(module_name);
    }
    if (unlikely(!value)) {
        PyErr_Format(PyExc_ImportError,
        #if PY_MAJOR_VERSION < 3
            "cannot import name %.230s", PyString_AS_STRING(name));
        #else
            "cannot import name %S", name);
        #endif
    }
    return value;
}

/* ObjectGetItem */
  #if CYTHON_USE_TYPE_SLOTS
static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject *index) {
    PyObject *runerr = NULL;
    Py_ssize_t key_value;
    key_value = __Pyx_PyIndex_AsSsize_t(index);
    if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
        return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
    }
    if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
        __Pyx_TypeName index_type_name = __Pyx_PyType_GetName(Py_TYPE(index));
        PyErr_Clear();
        PyErr_Format(PyExc_IndexError,
            "cannot fit '" __Pyx_FMT_TYPENAME "' into an index-sized integer", index_type_name);
        __Pyx_DECREF_TypeName(index_type_name);
    }
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem_Slow(PyObject *obj, PyObject *key) {
    __Pyx_TypeName obj_type_name;
    if (likely(PyType_Check(obj))) {
        PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(obj, __pyx_n_s_class_getitem);
        if (!meth) {
            PyErr_Clear();
        } else {
            PyObject *result = __Pyx_PyObject_CallOneArg(meth, key);
            Py_DECREF(meth);
            return result;
        }
    }
    obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'" __Pyx_FMT_TYPENAME "' object is not subscriptable", obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) {
    PyTypeObject *tp = Py_TYPE(obj);
    PyMappingMethods *mm = tp->tp_as_mapping;
    PySequenceMethods *sm = tp->tp_as_sequence;
    if (likely(mm && mm->mp_subscript)) {
        return mm->mp_subscript(obj, key);
    }
    if (likely(sm && sm->sq_item)) {
        return __Pyx_PyObject_GetIndex(obj, key);
    }
    return __Pyx_PyObject_GetItem_Slow(obj, key);
}
#endif

/* AsyncIter */
  static PyObject *__Pyx_Coroutine_GetAsyncIter_Generic(PyObject *obj) {
    __Pyx_TypeName obj_type_name;
#if PY_VERSION_HEX < 0x030500B1
    {
        PyObject *iter = __Pyx_PyObject_CallMethod0(obj, __pyx_n_s_aiter);
        if (likely(iter))
            return iter;
        if (!PyErr_ExceptionMatches(PyExc_AttributeError))
            return NULL;
    }
#else
    (void)&__Pyx_PyObject_CallMethod0;
#endif
    obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
                 "'async for' requires an object with __aiter__ method, got " __Pyx_FMT_TYPENAME, obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_Coroutine_GetAsyncIter(PyObject *obj) {
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(obj)) {
        return __Pyx_NewRef(obj);
    }
#endif
#if CYTHON_USE_ASYNC_SLOTS
    {
        __Pyx_PyAsyncMethodsStruct* am = __Pyx_PyType_AsAsync(obj);
        if (likely(am && am->am_aiter)) {
            return (*am->am_aiter)(obj);
        }
    }
#endif
    return __Pyx_Coroutine_GetAsyncIter_Generic(obj);
}
static PyObject *__Pyx__Coroutine_AsyncIterNext(PyObject *obj) {
#if PY_VERSION_HEX < 0x030500B1
    {
        PyObject *value = __Pyx_PyObject_CallMethod0(obj, __pyx_n_s_anext);
        if (likely(value))
            return value;
    }
    if (PyErr_ExceptionMatches(PyExc_AttributeError))
#endif
    {
        __Pyx_TypeName obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
        PyErr_Format(PyExc_TypeError,
            "'async for' requires an object with __anext__ method, got " __Pyx_FMT_TYPENAME, obj_type_name);
        __Pyx_DECREF_TypeName(obj_type_name);
    }
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_Coroutine_AsyncIterNext(PyObject *obj) {
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(obj)) {
        return __Pyx_async_gen_anext(obj);
    }
#endif
#if CYTHON_USE_ASYNC_SLOTS
    {
        __Pyx_PyAsyncMethodsStruct* am = __Pyx_PyType_AsAsync(obj);
        if (likely(am && am->am_anext)) {
            return (*am->am_anext)(obj);
        }
    }
#endif
    return __Pyx__Coroutine_AsyncIterNext(obj);
}

/* CallNextTpTraverse */
  static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse) {
    PyTypeObject* type = Py_TYPE(obj);
    traverseproc tp_traverse = NULL;
    while (type && __Pyx_PyType_GetSlot(type, tp_traverse, traverseproc) != current_tp_traverse)
        type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
    while (type && (tp_traverse = __Pyx_PyType_GetSlot(type, tp_traverse, traverseproc)) == current_tp_traverse)
        type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
    if (type && tp_traverse)
        return tp_traverse(obj, v, a);
    return 0;
}

/* CallNextTpClear */
  static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_clear) {
    PyTypeObject* type = Py_TYPE(obj);
    inquiry tp_clear = NULL;
    while (type && __Pyx_PyType_GetSlot(type, tp_clear, inquiry) != current_tp_clear)
        type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
    while (type && (tp_clear = __Pyx_PyType_GetSlot(type, tp_clear, inquiry)) == current_tp_clear)
        type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
    if (type && tp_clear)
        tp_clear(obj);
}

/* ValidateBasesTuple */
  #if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases) {
    Py_ssize_t i, n;
#if CYTHON_ASSUME_SAFE_MACROS
    n = PyTuple_GET_SIZE(bases);
#else
    n = PyTuple_Size(bases);
    if (n < 0) return -1;
#endif
    for (i = 1; i < n; i++)
    {
#if CYTHON_AVOID_BORROWED_REFS
        PyObject *b0 = PySequence_GetItem(bases, i);
        if (!b0) return -1;
#elif CYTHON_ASSUME_SAFE_MACROS
        PyObject *b0 = PyTuple_GET_ITEM(bases, i);
#else
        PyObject *b0 = PyTuple_GetItem(bases, i);
        if (!b0) return -1;
#endif
        PyTypeObject *b;
#if PY_MAJOR_VERSION < 3
        if (PyClass_Check(b0))
        {
            PyErr_Format(PyExc_TypeError, "base class '%.200s' is an old-style class",
                         PyString_AS_STRING(((PyClassObject*)b0)->cl_name));
#if CYTHON_AVOID_BORROWED_REFS
            Py_DECREF(b0);
#endif
            return -1;
        }
#endif
        b = (PyTypeObject*) b0;
        if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE))
        {
            __Pyx_TypeName b_name = __Pyx_PyType_GetName(b);
            PyErr_Format(PyExc_TypeError,
                "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b_name);
            __Pyx_DECREF_TypeName(b_name);
#if CYTHON_AVOID_BORROWED_REFS
            Py_DECREF(b0);
#endif
            return -1;
        }
        if (dictoffset == 0)
        {
            Py_ssize_t b_dictoffset = 0;
#if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
            b_dictoffset = b->tp_dictoffset;
#else
            PyObject *py_b_dictoffset = PyObject_GetAttrString((PyObject*)b, "__dictoffset__");
            if (!py_b_dictoffset) goto dictoffset_return;
            b_dictoffset = PyLong_AsSsize_t(py_b_dictoffset);
            Py_DECREF(py_b_dictoffset);
            if (b_dictoffset == -1 && PyErr_Occurred()) goto dictoffset_return;
#endif
            if (b_dictoffset) {
                {
                    __Pyx_TypeName b_name = __Pyx_PyType_GetName(b);
                    PyErr_Format(PyExc_TypeError,
                        "extension type '%.200s' has no __dict__ slot, "
                        "but base type '" __Pyx_FMT_TYPENAME "' has: "
                        "either add 'cdef dict __dict__' to the extension type "
                        "or add '__slots__ = [...]' to the base type",
                        type_name, b_name);
                    __Pyx_DECREF_TypeName(b_name);
                }
#if !(CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY)
              dictoffset_return:
#endif
#if CYTHON_AVOID_BORROWED_REFS
                Py_DECREF(b0);
#endif
                return -1;
            }
        }
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(b0);
#endif
    }
    return 0;
}
#endif

/* PyType_Ready */
  static int __Pyx_PyType_Ready(PyTypeObject *t) {
#if CYTHON_USE_TYPE_SPECS || !(CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API) || defined(PYSTON_MAJOR_VERSION)
    (void)__Pyx_PyObject_CallMethod0;
#if CYTHON_USE_TYPE_SPECS
    (void)__Pyx_validate_bases_tuple;
#endif
    return PyType_Ready(t);
#else
    int r;
    PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
    if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset, bases) == -1))
        return -1;
#if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION)
    {
        int gc_was_enabled;
    #if PY_VERSION_HEX >= 0x030A00b1
        gc_was_enabled = PyGC_Disable();
        (void)__Pyx_PyObject_CallMethod0;
    #else
        PyObject *ret, *py_status;
        PyObject *gc = NULL;
        #if PY_VERSION_HEX >= 0x030700a1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400)
        gc = PyImport_GetModule(__pyx_kp_u_gc);
        #endif
        if (unlikely(!gc)) gc = PyImport_Import(__pyx_kp_u_gc);
        if (unlikely(!gc)) return -1;
        py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_isenabled);
        if (unlikely(!py_status)) {
            Py_DECREF(gc);
            return -1;
        }
        gc_was_enabled = __Pyx_PyObject_IsTrue(py_status);
        Py_DECREF(py_status);
        if (gc_was_enabled > 0) {
            ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_disable);
            if (unlikely(!ret)) {
                Py_DECREF(gc);
                return -1;
            }
            Py_DECREF(ret);
        } else if (unlikely(gc_was_enabled == -1)) {
            Py_DECREF(gc);
            return -1;
        }
    #endif
        t->tp_flags |= Py_TPFLAGS_HEAPTYPE;
#if PY_VERSION_HEX >= 0x030A0000
        t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE;
#endif
#else
        (void)__Pyx_PyObject_CallMethod0;
#endif
    r = PyType_Ready(t);
#if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION)
        t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE;
    #if PY_VERSION_HEX >= 0x030A00b1
        if (gc_was_enabled)
            PyGC_Enable();
    #else
        if (gc_was_enabled) {
            PyObject *tp, *v, *tb;
            PyErr_Fetch(&tp, &v, &tb);
            ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_enable);
            if (likely(ret || r == -1)) {
                Py_XDECREF(ret);
                PyErr_Restore(tp, v, tb);
            } else {
                Py_XDECREF(tp);
                Py_XDECREF(v);
                Py_XDECREF(tb);
                r = -1;
            }
        }
        Py_DECREF(gc);
    #endif
    }
#endif
    return r;
#endif
}

/* PyObject_GenericGetAttr */
  #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) {
    if (unlikely(Py_TYPE(obj)->tp_dictoffset)) {
        return PyObject_GenericGetAttr(obj, attr_name);
    }
    return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name);
}
#endif

/* SetVTable */
  static int __Pyx_SetVtable(PyTypeObject *type, void *vtable) {
    PyObject *ob = PyCapsule_New(vtable, 0, 0);
    if (unlikely(!ob))
        goto bad;
#if CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(PyObject_SetAttr((PyObject *) type, __pyx_n_s_pyx_vtable, ob) < 0))
#else
    if (unlikely(PyDict_SetItem(type->tp_dict, __pyx_n_s_pyx_vtable, ob) < 0))
#endif
        goto bad;
    Py_DECREF(ob);
    return 0;
bad:
    Py_XDECREF(ob);
    return -1;
}

/* GetVTable */
  static void* __Pyx_GetVtable(PyTypeObject *type) {
    void* ptr;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *ob = PyObject_GetAttr((PyObject *)type, __pyx_n_s_pyx_vtable);
#else
    PyObject *ob = PyObject_GetItem(type->tp_dict, __pyx_n_s_pyx_vtable);
#endif
    if (!ob)
        goto bad;
    ptr = PyCapsule_GetPointer(ob, 0);
    if (!ptr && !PyErr_Occurred())
        PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
    Py_DECREF(ob);
    return ptr;
bad:
    Py_XDECREF(ob);
    return NULL;
}

/* MergeVTables */
  #if !CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_MergeVtables(PyTypeObject *type) {
    int i;
    void** base_vtables;
    __Pyx_TypeName tp_base_name;
    __Pyx_TypeName base_name;
    void* unknown = (void*)-1;
    PyObject* bases = type->tp_bases;
    int base_depth = 0;
    {
        PyTypeObject* base = type->tp_base;
        while (base) {
            base_depth += 1;
            base = base->tp_base;
        }
    }
    base_vtables = (void**) malloc(sizeof(void*) * (size_t)(base_depth + 1));
    base_vtables[0] = unknown;
    for (i = 1; i < PyTuple_GET_SIZE(bases); i++) {
        void* base_vtable = __Pyx_GetVtable(((PyTypeObject*)PyTuple_GET_ITEM(bases, i)));
        if (base_vtable != NULL) {
            int j;
            PyTypeObject* base = type->tp_base;
            for (j = 0; j < base_depth; j++) {
                if (base_vtables[j] == unknown) {
                    base_vtables[j] = __Pyx_GetVtable(base);
                    base_vtables[j + 1] = unknown;
                }
                if (base_vtables[j] == base_vtable) {
                    break;
                } else if (base_vtables[j] == NULL) {
                    goto bad;
                }
                base = base->tp_base;
            }
        }
    }
    PyErr_Clear();
    free(base_vtables);
    return 0;
bad:
    tp_base_name = __Pyx_PyType_GetName(type->tp_base);
    base_name = __Pyx_PyType_GetName((PyTypeObject*)PyTuple_GET_ITEM(bases, i));
    PyErr_Format(PyExc_TypeError,
        "multiple bases have vtable conflict: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'", tp_base_name, base_name);
    __Pyx_DECREF_TypeName(tp_base_name);
    __Pyx_DECREF_TypeName(base_name);
    free(base_vtables);
    return -1;
}
#endif

/* SetupReduce */
  #if !CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
  int ret;
  PyObject *name_attr;
  name_attr = __Pyx_PyObject_GetAttrStrNoError(meth, __pyx_n_s_name_2);
  if (likely(name_attr)) {
      ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
  } else {
      ret = -1;
  }
  if (unlikely(ret < 0)) {
      PyErr_Clear();
      ret = 0;
  }
  Py_XDECREF(name_attr);
  return ret;
}
static int __Pyx_setup_reduce(PyObject* type_obj) {
    int ret = 0;
    PyObject *object_reduce = NULL;
    PyObject *object_getstate = NULL;
    PyObject *object_reduce_ex = NULL;
    PyObject *reduce = NULL;
    PyObject *reduce_ex = NULL;
    PyObject *reduce_cython = NULL;
    PyObject *setstate = NULL;
    PyObject *setstate_cython = NULL;
    PyObject *getstate = NULL;
#if CYTHON_USE_PYTYPE_LOOKUP
    getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate);
#else
    getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_getstate);
    if (!getstate && PyErr_Occurred()) {
        goto __PYX_BAD;
    }
#endif
    if (getstate) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_getstate);
#else
        object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_n_s_getstate);
        if (!object_getstate && PyErr_Occurred()) {
            goto __PYX_BAD;
        }
#endif
        if (object_getstate != getstate) {
            goto __PYX_GOOD;
        }
    }
#if CYTHON_USE_PYTYPE_LOOKUP
    object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#else
    object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#endif
    reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
    if (reduce_ex == object_reduce_ex) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
#else
        object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
#endif
        reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
        if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
            reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython);
            if (likely(reduce_cython)) {
                ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
            } else if (reduce == object_reduce || PyErr_Occurred()) {
                goto __PYX_BAD;
            }
            setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate);
            if (!setstate) PyErr_Clear();
            if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
                setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython);
                if (likely(setstate_cython)) {
                    ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                    ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                } else if (!setstate || PyErr_Occurred()) {
                    goto __PYX_BAD;
                }
            }
            PyType_Modified((PyTypeObject*)type_obj);
        }
    }
    goto __PYX_GOOD;
__PYX_BAD:
    if (!PyErr_Occurred()) {
        __Pyx_TypeName type_obj_name =
            __Pyx_PyType_GetName((PyTypeObject*)type_obj);
        PyErr_Format(PyExc_RuntimeError,
            "Unable to initialize pickling for " __Pyx_FMT_TYPENAME, type_obj_name);
        __Pyx_DECREF_TypeName(type_obj_name);
    }
    ret = -1;
__PYX_GOOD:
#if !CYTHON_USE_PYTYPE_LOOKUP
    Py_XDECREF(object_reduce);
    Py_XDECREF(object_reduce_ex);
    Py_XDECREF(object_getstate);
    Py_XDECREF(getstate);
#endif
    Py_XDECREF(reduce);
    Py_XDECREF(reduce_ex);
    Py_XDECREF(reduce_cython);
    Py_XDECREF(setstate);
    Py_XDECREF(setstate_cython);
    return ret;
}
#endif

/* FormatTypeName */
  #if CYTHON_COMPILING_IN_LIMITED_API
static __Pyx_TypeName
__Pyx_PyType_GetName(PyTypeObject* tp)
{
    PyObject *name = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
                                               __pyx_n_s_name_2);
    if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) {
        PyErr_Clear();
        Py_XDECREF(name);
        name = __Pyx_NewRef(__pyx_n_s__107);
    }
    return name;
}
#endif

/* ValidateExternBase */
  static int __Pyx_validate_extern_base(PyTypeObject *base) {
    Py_ssize_t itemsize;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_itemsize;
#endif
#if !CYTHON_COMPILING_IN_LIMITED_API
    itemsize = ((PyTypeObject *)base)->tp_itemsize;
#else
    py_itemsize = PyObject_GetAttrString((PyObject*)base, "__itemsize__");
    if (!py_itemsize)
        return -1;
    itemsize = PyLong_AsSsize_t(py_itemsize);
    Py_DECREF(py_itemsize);
    py_itemsize = 0;
    if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
        return -1;
#endif
    if (itemsize) {
        __Pyx_TypeName b_name = __Pyx_PyType_GetName(base);
        PyErr_Format(PyExc_TypeError,
                "inheritance from PyVarObject types like '" __Pyx_FMT_TYPENAME "' not currently supported", b_name);
        __Pyx_DECREF_TypeName(b_name);
        return -1;
    }
    return 0;
}

/* TypeImport */
  #ifndef __PYX_HAVE_RT_ImportType_3_0_11
#define __PYX_HAVE_RT_ImportType_3_0_11
static PyTypeObject *__Pyx_ImportType_3_0_11(PyObject *module, const char *module_name, const char *class_name,
    size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_11 check_size)
{
    PyObject *result = 0;
    char warning[200];
    Py_ssize_t basicsize;
    Py_ssize_t itemsize;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_basicsize;
    PyObject *py_itemsize;
#endif
    result = PyObject_GetAttrString(module, class_name);
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#if !CYTHON_COMPILING_IN_LIMITED_API
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
    itemsize = ((PyTypeObject *)result)->tp_itemsize;
#else
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
    py_itemsize = PyObject_GetAttrString(result, "__itemsize__");
    if (!py_itemsize)
        goto bad;
    itemsize = PyLong_AsSsize_t(py_itemsize);
    Py_DECREF(py_itemsize);
    py_itemsize = 0;
    if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if (itemsize) {
        if (size % alignment) {
            alignment = size % alignment;
        }
        if (itemsize < (Py_ssize_t)alignment)
            itemsize = (Py_ssize_t)alignment;
    }
    if ((size_t)(basicsize + itemsize) < size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize+itemsize);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error_3_0_11 &&
            ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd-%zd from PyObject",
            module_name, class_name, size, basicsize, basicsize+itemsize);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_0_11 && (size_t)basicsize > size) {
        PyOS_snprintf(warning, sizeof(warning),
            "%s.%s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(result);
    return NULL;
}
#endif

/* PatchInspect */
  static PyObject* __Pyx_patch_inspect(PyObject* module) {
#if defined(__Pyx_Generator_USED) && (!defined(CYTHON_PATCH_INSPECT) || CYTHON_PATCH_INSPECT)
    static int inspect_patched = 0;
    if (unlikely((!inspect_patched) && module)) {
        module = __Pyx_Coroutine_patch_module(
            module, ""
"old_types = getattr(_module.isgenerator, '_cython_generator_types', None)\n"
"if old_types is None or not isinstance(old_types, set):\n"
"    old_types = set()\n"
"    def cy_wrap(orig_func, type=type, cython_generator_types=old_types):\n"
"        def cy_isgenerator(obj): return type(obj) in cython_generator_types or orig_func(obj)\n"
"        cy_isgenerator._cython_generator_types = cython_generator_types\n"
"        return cy_isgenerator\n"
"    _module.isgenerator = cy_wrap(_module.isgenerator)\n"
"old_types.add(_cython_generator_type)\n"
        );
        inspect_patched = 1;
    }
#else
    if ((0)) return __Pyx_Coroutine_patch_module(module, NULL);
#endif
    return module;
}

/* PatchAsyncIO */
  static PyObject* __Pyx_patch_asyncio(PyObject* module) {
#if PY_VERSION_HEX < 0x030500B2 &&\
        (defined(__Pyx_Coroutine_USED) || defined(__Pyx_Generator_USED)) &&\
        (!defined(CYTHON_PATCH_ASYNCIO) || CYTHON_PATCH_ASYNCIO)
    PyObject *patch_module = NULL;
    static int asyncio_patched = 0;
    if (unlikely((!asyncio_patched) && module)) {
        PyObject *package;
        package = __Pyx_Import(__pyx_n_s_asyncio_coroutines, NULL, 0);
        if (package) {
            patch_module = __Pyx_Coroutine_patch_module(
                PyObject_GetAttrString(package, "coroutines"), ""
"try:\n"
"    coro_types = _module._COROUTINE_TYPES\n"
"except AttributeError: pass\n"
"else:\n"
"    if _cython_coroutine_type is not None and _cython_coroutine_type not in coro_types:\n"
"        coro_types = tuple(coro_types) + (_cython_coroutine_type,)\n"
"    if _cython_generator_type is not None and _cython_generator_type not in coro_types:\n"
"        coro_types = tuple(coro_types) + (_cython_generator_type,)\n"
"_module._COROUTINE_TYPES = coro_types\n"
            );
        } else {
            PyErr_Clear();
            package = __Pyx_Import(__pyx_n_s_asyncio_tasks, NULL, 0);
            if (unlikely(!package)) goto asyncio_done;
            patch_module = __Pyx_Coroutine_patch_module(
                PyObject_GetAttrString(package, "tasks"), ""
"if hasattr(_module, 'iscoroutine'):\n"
"    old_types = getattr(_module.iscoroutine, '_cython_coroutine_types', None)\n"
"    if old_types is None or not isinstance(old_types, set):\n"
"        old_types = set()\n"
"        def cy_wrap(orig_func, type=type, cython_coroutine_types=old_types):\n"
"            def cy_iscoroutine(obj): return type(obj) in cython_coroutine_types or orig_func(obj)\n"
"            cy_iscoroutine._cython_coroutine_types = cython_coroutine_types\n"
"            return cy_iscoroutine\n"
"        _module.iscoroutine = cy_wrap(_module.iscoroutine)\n"
"    if _cython_coroutine_type is not None:\n"
"        old_types.add(_cython_coroutine_type)\n"
"    if _cython_generator_type is not None:\n"
"        old_types.add(_cython_generator_type)\n"
            );
        }
        Py_DECREF(package);
        if (unlikely(!patch_module)) goto ignore;
asyncio_done:
        PyErr_Clear();
        asyncio_patched = 1;
#ifdef __Pyx_Generator_USED
        {
            PyObject *inspect_module;
            if (patch_module) {
                inspect_module = PyObject_GetAttr(patch_module, __pyx_n_s_inspect);
                Py_DECREF(patch_module);
            } else {
                inspect_module = __Pyx_Import(__pyx_n_s_inspect, NULL, 0);
            }
            if (unlikely(!inspect_module)) goto ignore;
            inspect_module = __Pyx_patch_inspect(inspect_module);
            if (unlikely(!inspect_module)) {
                Py_DECREF(module);
                module = NULL;
            }
            Py_XDECREF(inspect_module);
        }
#else
        if ((0)) return __Pyx_patch_inspect(module);
#endif
    }
    return module;
ignore:
    PyErr_WriteUnraisable(module);
    if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch asyncio package with custom generator type", 1) < 0)) {
        Py_DECREF(module);
        module = NULL;
    }
#else
    if ((0)) return __Pyx_patch_inspect(__Pyx_Coroutine_patch_module(module, NULL));
#endif
    return module;
}

/* UnicodeConcatInPlace */
  # if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
static int
__Pyx_unicode_modifiable(PyObject *unicode)
{
    if (Py_REFCNT(unicode) != 1)
        return 0;
    if (!PyUnicode_CheckExact(unicode))
        return 0;
    if (PyUnicode_CHECK_INTERNED(unicode))
        return 0;
    return 1;
}
static CYTHON_INLINE PyObject *__Pyx_PyUnicode_ConcatInPlaceImpl(PyObject **p_left, PyObject *right
        #if CYTHON_REFNANNY
        , void* __pyx_refnanny
        #endif
    ) {
    PyObject *left = *p_left;
    Py_ssize_t left_len, right_len, new_len;
    if (unlikely(__Pyx_PyUnicode_READY(left) == -1))
        return NULL;
    if (unlikely(__Pyx_PyUnicode_READY(right) == -1))
        return NULL;
    left_len = PyUnicode_GET_LENGTH(left);
    if (left_len == 0) {
        Py_INCREF(right);
        return right;
    }
    right_len = PyUnicode_GET_LENGTH(right);
    if (right_len == 0) {
        Py_INCREF(left);
        return left;
    }
    if (unlikely(left_len > PY_SSIZE_T_MAX - right_len)) {
        PyErr_SetString(PyExc_OverflowError,
                        "strings are too large to concat");
        return NULL;
    }
    new_len = left_len + right_len;
    if (__Pyx_unicode_modifiable(left)
            && PyUnicode_CheckExact(right)
            && PyUnicode_KIND(right) <= PyUnicode_KIND(left)
            && !(PyUnicode_IS_ASCII(left) && !PyUnicode_IS_ASCII(right))) {
        int ret;
        __Pyx_GIVEREF(*p_left);
        ret = PyUnicode_Resize(p_left, new_len);
        __Pyx_GOTREF(*p_left);
        if (unlikely(ret != 0))
            return NULL;
        #if PY_VERSION_HEX >= 0x030d0000
        if (unlikely(PyUnicode_CopyCharacters(*p_left, left_len, right, 0, right_len) < 0)) return NULL;
        #else
        _PyUnicode_FastCopyCharacters(*p_left, left_len, right, 0, right_len);
        #endif
        __Pyx_INCREF(*p_left);
        __Pyx_GIVEREF(*p_left);
        return *p_left;
    } else {
        return __Pyx_PyUnicode_Concat(left, right);
    }
  }
#endif

/* CalculateMetaclass */
  static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
    Py_ssize_t i, nbases;
#if CYTHON_ASSUME_SAFE_MACROS
    nbases = PyTuple_GET_SIZE(bases);
#else
    nbases = PyTuple_Size(bases);
    if (nbases < 0) return NULL;
#endif
    for (i=0; i < nbases; i++) {
        PyTypeObject *tmptype;
#if CYTHON_ASSUME_SAFE_MACROS
        PyObject *tmp = PyTuple_GET_ITEM(bases, i);
#else
        PyObject *tmp = PyTuple_GetItem(bases, i);
        if (!tmp) return NULL;
#endif
        tmptype = Py_TYPE(tmp);
#if PY_MAJOR_VERSION < 3
        if (tmptype == &PyClass_Type)
            continue;
#endif
        if (!metaclass) {
            metaclass = tmptype;
            continue;
        }
        if (PyType_IsSubtype(metaclass, tmptype))
            continue;
        if (PyType_IsSubtype(tmptype, metaclass)) {
            metaclass = tmptype;
            continue;
        }
        PyErr_SetString(PyExc_TypeError,
                        "metaclass conflict: "
                        "the metaclass of a derived class "
                        "must be a (non-strict) subclass "
                        "of the metaclasses of all its bases");
        return NULL;
    }
    if (!metaclass) {
#if PY_MAJOR_VERSION < 3
        metaclass = &PyClass_Type;
#else
        metaclass = &PyType_Type;
#endif
    }
    Py_INCREF((PyObject*) metaclass);
    return (PyObject*) metaclass;
}

/* Py3ClassCreate */
  static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
                                           PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
    PyObject *ns;
    if (metaclass) {
        PyObject *prep = __Pyx_PyObject_GetAttrStrNoError(metaclass, __pyx_n_s_prepare);
        if (prep) {
            PyObject *pargs[3] = {NULL, name, bases};
            ns = __Pyx_PyObject_FastCallDict(prep, pargs+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw);
            Py_DECREF(prep);
        } else {
            if (unlikely(PyErr_Occurred()))
                return NULL;
            ns = PyDict_New();
        }
    } else {
        ns = PyDict_New();
    }
    if (unlikely(!ns))
        return NULL;
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)) goto bad;
#if PY_VERSION_HEX >= 0x03030000
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad;
#else
    CYTHON_MAYBE_UNUSED_VAR(qualname);
#endif
    if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad;
    return ns;
bad:
    Py_DECREF(ns);
    return NULL;
}
#if PY_VERSION_HEX < 0x030600A4 && CYTHON_PEP487_INIT_SUBCLASS
static int __Pyx_SetNamesPEP487(PyObject *type_obj) {
    PyTypeObject *type = (PyTypeObject*) type_obj;
    PyObject *names_to_set, *key, *value, *set_name, *tmp;
    Py_ssize_t i = 0;
#if CYTHON_USE_TYPE_SLOTS
    names_to_set = PyDict_Copy(type->tp_dict);
#else
    {
        PyObject *d = PyObject_GetAttr(type_obj, __pyx_n_s_dict);
        names_to_set = NULL;
        if (likely(d)) {
            PyObject *names_to_set = PyDict_New();
            int ret = likely(names_to_set) ? PyDict_Update(names_to_set, d) : -1;
            Py_DECREF(d);
            if (unlikely(ret < 0))
                Py_CLEAR(names_to_set);
        }
    }
#endif
    if (unlikely(names_to_set == NULL))
        goto bad;
    while (PyDict_Next(names_to_set, &i, &key, &value)) {
        set_name = __Pyx_PyObject_LookupSpecialNoError(value, __pyx_n_s_set_name);
        if (unlikely(set_name != NULL)) {
            tmp = __Pyx_PyObject_Call2Args(set_name, type_obj, key);
            Py_DECREF(set_name);
            if (unlikely(tmp == NULL)) {
                __Pyx_TypeName value_type_name =
                    __Pyx_PyType_GetName(Py_TYPE(value));
                __Pyx_TypeName type_name = __Pyx_PyType_GetName(type);
                PyErr_Format(PyExc_RuntimeError,
#if PY_MAJOR_VERSION >= 3
                    "Error calling __set_name__ on '" __Pyx_FMT_TYPENAME "' instance %R " "in '" __Pyx_FMT_TYPENAME "'",
                    value_type_name, key, type_name);
#else
                    "Error calling __set_name__ on '" __Pyx_FMT_TYPENAME "' instance %.100s in '" __Pyx_FMT_TYPENAME "'",
                    value_type_name,
                    PyString_Check(key) ? PyString_AS_STRING(key) : "?",
                    type_name);
#endif
                goto bad;
            } else {
                Py_DECREF(tmp);
            }
        }
        else if (unlikely(PyErr_Occurred())) {
            goto bad;
        }
    }
    Py_DECREF(names_to_set);
    return 0;
bad:
    Py_XDECREF(names_to_set);
    return -1;
}
static PyObject *__Pyx_InitSubclassPEP487(PyObject *type_obj, PyObject *mkw) {
#if CYTHON_USE_TYPE_SLOTS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    PyTypeObject *type = (PyTypeObject*) type_obj;
    PyObject *mro = type->tp_mro;
    Py_ssize_t i, nbases;
    if (unlikely(!mro)) goto done;
    (void) &__Pyx_GetBuiltinName;
    Py_INCREF(mro);
    nbases = PyTuple_GET_SIZE(mro);
    assert(PyTuple_GET_ITEM(mro, 0) == type_obj);
    for (i = 1; i < nbases-1; i++) {
        PyObject *base, *dict, *meth;
        base = PyTuple_GET_ITEM(mro, i);
        dict = ((PyTypeObject *)base)->tp_dict;
        meth = __Pyx_PyDict_GetItemStrWithError(dict, __pyx_n_s_init_subclass);
        if (unlikely(meth)) {
            descrgetfunc f = Py_TYPE(meth)->tp_descr_get;
            PyObject *res;
            Py_INCREF(meth);
            if (likely(f)) {
                res = f(meth, NULL, type_obj);
                Py_DECREF(meth);
                if (unlikely(!res)) goto bad;
                meth = res;
            }
            res = __Pyx_PyObject_FastCallDict(meth, NULL, 0, mkw);
            Py_DECREF(meth);
            if (unlikely(!res)) goto bad;
            Py_DECREF(res);
            goto done;
        } else if (unlikely(PyErr_Occurred())) {
            goto bad;
        }
    }
done:
    Py_XDECREF(mro);
    return type_obj;
bad:
    Py_XDECREF(mro);
    Py_DECREF(type_obj);
    return NULL;
#else
    PyObject *super_type, *super, *func, *res;
#if CYTHON_COMPILING_IN_PYPY && !defined(PySuper_Type)
    super_type = __Pyx_GetBuiltinName(__pyx_n_s_super);
#else
    super_type = (PyObject*) &PySuper_Type;
    (void) &__Pyx_GetBuiltinName;
#endif
    super = likely(super_type) ? __Pyx_PyObject_Call2Args(super_type, type_obj, type_obj) : NULL;
#if CYTHON_COMPILING_IN_PYPY && !defined(PySuper_Type)
    Py_XDECREF(super_type);
#endif
    if (unlikely(!super)) {
        Py_CLEAR(type_obj);
        goto done;
    }
    func = __Pyx_PyObject_GetAttrStrNoError(super, __pyx_n_s_init_subclass);
    Py_DECREF(super);
    if (likely(!func)) {
        if (unlikely(PyErr_Occurred()))
            Py_CLEAR(type_obj);
        goto done;
    }
    res = __Pyx_PyObject_FastCallDict(func, NULL, 0, mkw);
    Py_DECREF(func);
    if (unlikely(!res))
        Py_CLEAR(type_obj);
    Py_XDECREF(res);
done:
    return type_obj;
#endif
}
#endif
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
                                      PyObject *dict, PyObject *mkw,
                                      int calculate_metaclass, int allow_py2_metaclass) {
    PyObject *result;
    PyObject *owned_metaclass = NULL;
    PyObject *margs[4] = {NULL, name, bases, dict};
    if (allow_py2_metaclass) {
        owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass);
        if (owned_metaclass) {
            metaclass = owned_metaclass;
        } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
            PyErr_Clear();
        } else {
            return NULL;
        }
    }
    if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
        metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
        Py_XDECREF(owned_metaclass);
        if (unlikely(!metaclass))
            return NULL;
        owned_metaclass = metaclass;
    }
    result = __Pyx_PyObject_FastCallDict(metaclass, margs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET,
#if PY_VERSION_HEX < 0x030600A4
        (metaclass == (PyObject*)&PyType_Type) ? NULL : mkw
#else
        mkw
#endif
    );
    Py_XDECREF(owned_metaclass);
#if PY_VERSION_HEX < 0x030600A4 && CYTHON_PEP487_INIT_SUBCLASS
    if (likely(result) && likely(PyType_Check(result))) {
        if (unlikely(__Pyx_SetNamesPEP487(result) < 0)) {
            Py_CLEAR(result);
        } else {
            result = __Pyx_InitSubclassPEP487(result, mkw);
        }
    }
#else
    (void) &__Pyx_GetBuiltinName;
#endif
    return result;
}

/* Py3UpdateBases */
  static PyObject*
__Pyx_PEP560_update_bases(PyObject *bases)
{
    Py_ssize_t i, j, size_bases;
    PyObject *base, *meth, *new_base, *result, *new_bases = NULL;
    size_bases = PyTuple_GET_SIZE(bases);
    for (i = 0; i < size_bases; i++) {
        base  = PyTuple_GET_ITEM(bases, i);
        if (PyType_Check(base)) {
            if (new_bases) {
                if (PyList_Append(new_bases, base) < 0) {
                    goto error;
                }
            }
            continue;
        }
        meth = __Pyx_PyObject_GetAttrStrNoError(base, __pyx_n_s_mro_entries);
        if (!meth && PyErr_Occurred()) {
            goto error;
        }
        if (!meth) {
            if (new_bases) {
                if (PyList_Append(new_bases, base) < 0) {
                    goto error;
                }
            }
            continue;
        }
        new_base = __Pyx_PyObject_CallOneArg(meth, bases);
        Py_DECREF(meth);
        if (!new_base) {
            goto error;
        }
        if (!PyTuple_Check(new_base)) {
            PyErr_SetString(PyExc_TypeError,
                            "__mro_entries__ must return a tuple");
            Py_DECREF(new_base);
            goto error;
        }
        if (!new_bases) {
            if (!(new_bases = PyList_New(i))) {
                goto error;
            }
            for (j = 0; j < i; j++) {
                base = PyTuple_GET_ITEM(bases, j);
                PyList_SET_ITEM(new_bases, j, base);
                Py_INCREF(base);
            }
        }
        j = PyList_GET_SIZE(new_bases);
        if (PyList_SetSlice(new_bases, j, j, new_base) < 0) {
            goto error;
        }
        Py_DECREF(new_base);
    }
    if (!new_bases) {
        Py_INCREF(bases);
        return bases;
    }
    result = PyList_AsTuple(new_bases);
    Py_DECREF(new_bases);
    return result;
error:
    Py_XDECREF(new_bases);
    return NULL;
}

/* CLineInTraceback */
  #ifndef CYTHON_CLINE_IN_TRACEBACK
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {
    PyObject *use_cline;
    PyObject *ptype, *pvalue, *ptraceback;
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject **cython_runtime_dict;
#endif
    CYTHON_MAYBE_UNUSED_VAR(tstate);
    if (unlikely(!__pyx_cython_runtime)) {
        return c_line;
    }
    __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
#if CYTHON_COMPILING_IN_CPYTHON
    cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
    if (likely(cython_runtime_dict)) {
        __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            use_cline, *cython_runtime_dict,
            __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
    } else
#endif
    {
      PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStrNoError(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
      if (use_cline_obj) {
        use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
        Py_DECREF(use_cline_obj);
      } else {
        PyErr_Clear();
        use_cline = NULL;
      }
    }
    if (!use_cline) {
        c_line = 0;
        (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
    }
    else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
        c_line = 0;
    }
    __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
    return c_line;
}
#endif

/* CodeObjectCache */
  #if !CYTHON_COMPILING_IN_LIMITED_API
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
    int start = 0, mid = 0, end = count - 1;
    if (end >= 0 && code_line > entries[end].code_line) {
        return count;
    }
    while (start < end) {
        mid = start + (end - start) / 2;
        if (code_line < entries[mid].code_line) {
            end = mid;
        } else if (code_line > entries[mid].code_line) {
             start = mid + 1;
        } else {
            return mid;
        }
    }
    if (code_line <= entries[mid].code_line) {
        return mid;
    } else {
        return mid + 1;
    }
}
static PyCodeObject *__pyx_find_code_object(int code_line) {
    PyCodeObject* code_object;
    int pos;
    if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
        return NULL;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
        return NULL;
    }
    code_object = __pyx_code_cache.entries[pos].code_object;
    Py_INCREF(code_object);
    return code_object;
}
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
    int pos, i;
    __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
    if (unlikely(!code_line)) {
        return;
    }
    if (unlikely(!entries)) {
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
        if (likely(entries)) {
            __pyx_code_cache.entries = entries;
            __pyx_code_cache.max_count = 64;
            __pyx_code_cache.count = 1;
            entries[0].code_line = code_line;
            entries[0].code_object = code_object;
            Py_INCREF(code_object);
        }
        return;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
        PyCodeObject* tmp = entries[pos].code_object;
        entries[pos].code_object = code_object;
        Py_DECREF(tmp);
        return;
    }
    if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
        int new_max = __pyx_code_cache.max_count + 64;
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
            __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
        if (unlikely(!entries)) {
            return;
        }
        __pyx_code_cache.entries = entries;
        __pyx_code_cache.max_count = new_max;
    }
    for (i=__pyx_code_cache.count; i>pos; i--) {
        entries[i] = entries[i-1];
    }
    entries[pos].code_line = code_line;
    entries[pos].code_object = code_object;
    __pyx_code_cache.count++;
    Py_INCREF(code_object);
}
#endif

/* AddTraceback */
  #include "compile.h"
#include "frameobject.h"
#include "traceback.h"
#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict,
                                                       PyObject *firstlineno, PyObject *name) {
    PyObject *replace = NULL;
    if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL;
    if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL;
    replace = PyObject_GetAttrString(code, "replace");
    if (likely(replace)) {
        PyObject *result;
        result = PyObject_Call(replace, __pyx_empty_tuple, scratch_dict);
        Py_DECREF(replace);
        return result;
    }
    PyErr_Clear();
    #if __PYX_LIMITED_VERSION_HEX < 0x030780000
    {
        PyObject *compiled = NULL, *result = NULL;
        if (unlikely(PyDict_SetItemString(scratch_dict, "code", code))) return NULL;
        if (unlikely(PyDict_SetItemString(scratch_dict, "type", (PyObject*)(&PyType_Type)))) return NULL;
        compiled = Py_CompileString(
            "out = type(code)(\n"
            "  code.co_argcount, code.co_kwonlyargcount, code.co_nlocals, code.co_stacksize,\n"
            "  code.co_flags, code.co_code, code.co_consts, code.co_names,\n"
            "  code.co_varnames, code.co_filename, co_name, co_firstlineno,\n"
            "  code.co_lnotab)\n", "<dummy>", Py_file_input);
        if (!compiled) return NULL;
        result = PyEval_EvalCode(compiled, scratch_dict, scratch_dict);
        Py_DECREF(compiled);
        if (!result) PyErr_Print();
        Py_DECREF(result);
        result = PyDict_GetItemString(scratch_dict, "out");
        if (result) Py_INCREF(result);
        return result;
    }
    #else
    return NULL;
    #endif
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL;
    PyObject *replace = NULL, *getframe = NULL, *frame = NULL;
    PyObject *exc_type, *exc_value, *exc_traceback;
    int success = 0;
    if (c_line) {
        (void) __pyx_cfilenm;
        (void) __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line);
    }
    PyErr_Fetch(&exc_type, &exc_value, &exc_traceback);
    code_object = Py_CompileString("_getframe()", filename, Py_eval_input);
    if (unlikely(!code_object)) goto bad;
    py_py_line = PyLong_FromLong(py_line);
    if (unlikely(!py_py_line)) goto bad;
    py_funcname = PyUnicode_FromString(funcname);
    if (unlikely(!py_funcname)) goto bad;
    dict = PyDict_New();
    if (unlikely(!dict)) goto bad;
    {
        PyObject *old_code_object = code_object;
        code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname);
        Py_DECREF(old_code_object);
    }
    if (unlikely(!code_object)) goto bad;
    getframe = PySys_GetObject("_getframe");
    if (unlikely(!getframe)) goto bad;
    if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad;
    frame = PyEval_EvalCode(code_object, dict, dict);
    if (unlikely(!frame) || frame == Py_None) goto bad;
    success = 1;
  bad:
    PyErr_Restore(exc_type, exc_value, exc_traceback);
    Py_XDECREF(code_object);
    Py_XDECREF(py_py_line);
    Py_XDECREF(py_funcname);
    Py_XDECREF(dict);
    Py_XDECREF(replace);
    if (success) {
        PyTraceBack_Here(
            (struct _frame*)frame);
    }
    Py_XDECREF(frame);
}
#else
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = NULL;
    PyObject *py_funcname = NULL;
    #if PY_MAJOR_VERSION < 3
    PyObject *py_srcfile = NULL;
    py_srcfile = PyString_FromString(filename);
    if (!py_srcfile) goto bad;
    #endif
    if (c_line) {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        if (!py_funcname) goto bad;
        #else
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        if (!py_funcname) goto bad;
        funcname = PyUnicode_AsUTF8(py_funcname);
        if (!funcname) goto bad;
        #endif
    }
    else {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromString(funcname);
        if (!py_funcname) goto bad;
        #endif
    }
    #if PY_MAJOR_VERSION < 3
    py_code = __Pyx_PyCode_New(
        0,
        0,
        0,
        0,
        0,
        0,
        __pyx_empty_bytes, /*PyObject *code,*/
        __pyx_empty_tuple, /*PyObject *consts,*/
        __pyx_empty_tuple, /*PyObject *names,*/
        __pyx_empty_tuple, /*PyObject *varnames,*/
        __pyx_empty_tuple, /*PyObject *freevars,*/
        __pyx_empty_tuple, /*PyObject *cellvars,*/
        py_srcfile,   /*PyObject *filename,*/
        py_funcname,  /*PyObject *name,*/
        py_line,
        __pyx_empty_bytes  /*PyObject *lnotab*/
    );
    Py_DECREF(py_srcfile);
    #else
    py_code = PyCode_NewEmpty(filename, funcname, py_line);
    #endif
    Py_XDECREF(py_funcname);
    return py_code;
bad:
    Py_XDECREF(py_funcname);
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(py_srcfile);
    #endif
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject *ptype, *pvalue, *ptraceback;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(tstate, c_line);
    }
    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!py_code) {
        __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) {
            /* If the code object creation fails, then we should clear the
               fetched exception references and propagate the new exception */
            Py_XDECREF(ptype);
            Py_XDECREF(pvalue);
            Py_XDECREF(ptraceback);
            goto bad;
        }
        __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        tstate,            /*PyThreadState *tstate,*/
        py_code,           /*PyCodeObject *code,*/
        __pyx_d,    /*PyObject *globals,*/
        0                  /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}
#endif

/* CIntFromPyVerify */
  #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
    {\
        func_type value = func_value;\
        if (sizeof(target_type) < sizeof(func_type)) {\
            if (unlikely(value != (func_type) (target_type) value)) {\
                func_type zero = 0;\
                if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
                    return (target_type) -1;\
                if (is_unsigned && unlikely(value < zero))\
                    goto raise_neg_overflow;\
                else\
                    goto raise_overflow;\
            }\
        }\
        return (target_type) value;\
    }

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus neg_one = (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1, const_zero = (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
  static CYTHON_INLINE enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus __Pyx_PyInt_As_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus neg_one = (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1, const_zero = (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) val;
        }
    }
#endif
    if (unlikely(!PyLong_Check(x))) {
        enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1;
        val = __Pyx_PyInt_As_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) >= 2 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) (((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) >= 3 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) (((((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) >= 4 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) (((((((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) (((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)-1)*(((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) ((((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) (((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)-1)*(((((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) ((((((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) (((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)-1)*(((((((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) ((((((((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1;
#endif
        if (unlikely(ret))
            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus");
    return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus");
    return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE grpc_status_code __Pyx_PyInt_As_grpc_status_code(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_status_code neg_one = (grpc_status_code) -1, const_zero = (grpc_status_code) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(grpc_status_code) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(grpc_status_code, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (grpc_status_code) val;
        }
    }
#endif
    if (unlikely(!PyLong_Check(x))) {
        grpc_status_code val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (grpc_status_code) -1;
        val = __Pyx_PyInt_As_grpc_status_code(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_status_code, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(grpc_status_code) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) >= 2 * PyLong_SHIFT)) {
                            return (grpc_status_code) (((((grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_status_code) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) >= 3 * PyLong_SHIFT)) {
                            return (grpc_status_code) (((((((grpc_status_code)digits[2]) << PyLong_SHIFT) | (grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_status_code) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) >= 4 * PyLong_SHIFT)) {
                            return (grpc_status_code) (((((((((grpc_status_code)digits[3]) << PyLong_SHIFT) | (grpc_status_code)digits[2]) << PyLong_SHIFT) | (grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (grpc_status_code) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(grpc_status_code) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_status_code, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_status_code) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_status_code, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_status_code, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(grpc_status_code) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_status_code) (((grpc_status_code)-1)*(((((grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(grpc_status_code) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_status_code) ((((((grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(grpc_status_code) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_status_code) (((grpc_status_code)-1)*(((((((grpc_status_code)digits[2]) << PyLong_SHIFT) | (grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_status_code) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_status_code) ((((((((grpc_status_code)digits[2]) << PyLong_SHIFT) | (grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(grpc_status_code) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_status_code) (((grpc_status_code)-1)*(((((((((grpc_status_code)digits[3]) << PyLong_SHIFT) | (grpc_status_code)digits[2]) << PyLong_SHIFT) | (grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_status_code) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_status_code) ((((((((((grpc_status_code)digits[3]) << PyLong_SHIFT) | (grpc_status_code)digits[2]) << PyLong_SHIFT) | (grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(grpc_status_code) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_status_code, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_status_code) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_status_code, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        grpc_status_code val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (grpc_status_code) -1;
#endif
        if (unlikely(ret))
            return (grpc_status_code) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to grpc_status_code");
    return (grpc_status_code) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to grpc_status_code");
    return (grpc_status_code) -1;
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_status_code(grpc_status_code value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_status_code neg_one = (grpc_status_code) -1, const_zero = (grpc_status_code) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_status_code) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(grpc_status_code) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_status_code) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_status_code) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_status_code) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_status_code),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_status_code));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
  static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(int) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int) val;
        }
    }
#endif
    if (unlikely(!PyLong_Check(x))) {
        int val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyInt_As_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
                            return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
                            return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
                            return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (int) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(int) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                            return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                            return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
                            return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(int) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        int val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (int) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (int) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (int) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (int) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((int) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((int) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (int) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE grpc_connectivity_state __Pyx_PyInt_As_grpc_connectivity_state(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_connectivity_state neg_one = (grpc_connectivity_state) -1, const_zero = (grpc_connectivity_state) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(grpc_connectivity_state) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (grpc_connectivity_state) val;
        }
    }
#endif
    if (unlikely(!PyLong_Check(x))) {
        grpc_connectivity_state val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (grpc_connectivity_state) -1;
        val = __Pyx_PyInt_As_grpc_connectivity_state(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(grpc_connectivity_state) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) >= 2 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) (((((grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_connectivity_state) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) >= 3 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) (((((((grpc_connectivity_state)digits[2]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_connectivity_state) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) >= 4 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) (((((((((grpc_connectivity_state)digits[3]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[2]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (grpc_connectivity_state) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(grpc_connectivity_state) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_connectivity_state, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_connectivity_state) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_connectivity_state, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(grpc_connectivity_state) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) (((grpc_connectivity_state)-1)*(((((grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(grpc_connectivity_state) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) ((((((grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(grpc_connectivity_state) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) (((grpc_connectivity_state)-1)*(((((((grpc_connectivity_state)digits[2]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_connectivity_state) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) ((((((((grpc_connectivity_state)digits[2]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(grpc_connectivity_state) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) (((grpc_connectivity_state)-1)*(((((((((grpc_connectivity_state)digits[3]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[2]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_connectivity_state) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) ((((((((((grpc_connectivity_state)digits[3]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[2]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(grpc_connectivity_state) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_connectivity_state, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_connectivity_state) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_connectivity_state, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        grpc_connectivity_state val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (grpc_connectivity_state) -1;
#endif
        if (unlikely(ret))
            return (grpc_connectivity_state) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to grpc_connectivity_state");
    return (grpc_connectivity_state) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to grpc_connectivity_state");
    return (grpc_connectivity_state) -1;
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_local_connect_type(grpc_local_connect_type value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_local_connect_type neg_one = (grpc_local_connect_type) -1, const_zero = (grpc_local_connect_type) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_local_connect_type) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(grpc_local_connect_type) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_local_connect_type) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_local_connect_type) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_local_connect_type) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_local_connect_type),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_local_connect_type));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
  static CYTHON_INLINE grpc_local_connect_type __Pyx_PyInt_As_grpc_local_connect_type(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_local_connect_type neg_one = (grpc_local_connect_type) -1, const_zero = (grpc_local_connect_type) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(grpc_local_connect_type) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (grpc_local_connect_type) val;
        }
    }
#endif
    if (unlikely(!PyLong_Check(x))) {
        grpc_local_connect_type val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (grpc_local_connect_type) -1;
        val = __Pyx_PyInt_As_grpc_local_connect_type(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(grpc_local_connect_type) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) >= 2 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) (((((grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_local_connect_type) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) >= 3 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) (((((((grpc_local_connect_type)digits[2]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_local_connect_type) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) >= 4 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) (((((((((grpc_local_connect_type)digits[3]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[2]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (grpc_local_connect_type) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(grpc_local_connect_type) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_local_connect_type, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_local_connect_type) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_local_connect_type, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(grpc_local_connect_type) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) (((grpc_local_connect_type)-1)*(((((grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(grpc_local_connect_type) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) ((((((grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(grpc_local_connect_type) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) (((grpc_local_connect_type)-1)*(((((((grpc_local_connect_type)digits[2]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_local_connect_type) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) ((((((((grpc_local_connect_type)digits[2]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(grpc_local_connect_type) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) (((grpc_local_connect_type)-1)*(((((((((grpc_local_connect_type)digits[3]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[2]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_local_connect_type) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) ((((((((((grpc_local_connect_type)digits[3]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[2]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(grpc_local_connect_type) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_local_connect_type, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_local_connect_type) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_local_connect_type, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        grpc_local_connect_type val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (grpc_local_connect_type) -1;
#endif
        if (unlikely(ret))
            return (grpc_local_connect_type) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to grpc_local_connect_type");
    return (grpc_local_connect_type) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to grpc_local_connect_type");
    return (grpc_local_connect_type) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE grpc_completion_type __Pyx_PyInt_As_grpc_completion_type(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_completion_type neg_one = (grpc_completion_type) -1, const_zero = (grpc_completion_type) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(grpc_completion_type) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(grpc_completion_type, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (grpc_completion_type) val;
        }
    }
#endif
    if (unlikely(!PyLong_Check(x))) {
        grpc_completion_type val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (grpc_completion_type) -1;
        val = __Pyx_PyInt_As_grpc_completion_type(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_completion_type, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(grpc_completion_type) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) >= 2 * PyLong_SHIFT)) {
                            return (grpc_completion_type) (((((grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_completion_type) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) >= 3 * PyLong_SHIFT)) {
                            return (grpc_completion_type) (((((((grpc_completion_type)digits[2]) << PyLong_SHIFT) | (grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_completion_type) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) >= 4 * PyLong_SHIFT)) {
                            return (grpc_completion_type) (((((((((grpc_completion_type)digits[3]) << PyLong_SHIFT) | (grpc_completion_type)digits[2]) << PyLong_SHIFT) | (grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (grpc_completion_type) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(grpc_completion_type) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_completion_type, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_completion_type) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_completion_type, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_completion_type, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(grpc_completion_type) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_completion_type) (((grpc_completion_type)-1)*(((((grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(grpc_completion_type) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_completion_type) ((((((grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(grpc_completion_type) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_completion_type) (((grpc_completion_type)-1)*(((((((grpc_completion_type)digits[2]) << PyLong_SHIFT) | (grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_completion_type) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_completion_type) ((((((((grpc_completion_type)digits[2]) << PyLong_SHIFT) | (grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(grpc_completion_type) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_completion_type) (((grpc_completion_type)-1)*(((((((((grpc_completion_type)digits[3]) << PyLong_SHIFT) | (grpc_completion_type)digits[2]) << PyLong_SHIFT) | (grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_completion_type) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_completion_type) ((((((((((grpc_completion_type)digits[3]) << PyLong_SHIFT) | (grpc_completion_type)digits[2]) << PyLong_SHIFT) | (grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(grpc_completion_type) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_completion_type, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_completion_type) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_completion_type, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        grpc_completion_type val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (grpc_completion_type) -1;
#endif
        if (unlikely(ret))
            return (grpc_completion_type) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to grpc_completion_type");
    return (grpc_completion_type) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to grpc_completion_type");
    return (grpc_completion_type) -1;
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_connectivity_state(grpc_connectivity_state value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_connectivity_state neg_one = (grpc_connectivity_state) -1, const_zero = (grpc_connectivity_state) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_connectivity_state) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(grpc_connectivity_state) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_connectivity_state) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_connectivity_state) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_connectivity_state) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_connectivity_state),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_connectivity_state));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_call_error(grpc_call_error value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_call_error neg_one = (grpc_call_error) -1, const_zero = (grpc_call_error) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_call_error) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(grpc_call_error) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_call_error) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_call_error) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_call_error) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_call_error),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_call_error));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_completion_type(grpc_completion_type value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_completion_type neg_one = (grpc_completion_type) -1, const_zero = (grpc_completion_type) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_completion_type) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(grpc_completion_type) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_completion_type) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_completion_type) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_completion_type) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_completion_type),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_completion_type));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_op_type(grpc_op_type value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_op_type neg_one = (grpc_op_type) -1, const_zero = (grpc_op_type) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_op_type) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(grpc_op_type) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_op_type) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_op_type) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_op_type) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_op_type),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_op_type));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_compression_algorithm(grpc_compression_algorithm value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_compression_algorithm neg_one = (grpc_compression_algorithm) -1, const_zero = (grpc_compression_algorithm) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_compression_algorithm) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(grpc_compression_algorithm) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_compression_algorithm) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_compression_algorithm) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_compression_algorithm) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_compression_algorithm),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_compression_algorithm));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_grpc_compression_level(grpc_compression_level value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_compression_level neg_one = (grpc_compression_level) -1, const_zero = (grpc_compression_level) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_compression_level) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(grpc_compression_level) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_compression_level) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_compression_level) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_compression_level) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_compression_level),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_compression_level));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
  static CYTHON_INLINE grpc_compression_algorithm __Pyx_PyInt_As_grpc_compression_algorithm(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_compression_algorithm neg_one = (grpc_compression_algorithm) -1, const_zero = (grpc_compression_algorithm) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(grpc_compression_algorithm) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (grpc_compression_algorithm) val;
        }
    }
#endif
    if (unlikely(!PyLong_Check(x))) {
        grpc_compression_algorithm val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (grpc_compression_algorithm) -1;
        val = __Pyx_PyInt_As_grpc_compression_algorithm(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(grpc_compression_algorithm) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) >= 2 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) (((((grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_compression_algorithm) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) >= 3 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) (((((((grpc_compression_algorithm)digits[2]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_compression_algorithm) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) >= 4 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) (((((((((grpc_compression_algorithm)digits[3]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[2]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (grpc_compression_algorithm) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(grpc_compression_algorithm) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_compression_algorithm, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_compression_algorithm) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_compression_algorithm, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(grpc_compression_algorithm) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) (((grpc_compression_algorithm)-1)*(((((grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(grpc_compression_algorithm) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) ((((((grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(grpc_compression_algorithm) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) (((grpc_compression_algorithm)-1)*(((((((grpc_compression_algorithm)digits[2]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_compression_algorithm) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) ((((((((grpc_compression_algorithm)digits[2]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(grpc_compression_algorithm) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) (((grpc_compression_algorithm)-1)*(((((((((grpc_compression_algorithm)digits[3]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[2]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_compression_algorithm) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) ((((((((((grpc_compression_algorithm)digits[3]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[2]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(grpc_compression_algorithm) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_compression_algorithm, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_compression_algorithm) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_compression_algorithm, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        grpc_compression_algorithm val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (grpc_compression_algorithm) -1;
#endif
        if (unlikely(ret))
            return (grpc_compression_algorithm) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to grpc_compression_algorithm");
    return (grpc_compression_algorithm) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to grpc_compression_algorithm");
    return (grpc_compression_algorithm) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const size_t neg_one = (size_t) -1, const_zero = (size_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(size_t) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (size_t) val;
        }
    }
#endif
    if (unlikely(!PyLong_Check(x))) {
        size_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (size_t) -1;
        val = __Pyx_PyInt_As_size_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(size_t) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) >= 2 * PyLong_SHIFT)) {
                            return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(size_t) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) >= 3 * PyLong_SHIFT)) {
                            return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(size_t) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) >= 4 * PyLong_SHIFT)) {
                            return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (size_t) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(size_t) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) {
                            return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(size_t) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) {
                            return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) {
                            return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(size_t) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) {
                            return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT)) {
                            return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(size_t) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT)) {
                            return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(size_t) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(size_t) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        size_t val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (size_t) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (size_t) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (size_t) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (size_t) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(size_t) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((size_t) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(size_t) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((size_t) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((size_t) 1) << (sizeof(size_t) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (size_t) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to size_t");
    return (size_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to size_t");
    return (size_t) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(long) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (long) val;
        }
    }
#endif
    if (unlikely(!PyLong_Check(x))) {
        long val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (long) -1;
        val = __Pyx_PyInt_As_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) {
                            return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) {
                            return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) {
                            return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (long) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(long) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                            return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                            return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
                            return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(long) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        long val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (long) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (long) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (long) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (long) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((long) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((long) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (long) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to long");
    return (long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to long");
    return (long) -1;
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
  static CYTHON_INLINE grpc_call_error __Pyx_PyInt_As_grpc_call_error(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_call_error neg_one = (grpc_call_error) -1, const_zero = (grpc_call_error) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(grpc_call_error) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(grpc_call_error, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (grpc_call_error) val;
        }
    }
#endif
    if (unlikely(!PyLong_Check(x))) {
        grpc_call_error val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (grpc_call_error) -1;
        val = __Pyx_PyInt_As_grpc_call_error(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_call_error, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(grpc_call_error) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) >= 2 * PyLong_SHIFT)) {
                            return (grpc_call_error) (((((grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_call_error) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) >= 3 * PyLong_SHIFT)) {
                            return (grpc_call_error) (((((((grpc_call_error)digits[2]) << PyLong_SHIFT) | (grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_call_error) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) >= 4 * PyLong_SHIFT)) {
                            return (grpc_call_error) (((((((((grpc_call_error)digits[3]) << PyLong_SHIFT) | (grpc_call_error)digits[2]) << PyLong_SHIFT) | (grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (grpc_call_error) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(grpc_call_error) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_call_error, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_call_error) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_call_error, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_call_error, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(grpc_call_error) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_call_error) (((grpc_call_error)-1)*(((((grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(grpc_call_error) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_call_error) ((((((grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(grpc_call_error) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_call_error) (((grpc_call_error)-1)*(((((((grpc_call_error)digits[2]) << PyLong_SHIFT) | (grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_call_error) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_call_error) ((((((((grpc_call_error)digits[2]) << PyLong_SHIFT) | (grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(grpc_call_error) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_call_error) (((grpc_call_error)-1)*(((((((((grpc_call_error)digits[3]) << PyLong_SHIFT) | (grpc_call_error)digits[2]) << PyLong_SHIFT) | (grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_call_error) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_call_error) ((((((((((grpc_call_error)digits[3]) << PyLong_SHIFT) | (grpc_call_error)digits[2]) << PyLong_SHIFT) | (grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(grpc_call_error) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_call_error, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_call_error) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_call_error, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        grpc_call_error val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (grpc_call_error) -1;
#endif
        if (unlikely(ret))
            return (grpc_call_error) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to grpc_call_error");
    return (grpc_call_error) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to grpc_call_error");
    return (grpc_call_error) -1;
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(unsigned int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(unsigned int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(unsigned int),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(unsigned int));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
  static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(unsigned int) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(unsigned int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (unsigned int) val;
        }
    }
#endif
    if (unlikely(!PyLong_Check(x))) {
        unsigned int val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (unsigned int) -1;
        val = __Pyx_PyInt_As_unsigned_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT)) {
                            return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT)) {
                            return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT)) {
                            return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (unsigned int) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(unsigned int) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {
                            return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {
                            return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {
                            return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {
                            return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) {
                            return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) {
                            return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(unsigned int) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(unsigned int) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        unsigned int val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (unsigned int) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (unsigned int) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (unsigned int) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (unsigned int) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(unsigned int) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((unsigned int) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(unsigned int) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((unsigned int) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((unsigned int) 1) << (sizeof(unsigned int) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (unsigned int) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to unsigned int");
    return (unsigned int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to unsigned int");
    return (unsigned int) -1;
}

/* Generator */
  static PyMethodDef __pyx_Generator_methods[] = {
    {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O,
     (char*) PyDoc_STR("send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")},
    {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS,
     (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")},
    {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS,
     (char*) PyDoc_STR("close() -> raise GeneratorExit inside generator.")},
    {0, 0, 0, 0}
};
static PyMemberDef __pyx_Generator_memberlist[] = {
    {(char *) "gi_running", T_BOOL, offsetof(__pyx_CoroutineObject, is_running), READONLY, NULL},
    {(char*) "gi_yieldfrom", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY,
     (char*) PyDoc_STR("object being iterated by 'yield from', or None")},
    {(char*) "gi_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL},
    {(char *) "__module__", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_modulename), 0, 0},
#if CYTHON_USE_TYPE_SPECS
    {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CoroutineObject, gi_weakreflist), READONLY, 0},
#endif
    {0, 0, 0, 0, 0}
};
static PyGetSetDef __pyx_Generator_getsets[] = {
    {(char *) "__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
     (char*) PyDoc_STR("name of the generator"), 0},
    {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
     (char*) PyDoc_STR("qualified name of the generator"), 0},
    {(char *) "gi_frame", (getter)__Pyx_Coroutine_get_frame, NULL,
     (char*) PyDoc_STR("Frame of the generator"), 0},
    {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_GeneratorType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_Coroutine_dealloc},
    {Py_tp_traverse, (void *)__Pyx_Coroutine_traverse},
    {Py_tp_iter, (void *)PyObject_SelfIter},
    {Py_tp_iternext, (void *)__Pyx_Generator_Next},
    {Py_tp_methods, (void *)__pyx_Generator_methods},
    {Py_tp_members, (void *)__pyx_Generator_memberlist},
    {Py_tp_getset, (void *)__pyx_Generator_getsets},
    {Py_tp_getattro, (void *) __Pyx_PyObject_GenericGetAttrNoDict},
#if CYTHON_USE_TP_FINALIZE
    {Py_tp_finalize, (void *)__Pyx_Coroutine_del},
#endif
    {0, 0},
};
static PyType_Spec __pyx_GeneratorType_spec = {
    __PYX_TYPE_MODULE_PREFIX "generator",
    sizeof(__pyx_CoroutineObject),
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
    __pyx_GeneratorType_slots
};
#else
static PyTypeObject __pyx_GeneratorType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    __PYX_TYPE_MODULE_PREFIX "generator",
    sizeof(__pyx_CoroutineObject),
    0,
    (destructor) __Pyx_Coroutine_dealloc,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
    0,
    (traverseproc) __Pyx_Coroutine_traverse,
    0,
    0,
    offsetof(__pyx_CoroutineObject, gi_weakreflist),
    0,
    (iternextfunc) __Pyx_Generator_Next,
    __pyx_Generator_methods,
    __pyx_Generator_memberlist,
    __pyx_Generator_getsets,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if CYTHON_USE_TP_FINALIZE
    0,
#else
    __Pyx_Coroutine_del,
#endif
    0,
#if CYTHON_USE_TP_FINALIZE
    __Pyx_Coroutine_del,
#elif PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
    0,
#endif
#if __PYX_NEED_TP_PRINT_SLOT
    0,
#endif
#if PY_VERSION_HEX >= 0x030C0000
    0,
#endif
#if PY_VERSION_HEX >= 0x030d00A4
    0,
#endif
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
    0,
#endif
};
#endif
static int __pyx_Generator_init(PyObject *module) {
#if CYTHON_USE_TYPE_SPECS
    __pyx_GeneratorType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_GeneratorType_spec, NULL);
#else
    CYTHON_UNUSED_VAR(module);
    __pyx_GeneratorType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
    __pyx_GeneratorType_type.tp_iter = PyObject_SelfIter;
    __pyx_GeneratorType = __Pyx_FetchCommonType(&__pyx_GeneratorType_type);
#endif
    if (unlikely(!__pyx_GeneratorType)) {
        return -1;
    }
    return 0;
}

/* AsyncGeneratorInitFinalizer */
  #if PY_VERSION_HEX < 0x030600B0
static int __Pyx_async_gen_init_hooks(__pyx_PyAsyncGenObject *o) {
#if 0
    PyThreadState *tstate;
    PyObject *finalizer;
    PyObject *firstiter;
#endif
    if (likely(o->ag_hooks_inited)) {
        return 0;
    }
    o->ag_hooks_inited = 1;
#if 0
    tstate = __Pyx_PyThreadState_Current;
    finalizer = tstate->async_gen_finalizer;
    if (finalizer) {
        Py_INCREF(finalizer);
        o->ag_finalizer = finalizer;
    }
    firstiter = tstate->async_gen_firstiter;
    if (firstiter) {
        PyObject *res;
        Py_INCREF(firstiter);
        res = __Pyx_PyObject_CallOneArg(firstiter, (PyObject*)o);
        Py_DECREF(firstiter);
        if (res == NULL) {
            return 1;
        }
        Py_DECREF(res);
    }
#endif
    return 0;
}
#endif

/* AsyncGenerator */
  PyDoc_STRVAR(__Pyx_async_gen_send_doc,
"send(arg) -> send 'arg' into generator,\n\
return next yielded value or raise StopIteration.");
PyDoc_STRVAR(__Pyx_async_gen_close_doc,
"close() -> raise GeneratorExit inside generator.");
PyDoc_STRVAR(__Pyx_async_gen_throw_doc,
"throw(typ[,val[,tb]]) -> raise exception in generator,\n\
return next yielded value or raise StopIteration.");
PyDoc_STRVAR(__Pyx_async_gen_await_doc,
"__await__() -> return a representation that can be passed into the 'await' expression.");
static PyObject *__Pyx_async_gen_asend_new(__pyx_PyAsyncGenObject *, PyObject *);
static PyObject *__Pyx_async_gen_athrow_new(__pyx_PyAsyncGenObject *, PyObject *);
static const char *__Pyx_NON_INIT_CORO_MSG = "can't send non-None value to a just-started coroutine";
static const char *__Pyx_ASYNC_GEN_IGNORED_EXIT_MSG = "async generator ignored GeneratorExit";
static const char *__Pyx_ASYNC_GEN_CANNOT_REUSE_SEND_MSG = "cannot reuse already awaited __anext__()/asend()";
static const char *__Pyx_ASYNC_GEN_CANNOT_REUSE_CLOSE_MSG = "cannot reuse already awaited aclose()/athrow()";
typedef enum {
    __PYX_AWAITABLE_STATE_INIT,
    __PYX_AWAITABLE_STATE_ITER,
    __PYX_AWAITABLE_STATE_CLOSED,
} __pyx_AwaitableState;
typedef struct {
    PyObject_HEAD
    __pyx_PyAsyncGenObject *ags_gen;
    PyObject *ags_sendval;
    __pyx_AwaitableState ags_state;
} __pyx_PyAsyncGenASend;
typedef struct {
    PyObject_HEAD
    __pyx_PyAsyncGenObject *agt_gen;
    PyObject *agt_args;
    __pyx_AwaitableState agt_state;
} __pyx_PyAsyncGenAThrow;
typedef struct {
    PyObject_HEAD
    PyObject *agw_val;
} __pyx__PyAsyncGenWrappedValue;
#ifndef _PyAsyncGen_MAXFREELIST
#define _PyAsyncGen_MAXFREELIST 80
#endif
static __pyx__PyAsyncGenWrappedValue *__Pyx_ag_value_freelist[_PyAsyncGen_MAXFREELIST];
static int __Pyx_ag_value_freelist_free = 0;
static __pyx_PyAsyncGenASend *__Pyx_ag_asend_freelist[_PyAsyncGen_MAXFREELIST];
static int __Pyx_ag_asend_freelist_free = 0;
#define __pyx__PyAsyncGenWrappedValue_CheckExact(o)\
                    __Pyx_IS_TYPE(o, __pyx__PyAsyncGenWrappedValueType)
static int
__Pyx_async_gen_traverse(__pyx_PyAsyncGenObject *gen, visitproc visit, void *arg)
{
    Py_VISIT(gen->ag_finalizer);
    return __Pyx_Coroutine_traverse((__pyx_CoroutineObject*)gen, visit, arg);
}
static PyObject *
__Pyx_async_gen_repr(__pyx_CoroutineObject *o)
{
    return PyUnicode_FromFormat("<async_generator object %S at %p>",
                                o->gi_qualname ? o->gi_qualname : Py_None, o);
}
#if PY_VERSION_HEX >= 0x030600B0
static int
__Pyx_async_gen_init_hooks(__pyx_PyAsyncGenObject *o)
{
#if !CYTHON_COMPILING_IN_PYPY
    PyThreadState *tstate;
#endif
    PyObject *finalizer;
    PyObject *firstiter;
    if (o->ag_hooks_inited) {
        return 0;
    }
    o->ag_hooks_inited = 1;
#if CYTHON_COMPILING_IN_PYPY
    finalizer = _PyEval_GetAsyncGenFinalizer();
#else
    tstate = __Pyx_PyThreadState_Current;
    finalizer = tstate->async_gen_finalizer;
#endif
    if (finalizer) {
        Py_INCREF(finalizer);
        o->ag_finalizer = finalizer;
    }
#if CYTHON_COMPILING_IN_PYPY
    firstiter = _PyEval_GetAsyncGenFirstiter();
#else
    firstiter = tstate->async_gen_firstiter;
#endif
    if (firstiter) {
        PyObject *res;
#if CYTHON_UNPACK_METHODS
        PyObject *self;
#endif
        Py_INCREF(firstiter);
#if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(firstiter)) && likely((self = PyMethod_GET_SELF(firstiter)) != NULL)) {
            PyObject *function = PyMethod_GET_FUNCTION(firstiter);
            res = __Pyx_PyObject_Call2Args(function, self, (PyObject*)o);
        } else
#endif
        res = __Pyx_PyObject_CallOneArg(firstiter, (PyObject*)o);
        Py_DECREF(firstiter);
        if (unlikely(res == NULL)) {
            return 1;
        }
        Py_DECREF(res);
    }
    return 0;
}
#endif
static PyObject *
__Pyx_async_gen_anext(PyObject *g)
{
    __pyx_PyAsyncGenObject *o = (__pyx_PyAsyncGenObject*) g;
    if (unlikely(__Pyx_async_gen_init_hooks(o))) {
        return NULL;
    }
    return __Pyx_async_gen_asend_new(o, NULL);
}
static PyObject *
__Pyx_async_gen_anext_method(PyObject *g, PyObject *arg) {
    CYTHON_UNUSED_VAR(arg);
    return __Pyx_async_gen_anext(g);
}
static PyObject *
__Pyx_async_gen_asend(__pyx_PyAsyncGenObject *o, PyObject *arg)
{
    if (unlikely(__Pyx_async_gen_init_hooks(o))) {
        return NULL;
    }
    return __Pyx_async_gen_asend_new(o, arg);
}
static PyObject *
__Pyx_async_gen_aclose(__pyx_PyAsyncGenObject *o, PyObject *arg)
{
    CYTHON_UNUSED_VAR(arg);
    if (unlikely(__Pyx_async_gen_init_hooks(o))) {
        return NULL;
    }
    return __Pyx_async_gen_athrow_new(o, NULL);
}
static PyObject *
__Pyx_async_gen_athrow(__pyx_PyAsyncGenObject *o, PyObject *args)
{
    if (unlikely(__Pyx_async_gen_init_hooks(o))) {
        return NULL;
    }
    return __Pyx_async_gen_athrow_new(o, args);
}
static PyObject *
__Pyx_async_gen_self_method(PyObject *g, PyObject *arg) {
    CYTHON_UNUSED_VAR(arg);
    return __Pyx_NewRef(g);
}
static PyGetSetDef __Pyx_async_gen_getsetlist[] = {
    {(char*) "__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
     (char*) PyDoc_STR("name of the async generator"), 0},
    {(char*) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
     (char*) PyDoc_STR("qualified name of the async generator"), 0},
    {0, 0, 0, 0, 0}
};
static PyMemberDef __Pyx_async_gen_memberlist[] = {
    {(char*) "ag_running", T_BOOL,   offsetof(__pyx_PyAsyncGenObject, ag_running_async), READONLY, NULL},
    {(char*) "ag_await", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY,
     (char*) PyDoc_STR("object being awaited on, or None")},
    {(char *) "__module__", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_modulename), 0, 0},
#if CYTHON_USE_TYPE_SPECS
    {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CoroutineObject, gi_weakreflist), READONLY, 0},
#endif
    {0, 0, 0, 0, 0}
};
PyDoc_STRVAR(__Pyx_async_aclose_doc,
"aclose() -> raise GeneratorExit inside generator.");
PyDoc_STRVAR(__Pyx_async_asend_doc,
"asend(v) -> send 'v' in generator.");
PyDoc_STRVAR(__Pyx_async_athrow_doc,
"athrow(typ[,val[,tb]]) -> raise exception in generator.");
PyDoc_STRVAR(__Pyx_async_aiter_doc,
"__aiter__(v) -> return an asynchronous iterator.");
PyDoc_STRVAR(__Pyx_async_anext_doc,
"__anext__(v) -> continue asynchronous iteration and return the next element.");
static PyMethodDef __Pyx_async_gen_methods[] = {
    {"asend", (PyCFunction)__Pyx_async_gen_asend, METH_O, __Pyx_async_asend_doc},
    {"athrow",(PyCFunction)__Pyx_async_gen_athrow, METH_VARARGS, __Pyx_async_athrow_doc},
    {"aclose", (PyCFunction)__Pyx_async_gen_aclose, METH_NOARGS, __Pyx_async_aclose_doc},
    {"__aiter__", (PyCFunction)__Pyx_async_gen_self_method, METH_NOARGS, __Pyx_async_aiter_doc},
    {"__anext__", (PyCFunction)__Pyx_async_gen_anext_method, METH_NOARGS, __Pyx_async_anext_doc},
    {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_AsyncGenType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_Coroutine_dealloc},
    {Py_am_aiter, (void *)PyObject_SelfIter},
    {Py_am_anext, (void *)__Pyx_async_gen_anext},
    {Py_tp_repr, (void *)__Pyx_async_gen_repr},
    {Py_tp_traverse, (void *)__Pyx_async_gen_traverse},
    {Py_tp_methods, (void *)__Pyx_async_gen_methods},
    {Py_tp_members, (void *)__Pyx_async_gen_memberlist},
    {Py_tp_getset, (void *)__Pyx_async_gen_getsetlist},
#if CYTHON_USE_TP_FINALIZE
    {Py_tp_finalize, (void *)__Pyx_Coroutine_del},
#endif
    {0, 0},
};
static PyType_Spec __pyx_AsyncGenType_spec = {
    __PYX_TYPE_MODULE_PREFIX "async_generator",
    sizeof(__pyx_PyAsyncGenObject),
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
    __pyx_AsyncGenType_slots
};
#else
#if CYTHON_USE_ASYNC_SLOTS
static __Pyx_PyAsyncMethodsStruct __Pyx_async_gen_as_async = {
    0,
    PyObject_SelfIter,
    (unaryfunc)__Pyx_async_gen_anext,
#if PY_VERSION_HEX >= 0x030A00A3
    0,
#endif
};
#endif
static PyTypeObject __pyx_AsyncGenType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "async_generator",
    sizeof(__pyx_PyAsyncGenObject),
    0,
    (destructor)__Pyx_Coroutine_dealloc,
    0,
    0,
    0,
#if CYTHON_USE_ASYNC_SLOTS
    &__Pyx_async_gen_as_async,
#else
    0,
#endif
    (reprfunc)__Pyx_async_gen_repr,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
        Py_TPFLAGS_HAVE_FINALIZE,
    0,
    (traverseproc)__Pyx_async_gen_traverse,
    0,
#if CYTHON_USE_ASYNC_SLOTS && CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 && PY_VERSION_HEX < 0x030500B1
    __Pyx_Coroutine_compare,
#else
    0,
#endif
    offsetof(__pyx_CoroutineObject, gi_weakreflist),
    0,
    0,
    __Pyx_async_gen_methods,
    __Pyx_async_gen_memberlist,
    __Pyx_async_gen_getsetlist,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if CYTHON_USE_TP_FINALIZE
    0,
#else
    __Pyx_Coroutine_del,
#endif
    0,
#if CYTHON_USE_TP_FINALIZE
    __Pyx_Coroutine_del,
#elif PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
    0,
#endif
#if __PYX_NEED_TP_PRINT_SLOT
    0,
#endif
#if PY_VERSION_HEX >= 0x030C0000
    0,
#endif
#if PY_VERSION_HEX >= 0x030d00A4
    0,
#endif
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
    0,
#endif
};
#endif
static int
__Pyx_PyAsyncGen_ClearFreeLists(void)
{
    int ret = __Pyx_ag_value_freelist_free + __Pyx_ag_asend_freelist_free;
    while (__Pyx_ag_value_freelist_free) {
        __pyx__PyAsyncGenWrappedValue *o;
        o = __Pyx_ag_value_freelist[--__Pyx_ag_value_freelist_free];
        assert(__pyx__PyAsyncGenWrappedValue_CheckExact(o));
        __Pyx_PyHeapTypeObject_GC_Del(o);
    }
    while (__Pyx_ag_asend_freelist_free) {
        __pyx_PyAsyncGenASend *o;
        o = __Pyx_ag_asend_freelist[--__Pyx_ag_asend_freelist_free];
        assert(__Pyx_IS_TYPE(o, __pyx__PyAsyncGenASendType));
        __Pyx_PyHeapTypeObject_GC_Del(o);
    }
    return ret;
}
static void
__Pyx_PyAsyncGen_Fini(void)
{
    __Pyx_PyAsyncGen_ClearFreeLists();
}
static PyObject *
__Pyx_async_gen_unwrap_value(__pyx_PyAsyncGenObject *gen, PyObject *result)
{
    if (result == NULL) {
        PyObject *exc_type = PyErr_Occurred();
        if (!exc_type) {
            PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration);
            gen->ag_closed = 1;
        } else if (__Pyx_PyErr_GivenExceptionMatches2(exc_type, __Pyx_PyExc_StopAsyncIteration, PyExc_GeneratorExit)) {
            gen->ag_closed = 1;
        }
        gen->ag_running_async = 0;
        return NULL;
    }
    if (__pyx__PyAsyncGenWrappedValue_CheckExact(result)) {
        __Pyx_ReturnWithStopIteration(((__pyx__PyAsyncGenWrappedValue*)result)->agw_val);
        Py_DECREF(result);
        gen->ag_running_async = 0;
        return NULL;
    }
    return result;
}
static void
__Pyx_async_gen_asend_dealloc(__pyx_PyAsyncGenASend *o)
{
    PyObject_GC_UnTrack((PyObject *)o);
    Py_CLEAR(o->ags_gen);
    Py_CLEAR(o->ags_sendval);
    if (likely(__Pyx_ag_asend_freelist_free < _PyAsyncGen_MAXFREELIST)) {
        assert(__pyx_PyAsyncGenASend_CheckExact(o));
        __Pyx_ag_asend_freelist[__Pyx_ag_asend_freelist_free++] = o;
    } else {
        __Pyx_PyHeapTypeObject_GC_Del(o);
    }
}
static int
__Pyx_async_gen_asend_traverse(__pyx_PyAsyncGenASend *o, visitproc visit, void *arg)
{
    Py_VISIT(o->ags_gen);
    Py_VISIT(o->ags_sendval);
    return 0;
}
static PyObject *
__Pyx_async_gen_asend_send(PyObject *g, PyObject *arg)
{
    __pyx_PyAsyncGenASend *o = (__pyx_PyAsyncGenASend*) g;
    PyObject *result;
    if (unlikely(o->ags_state == __PYX_AWAITABLE_STATE_CLOSED)) {
        PyErr_SetString(PyExc_RuntimeError, __Pyx_ASYNC_GEN_CANNOT_REUSE_SEND_MSG);
        return NULL;
    }
    if (o->ags_state == __PYX_AWAITABLE_STATE_INIT) {
        if (unlikely(o->ags_gen->ag_running_async)) {
            PyErr_SetString(
                PyExc_RuntimeError,
                "anext(): asynchronous generator is already running");
            return NULL;
        }
        if (arg == NULL || arg == Py_None) {
            arg = o->ags_sendval ? o->ags_sendval : Py_None;
        }
        o->ags_state = __PYX_AWAITABLE_STATE_ITER;
    }
    o->ags_gen->ag_running_async = 1;
    result = __Pyx_Coroutine_Send((PyObject*)o->ags_gen, arg);
    result = __Pyx_async_gen_unwrap_value(o->ags_gen, result);
    if (result == NULL) {
        o->ags_state = __PYX_AWAITABLE_STATE_CLOSED;
    }
    return result;
}
static CYTHON_INLINE PyObject *
__Pyx_async_gen_asend_iternext(PyObject *o)
{
    return __Pyx_async_gen_asend_send(o, Py_None);
}
static PyObject *
__Pyx_async_gen_asend_throw(__pyx_PyAsyncGenASend *o, PyObject *args)
{
    PyObject *result;
    if (unlikely(o->ags_state == __PYX_AWAITABLE_STATE_CLOSED)) {
        PyErr_SetString(PyExc_RuntimeError, __Pyx_ASYNC_GEN_CANNOT_REUSE_SEND_MSG);
        return NULL;
    }
    result = __Pyx_Coroutine_Throw((PyObject*)o->ags_gen, args);
    result = __Pyx_async_gen_unwrap_value(o->ags_gen, result);
    if (result == NULL) {
        o->ags_state = __PYX_AWAITABLE_STATE_CLOSED;
    }
    return result;
}
static PyObject *
__Pyx_async_gen_asend_close(PyObject *g, PyObject *args)
{
    __pyx_PyAsyncGenASend *o = (__pyx_PyAsyncGenASend*) g;
    CYTHON_UNUSED_VAR(args);
    o->ags_state = __PYX_AWAITABLE_STATE_CLOSED;
    Py_RETURN_NONE;
}
static PyMethodDef __Pyx_async_gen_asend_methods[] = {
    {"send", (PyCFunction)__Pyx_async_gen_asend_send, METH_O, __Pyx_async_gen_send_doc},
    {"throw", (PyCFunction)__Pyx_async_gen_asend_throw, METH_VARARGS, __Pyx_async_gen_throw_doc},
    {"close", (PyCFunction)__Pyx_async_gen_asend_close, METH_NOARGS, __Pyx_async_gen_close_doc},
    {"__await__", (PyCFunction)__Pyx_async_gen_self_method, METH_NOARGS, __Pyx_async_gen_await_doc},
    {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx__PyAsyncGenASendType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_async_gen_asend_dealloc},
    {Py_am_await, (void *)PyObject_SelfIter},
    {Py_tp_traverse, (void *)__Pyx_async_gen_asend_traverse},
    {Py_tp_methods, (void *)__Pyx_async_gen_asend_methods},
    {Py_tp_iter, (void *)PyObject_SelfIter},
    {Py_tp_iternext, (void *)__Pyx_async_gen_asend_iternext},
    {0, 0},
};
static PyType_Spec __pyx__PyAsyncGenASendType_spec = {
    __PYX_TYPE_MODULE_PREFIX "async_generator_asend",
    sizeof(__pyx_PyAsyncGenASend),
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    __pyx__PyAsyncGenASendType_slots
};
#else
#if CYTHON_USE_ASYNC_SLOTS
static __Pyx_PyAsyncMethodsStruct __Pyx_async_gen_asend_as_async = {
    PyObject_SelfIter,
    0,
    0,
#if PY_VERSION_HEX >= 0x030A00A3
    0,
#endif
};
#endif
static PyTypeObject __pyx__PyAsyncGenASendType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "async_generator_asend",
    sizeof(__pyx_PyAsyncGenASend),
    0,
    (destructor)__Pyx_async_gen_asend_dealloc,
    0,
    0,
    0,
#if CYTHON_USE_ASYNC_SLOTS
    &__Pyx_async_gen_asend_as_async,
#else
    0,
#endif
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    0,
    (traverseproc)__Pyx_async_gen_asend_traverse,
    0,
#if CYTHON_USE_ASYNC_SLOTS && CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 && PY_VERSION_HEX < 0x030500B1
    __Pyx_Coroutine_compare,
#else
    0,
#endif
    0,
    PyObject_SelfIter,
    (iternextfunc)__Pyx_async_gen_asend_iternext,
    __Pyx_async_gen_asend_methods,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
    0,
#endif
#if __PYX_NEED_TP_PRINT_SLOT
    0,
#endif
#if PY_VERSION_HEX >= 0x030C0000
    0,
#endif
#if PY_VERSION_HEX >= 0x030d00A4
    0,
#endif
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
    0,
#endif
};
#endif
static PyObject *
__Pyx_async_gen_asend_new(__pyx_PyAsyncGenObject *gen, PyObject *sendval)
{
    __pyx_PyAsyncGenASend *o;
    if (likely(__Pyx_ag_asend_freelist_free)) {
        __Pyx_ag_asend_freelist_free--;
        o = __Pyx_ag_asend_freelist[__Pyx_ag_asend_freelist_free];
        _Py_NewReference((PyObject *)o);
    } else {
        o = PyObject_GC_New(__pyx_PyAsyncGenASend, __pyx__PyAsyncGenASendType);
        if (unlikely(o == NULL)) {
            return NULL;
        }
    }
    Py_INCREF(gen);
    o->ags_gen = gen;
    Py_XINCREF(sendval);
    o->ags_sendval = sendval;
    o->ags_state = __PYX_AWAITABLE_STATE_INIT;
    PyObject_GC_Track((PyObject*)o);
    return (PyObject*)o;
}
static void
__Pyx_async_gen_wrapped_val_dealloc(__pyx__PyAsyncGenWrappedValue *o)
{
    PyObject_GC_UnTrack((PyObject *)o);
    Py_CLEAR(o->agw_val);
    if (likely(__Pyx_ag_value_freelist_free < _PyAsyncGen_MAXFREELIST)) {
        assert(__pyx__PyAsyncGenWrappedValue_CheckExact(o));
        __Pyx_ag_value_freelist[__Pyx_ag_value_freelist_free++] = o;
    } else {
        __Pyx_PyHeapTypeObject_GC_Del(o);
    }
}
static int
__Pyx_async_gen_wrapped_val_traverse(__pyx__PyAsyncGenWrappedValue *o,
                                     visitproc visit, void *arg)
{
    Py_VISIT(o->agw_val);
    return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx__PyAsyncGenWrappedValueType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_async_gen_wrapped_val_dealloc},
    {Py_tp_traverse, (void *)__Pyx_async_gen_wrapped_val_traverse},
    {0, 0},
};
static PyType_Spec __pyx__PyAsyncGenWrappedValueType_spec = {
    __PYX_TYPE_MODULE_PREFIX "async_generator_wrapped_value",
    sizeof(__pyx__PyAsyncGenWrappedValue),
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    __pyx__PyAsyncGenWrappedValueType_slots
};
#else
static PyTypeObject __pyx__PyAsyncGenWrappedValueType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "async_generator_wrapped_value",
    sizeof(__pyx__PyAsyncGenWrappedValue),
    0,
    (destructor)__Pyx_async_gen_wrapped_val_dealloc,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    0,
    (traverseproc)__Pyx_async_gen_wrapped_val_traverse,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
    0,
#endif
#if __PYX_NEED_TP_PRINT_SLOT
    0,
#endif
#if PY_VERSION_HEX >= 0x030C0000
    0,
#endif
#if PY_VERSION_HEX >= 0x030d00A4
    0,
#endif
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
    0,
#endif
};
#endif
static PyObject *
__Pyx__PyAsyncGenValueWrapperNew(PyObject *val)
{
    __pyx__PyAsyncGenWrappedValue *o;
    assert(val);
    if (likely(__Pyx_ag_value_freelist_free)) {
        __Pyx_ag_value_freelist_free--;
        o = __Pyx_ag_value_freelist[__Pyx_ag_value_freelist_free];
        assert(__pyx__PyAsyncGenWrappedValue_CheckExact(o));
        _Py_NewReference((PyObject*)o);
    } else {
        o = PyObject_GC_New(__pyx__PyAsyncGenWrappedValue, __pyx__PyAsyncGenWrappedValueType);
        if (unlikely(!o)) {
            Py_DECREF(val);
            return NULL;
        }
    }
    o->agw_val = val;
    PyObject_GC_Track((PyObject*)o);
    return (PyObject*)o;
}
static void
__Pyx_async_gen_athrow_dealloc(__pyx_PyAsyncGenAThrow *o)
{
    PyObject_GC_UnTrack((PyObject *)o);
    Py_CLEAR(o->agt_gen);
    Py_CLEAR(o->agt_args);
    __Pyx_PyHeapTypeObject_GC_Del(o);
}
static int
__Pyx_async_gen_athrow_traverse(__pyx_PyAsyncGenAThrow *o, visitproc visit, void *arg)
{
    Py_VISIT(o->agt_gen);
    Py_VISIT(o->agt_args);
    return 0;
}
static PyObject *
__Pyx_async_gen_athrow_send(__pyx_PyAsyncGenAThrow *o, PyObject *arg)
{
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*)o->agt_gen;
    PyObject *retval, *exc_type;
    if (unlikely(o->agt_state == __PYX_AWAITABLE_STATE_CLOSED)) {
        PyErr_SetString(PyExc_RuntimeError, __Pyx_ASYNC_GEN_CANNOT_REUSE_CLOSE_MSG);
        return NULL;
    }
    if (unlikely(gen->resume_label == -1)) {
        o->agt_state = __PYX_AWAITABLE_STATE_CLOSED;
        PyErr_SetNone(PyExc_StopIteration);
        return NULL;
    }
    if (o->agt_state == __PYX_AWAITABLE_STATE_INIT) {
        if (unlikely(o->agt_gen->ag_running_async)) {
            o->agt_state = __PYX_AWAITABLE_STATE_CLOSED;
            if (o->agt_args == NULL) {
                PyErr_SetString(
                    PyExc_RuntimeError,
                    "aclose(): asynchronous generator is already running");
            } else {
                PyErr_SetString(
                    PyExc_RuntimeError,
                    "athrow(): asynchronous generator is already running");
            }
            return NULL;
        }
        if (unlikely(o->agt_gen->ag_closed)) {
            o->agt_state = __PYX_AWAITABLE_STATE_CLOSED;
            PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration);
            return NULL;
        }
        if (unlikely(arg != Py_None)) {
            PyErr_SetString(PyExc_RuntimeError, __Pyx_NON_INIT_CORO_MSG);
            return NULL;
        }
        o->agt_state = __PYX_AWAITABLE_STATE_ITER;
        o->agt_gen->ag_running_async = 1;
        if (o->agt_args == NULL) {
            o->agt_gen->ag_closed = 1;
            retval = __Pyx__Coroutine_Throw((PyObject*)gen,
                PyExc_GeneratorExit, NULL, NULL, NULL, 0);
            if (retval && __pyx__PyAsyncGenWrappedValue_CheckExact(retval)) {
                Py_DECREF(retval);
                goto yield_close;
            }
        } else {
            PyObject *typ;
            PyObject *tb = NULL;
            PyObject *val = NULL;
            if (unlikely(!PyArg_UnpackTuple(o->agt_args, "athrow", 1, 3, &typ, &val, &tb))) {
                return NULL;
            }
            retval = __Pyx__Coroutine_Throw((PyObject*)gen,
                typ, val, tb, o->agt_args, 0);
            retval = __Pyx_async_gen_unwrap_value(o->agt_gen, retval);
        }
        if (retval == NULL) {
            goto check_error;
        }
        return retval;
    }
    assert (o->agt_state == __PYX_AWAITABLE_STATE_ITER);
    retval = __Pyx_Coroutine_Send((PyObject *)gen, arg);
    if (o->agt_args) {
        return __Pyx_async_gen_unwrap_value(o->agt_gen, retval);
    } else {
        if (retval) {
            if (unlikely(__pyx__PyAsyncGenWrappedValue_CheckExact(retval))) {
                Py_DECREF(retval);
                goto yield_close;
            }
            else {
                return retval;
            }
        }
        else {
            goto check_error;
        }
    }
yield_close:
    o->agt_gen->ag_running_async = 0;
    o->agt_state = __PYX_AWAITABLE_STATE_CLOSED;
    PyErr_SetString(
        PyExc_RuntimeError, __Pyx_ASYNC_GEN_IGNORED_EXIT_MSG);
    return NULL;
check_error:
    o->agt_gen->ag_running_async = 0;
    o->agt_state = __PYX_AWAITABLE_STATE_CLOSED;
    exc_type = PyErr_Occurred();
    if (__Pyx_PyErr_GivenExceptionMatches2(exc_type, __Pyx_PyExc_StopAsyncIteration, PyExc_GeneratorExit)) {
        if (o->agt_args == NULL) {
            PyErr_Clear();
            PyErr_SetNone(PyExc_StopIteration);
        }
    }
    return NULL;
}
static PyObject *
__Pyx_async_gen_athrow_throw(__pyx_PyAsyncGenAThrow *o, PyObject *args)
{
    PyObject *retval;
    if (unlikely(o->agt_state == __PYX_AWAITABLE_STATE_CLOSED)) {
        PyErr_SetString(PyExc_RuntimeError, __Pyx_ASYNC_GEN_CANNOT_REUSE_CLOSE_MSG);
        return NULL;
    }
    retval = __Pyx_Coroutine_Throw((PyObject*)o->agt_gen, args);
    if (o->agt_args) {
        return __Pyx_async_gen_unwrap_value(o->agt_gen, retval);
    } else {
        PyObject *exc_type;
        if (unlikely(retval && __pyx__PyAsyncGenWrappedValue_CheckExact(retval))) {
            o->agt_gen->ag_running_async = 0;
            o->agt_state = __PYX_AWAITABLE_STATE_CLOSED;
            Py_DECREF(retval);
            PyErr_SetString(PyExc_RuntimeError, __Pyx_ASYNC_GEN_IGNORED_EXIT_MSG);
            return NULL;
        }
        exc_type = PyErr_Occurred();
        if (__Pyx_PyErr_GivenExceptionMatches2(exc_type, __Pyx_PyExc_StopAsyncIteration, PyExc_GeneratorExit)) {
            PyErr_Clear();
            PyErr_SetNone(PyExc_StopIteration);
        }
        return retval;
    }
}
static PyObject *
__Pyx_async_gen_athrow_iternext(__pyx_PyAsyncGenAThrow *o)
{
    return __Pyx_async_gen_athrow_send(o, Py_None);
}
static PyObject *
__Pyx_async_gen_athrow_close(PyObject *g, PyObject *args)
{
    __pyx_PyAsyncGenAThrow *o = (__pyx_PyAsyncGenAThrow*) g;
    CYTHON_UNUSED_VAR(args);
    o->agt_state = __PYX_AWAITABLE_STATE_CLOSED;
    Py_RETURN_NONE;
}
static PyMethodDef __Pyx_async_gen_athrow_methods[] = {
    {"send", (PyCFunction)__Pyx_async_gen_athrow_send, METH_O, __Pyx_async_gen_send_doc},
    {"throw", (PyCFunction)__Pyx_async_gen_athrow_throw, METH_VARARGS, __Pyx_async_gen_throw_doc},
    {"close", (PyCFunction)__Pyx_async_gen_athrow_close, METH_NOARGS, __Pyx_async_gen_close_doc},
    {"__await__", (PyCFunction)__Pyx_async_gen_self_method, METH_NOARGS, __Pyx_async_gen_await_doc},
    {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx__PyAsyncGenAThrowType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_async_gen_athrow_dealloc},
    {Py_am_await, (void *)PyObject_SelfIter},
    {Py_tp_traverse, (void *)__Pyx_async_gen_athrow_traverse},
    {Py_tp_iter, (void *)PyObject_SelfIter},
    {Py_tp_iternext, (void *)__Pyx_async_gen_athrow_iternext},
    {Py_tp_methods, (void *)__Pyx_async_gen_athrow_methods},
    {Py_tp_getattro, (void *)__Pyx_PyObject_GenericGetAttrNoDict},
    {0, 0},
};
static PyType_Spec __pyx__PyAsyncGenAThrowType_spec = {
    __PYX_TYPE_MODULE_PREFIX "async_generator_athrow",
    sizeof(__pyx_PyAsyncGenAThrow),
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    __pyx__PyAsyncGenAThrowType_slots
};
#else
#if CYTHON_USE_ASYNC_SLOTS
static __Pyx_PyAsyncMethodsStruct __Pyx_async_gen_athrow_as_async = {
    PyObject_SelfIter,
    0,
    0,
#if PY_VERSION_HEX >= 0x030A00A3
    0,
#endif
};
#endif
static PyTypeObject __pyx__PyAsyncGenAThrowType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "async_generator_athrow",
    sizeof(__pyx_PyAsyncGenAThrow),
    0,
    (destructor)__Pyx_async_gen_athrow_dealloc,
    0,
    0,
    0,
#if CYTHON_USE_ASYNC_SLOTS
    &__Pyx_async_gen_athrow_as_async,
#else
    0,
#endif
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    0,
    (traverseproc)__Pyx_async_gen_athrow_traverse,
    0,
#if CYTHON_USE_ASYNC_SLOTS && CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 && PY_VERSION_HEX < 0x030500B1
    __Pyx_Coroutine_compare,
#else
    0,
#endif
    0,
    PyObject_SelfIter,
    (iternextfunc)__Pyx_async_gen_athrow_iternext,
    __Pyx_async_gen_athrow_methods,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
    0,
#endif
#if __PYX_NEED_TP_PRINT_SLOT
    0,
#endif
#if PY_VERSION_HEX >= 0x030C0000
    0,
#endif
#if PY_VERSION_HEX >= 0x030d00A4
    0,
#endif
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
    0,
#endif
};
#endif
static PyObject *
__Pyx_async_gen_athrow_new(__pyx_PyAsyncGenObject *gen, PyObject *args)
{
    __pyx_PyAsyncGenAThrow *o;
    o = PyObject_GC_New(__pyx_PyAsyncGenAThrow, __pyx__PyAsyncGenAThrowType);
    if (unlikely(o == NULL)) {
        return NULL;
    }
    o->agt_gen = gen;
    o->agt_args = args;
    o->agt_state = __PYX_AWAITABLE_STATE_INIT;
    Py_INCREF(gen);
    Py_XINCREF(args);
    PyObject_GC_Track((PyObject*)o);
    return (PyObject*)o;
}
static int __pyx_AsyncGen_init(PyObject *module) {
#if CYTHON_USE_TYPE_SPECS
    __pyx_AsyncGenType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_AsyncGenType_spec, NULL);
#else
    CYTHON_MAYBE_UNUSED_VAR(module);
    __pyx_AsyncGenType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
    __pyx_AsyncGenType = __Pyx_FetchCommonType(&__pyx_AsyncGenType_type);
#endif
    if (unlikely(!__pyx_AsyncGenType))
        return -1;
#if CYTHON_USE_TYPE_SPECS
    __pyx__PyAsyncGenAThrowType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx__PyAsyncGenAThrowType_spec, NULL);
#else
    __pyx__PyAsyncGenAThrowType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
    __pyx__PyAsyncGenAThrowType = __Pyx_FetchCommonType(&__pyx__PyAsyncGenAThrowType_type);
#endif
    if (unlikely(!__pyx__PyAsyncGenAThrowType))
        return -1;
#if CYTHON_USE_TYPE_SPECS
    __pyx__PyAsyncGenWrappedValueType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx__PyAsyncGenWrappedValueType_spec, NULL);
#else
    __pyx__PyAsyncGenWrappedValueType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
    __pyx__PyAsyncGenWrappedValueType = __Pyx_FetchCommonType(&__pyx__PyAsyncGenWrappedValueType_type);
#endif
    if (unlikely(!__pyx__PyAsyncGenWrappedValueType))
        return -1;
#if CYTHON_USE_TYPE_SPECS
    __pyx__PyAsyncGenASendType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx__PyAsyncGenASendType_spec, NULL);
#else
    __pyx__PyAsyncGenASendType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
    __pyx__PyAsyncGenASendType = __Pyx_FetchCommonType(&__pyx__PyAsyncGenASendType_type);
#endif
    if (unlikely(!__pyx__PyAsyncGenASendType))
        return -1;
    return 0;
}

/* AsyncGen */
  

/* CheckBinaryVersion */
  static unsigned long __Pyx_get_runtime_version(void) {
#if __PYX_LIMITED_VERSION_HEX >= 0x030B00A4
    return Py_Version & ~0xFFUL;
#else
    const char* rt_version = Py_GetVersion();
    unsigned long version = 0;
    unsigned long factor = 0x01000000UL;
    unsigned int digit = 0;
    int i = 0;
    while (factor) {
        while ('0' <= rt_version[i] && rt_version[i] <= '9') {
            digit = digit * 10 + (unsigned int) (rt_version[i] - '0');
            ++i;
        }
        version += factor * digit;
        if (rt_version[i] != '.')
            break;
        digit = 0;
        factor >>= 8;
        ++i;
    }
    return version;
#endif
}
static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) {
    const unsigned long MAJOR_MINOR = 0xFFFF0000UL;
    if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR))
        return 0;
    if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR)))
        return 1;
    {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compile time Python version %d.%d "
                      "of module '%.100s' "
                      "%s "
                      "runtime version %d.%d",
                       (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF),
                       __Pyx_MODULE_NAME,
                       (allow_newer) ? "was newer than" : "does not match",
                       (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF)
       );
        return PyErr_WarnEx(NULL, message, 1);
    }
}

/* VoidPtrExport */
  static int __Pyx_ExportVoidPtr(PyObject *name, void *p, const char *sig) {
    PyObject *d;
    PyObject *cobj = 0;
    d = PyDict_GetItem(__pyx_d, __pyx_n_s_pyx_capi);
    Py_XINCREF(d);
    if (!d) {
        d = PyDict_New();
        if (!d)
            goto bad;
        if (__Pyx_PyObject_SetAttrStr(__pyx_m, __pyx_n_s_pyx_capi, d) < 0)
            goto bad;
    }
    cobj = PyCapsule_New(p, sig, 0);
    if (!cobj)
        goto bad;
    if (PyDict_SetItem(d, name, cobj) < 0)
        goto bad;
    Py_DECREF(cobj);
    Py_DECREF(d);
    return 0;
bad:
    Py_XDECREF(cobj);
    Py_XDECREF(d);
    return -1;
}

/* FunctionExport */
  static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig) {
    PyObject *d = 0;
    PyObject *cobj = 0;
    union {
        void (*fp)(void);
        void *p;
    } tmp;
    d = PyObject_GetAttrString(__pyx_m, (char *)"__pyx_capi__");
    if (!d) {
        PyErr_Clear();
        d = PyDict_New();
        if (!d)
            goto bad;
        Py_INCREF(d);
        if (PyModule_AddObject(__pyx_m, (char *)"__pyx_capi__", d) < 0)
            goto bad;
    }
    tmp.fp = f;
    cobj = PyCapsule_New(tmp.p, sig, 0);
    if (!cobj)
        goto bad;
    if (PyDict_SetItemString(d, name, cobj) < 0)
        goto bad;
    Py_DECREF(cobj);
    Py_DECREF(d);
    return 0;
bad:
    Py_XDECREF(cobj);
    Py_XDECREF(d);
    return -1;
}

/* InitStrings */
  #if PY_MAJOR_VERSION >= 3
static int __Pyx_InitString(__Pyx_StringTabEntry t, PyObject **str) {
    if (t.is_unicode | t.is_str) {
        if (t.intern) {
            *str = PyUnicode_InternFromString(t.s);
        } else if (t.encoding) {
            *str = PyUnicode_Decode(t.s, t.n - 1, t.encoding, NULL);
        } else {
            *str = PyUnicode_FromStringAndSize(t.s, t.n - 1);
        }
    } else {
        *str = PyBytes_FromStringAndSize(t.s, t.n - 1);
    }
    if (!*str)
        return -1;
    if (PyObject_Hash(*str) == -1)
        return -1;
    return 0;
}
#endif
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
    while (t->p) {
        #if PY_MAJOR_VERSION >= 3
        __Pyx_InitString(*t, t->p);
        #else
        if (t->is_unicode) {
            *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
        } else if (t->intern) {
            *t->p = PyString_InternFromString(t->s);
        } else {
            *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
        }
        if (!*t->p)
            return -1;
        if (PyObject_Hash(*t->p) == -1)
            return -1;
        #endif
        ++t;
    }
    return 0;
}

#include <string.h>
static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) {
    size_t len = strlen(s);
    if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) {
        PyErr_SetString(PyExc_OverflowError, "byte string is too long");
        return -1;
    }
    return (Py_ssize_t) len;
}
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    Py_ssize_t len = __Pyx_ssize_strlen(c_str);
    if (unlikely(len < 0)) return NULL;
    return __Pyx_PyUnicode_FromStringAndSize(c_str, len);
}
static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) {
    Py_ssize_t len = __Pyx_ssize_strlen(c_str);
    if (unlikely(len < 0)) return NULL;
    return PyByteArray_FromStringAndSize(c_str, len);
}
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
    Py_ssize_t ignore;
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
}
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
#if !CYTHON_PEP393_ENABLED
static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    char* defenc_c;
    PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
    if (!defenc) return NULL;
    defenc_c = PyBytes_AS_STRING(defenc);
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    {
        char* end = defenc_c + PyBytes_GET_SIZE(defenc);
        char* c;
        for (c = defenc_c; c < end; c++) {
            if ((unsigned char) (*c) >= 128) {
                PyUnicode_AsASCIIString(o);
                return NULL;
            }
        }
    }
#endif
    *length = PyBytes_GET_SIZE(defenc);
    return defenc_c;
}
#else
static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    if (likely(PyUnicode_IS_ASCII(o))) {
        *length = PyUnicode_GET_LENGTH(o);
        return PyUnicode_AsUTF8(o);
    } else {
        PyUnicode_AsASCIIString(o);
        return NULL;
    }
#else
    return PyUnicode_AsUTF8AndSize(o, length);
#endif
}
#endif
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
    if (
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
            __Pyx_sys_getdefaultencoding_not_ascii &&
#endif
            PyUnicode_Check(o)) {
        return __Pyx_PyUnicode_AsStringAndSize(o, length);
    } else
#endif
#if (!CYTHON_COMPILING_IN_PYPY && !CYTHON_COMPILING_IN_LIMITED_API) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
    if (PyByteArray_Check(o)) {
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
    } else
#endif
    {
        char* result;
        int r = PyBytes_AsStringAndSize(o, &result, length);
        if (unlikely(r < 0)) {
            return NULL;
        } else {
            return result;
        }
    }
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   int is_true = x == Py_True;
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   else return PyObject_IsTrue(x);
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
    int retval;
    if (unlikely(!x)) return -1;
    retval = __Pyx_PyObject_IsTrue(x);
    Py_DECREF(x);
    return retval;
}
static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
    __Pyx_TypeName result_type_name = __Pyx_PyType_GetName(Py_TYPE(result));
#if PY_MAJOR_VERSION >= 3
    if (PyLong_Check(result)) {
        if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
                "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ").  "
                "The ability to return an instance of a strict subclass of int is deprecated, "
                "and may be removed in a future version of Python.",
                result_type_name)) {
            __Pyx_DECREF_TypeName(result_type_name);
            Py_DECREF(result);
            return NULL;
        }
        __Pyx_DECREF_TypeName(result_type_name);
        return result;
    }
#endif
    PyErr_Format(PyExc_TypeError,
                 "__%.4s__ returned non-%.4s (type " __Pyx_FMT_TYPENAME ")",
                 type_name, type_name, result_type_name);
    __Pyx_DECREF_TypeName(result_type_name);
    Py_DECREF(result);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
#if CYTHON_USE_TYPE_SLOTS
  PyNumberMethods *m;
#endif
  const char *name = NULL;
  PyObject *res = NULL;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_Check(x) || PyLong_Check(x)))
#else
  if (likely(PyLong_Check(x)))
#endif
    return __Pyx_NewRef(x);
#if CYTHON_USE_TYPE_SLOTS
  m = Py_TYPE(x)->tp_as_number;
  #if PY_MAJOR_VERSION < 3
  if (m && m->nb_int) {
    name = "int";
    res = m->nb_int(x);
  }
  else if (m && m->nb_long) {
    name = "long";
    res = m->nb_long(x);
  }
  #else
  if (likely(m && m->nb_int)) {
    name = "int";
    res = m->nb_int(x);
  }
  #endif
#else
  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
    res = PyNumber_Int(x);
  }
#endif
  if (likely(res)) {
#if PY_MAJOR_VERSION < 3
    if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
#else
    if (unlikely(!PyLong_CheckExact(res))) {
#endif
        return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
    }
  }
  else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_TypeError,
                    "an integer is required");
  }
  return res;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject *x;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_CheckExact(b))) {
    if (sizeof(Py_ssize_t) >= sizeof(long))
        return PyInt_AS_LONG(b);
    else
        return PyInt_AsSsize_t(b);
  }
#endif
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(__Pyx_PyLong_IsCompact(b))) {
        return __Pyx_PyLong_CompactValue(b);
    } else {
      const digit* digits = __Pyx_PyLong_Digits(b);
      const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b);
      switch (size) {
         case 2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
      }
    }
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyInt_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
  if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
    return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
#if PY_MAJOR_VERSION < 3
  } else if (likely(PyInt_CheckExact(o))) {
    return PyInt_AS_LONG(o);
#endif
  } else {
    Py_ssize_t ival;
    PyObject *x;
    x = PyNumber_Index(o);
    if (!x) return -1;
    ival = PyInt_AsLong(x);
    Py_DECREF(x);
    return ival;
  }
}
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
  return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
    return PyInt_FromSize_t(ival);
}


/* #### Code section: utility_code_pragmas_end ### */
#ifdef _MSC_VER
#pragma warning( pop )
#endif



/* #### Code section: end ### */
#endif /* Py_PYTHON_H */
